#ifndef _LIBPROCESS_PROCESS_PROCESS_H
#define _LIBPROCESS_PROCESS_PROCESS_H

#include <page_size.h>
#include <system.h>

/* Size of process' stack */
#define STACK_SIZE (256 * PAGE_SIZE)

/* Process entry function */
typedef void (*process_func_t) (void*);

struct process_data {
  void* arg_ptr;
  process_func_t fn;
  int pid;
};

/* Spawn a new process within the same procgroup with argument */
struct process_data* process_spawn (process_func_t func, void* argument_ptr);

#endif // _LIBPROCESS_PROCESS_PROCESS_H
