#include <liballoc.h>
#include <map.h>
#include <page_size.h>
#include <process.h>
#include <status.h>
#include <stddef.h>
#include <stdint.h>
#include <system.h>

int process_spawn (process_func_t func, void* argument_ptr) {
  void* stack = malloc (STACK_SIZE);
  if (stack == NULL)
    return -ST_OOM_ERROR;

  uintptr_t top = (uintptr_t)stack + STACK_SIZE;
  return clone (top, func, argument_ptr);
}
