2026-02-19 19:22:06 +00:00
|
|
|
#ifndef MANGO_TASK_H_
|
|
|
|
|
#define MANGO_TASK_H_
|
|
|
|
|
|
|
|
|
|
#include <mango/status.h>
|
|
|
|
|
#include <mango/types.h>
|
|
|
|
|
|
|
|
|
|
extern kern_status_t task_exit(int status);
|
2026-02-23 18:43:49 +00:00
|
|
|
extern kern_status_t task_self(kern_handle_t *out);
|
2026-02-19 19:22:06 +00:00
|
|
|
|
|
|
|
|
extern kern_status_t task_create(
|
|
|
|
|
kern_handle_t parent,
|
|
|
|
|
const char *name,
|
|
|
|
|
size_t name_len,
|
|
|
|
|
kern_handle_t *out_task,
|
|
|
|
|
kern_handle_t *out_address_space);
|
|
|
|
|
extern kern_status_t task_create_thread(
|
|
|
|
|
kern_handle_t task,
|
|
|
|
|
virt_addr_t ip,
|
|
|
|
|
virt_addr_t sp,
|
|
|
|
|
uintptr_t *args,
|
|
|
|
|
size_t nr_args,
|
|
|
|
|
kern_handle_t *out_thread);
|
2026-02-23 18:43:49 +00:00
|
|
|
extern kern_status_t task_get_address_space(
|
|
|
|
|
kern_handle_t task,
|
|
|
|
|
kern_handle_t *out);
|
2026-02-19 19:22:06 +00:00
|
|
|
|
|
|
|
|
extern kern_status_t thread_start(kern_handle_t thread);
|
|
|
|
|
|
|
|
|
|
#endif
|