#ifndef _LIBMSL_M_PROC_H #define _LIBMSL_M_PROC_H #if defined(__x86_64__) #define PROC_MAP_BASE 0x0000700000000000 #define PAGE_SIZE 4096 #endif #define PM_PRESENT (1 << 0) #define PM_RW (1 << 1) #define PM_USER (1 << 2) #define RV_PRIVATE 0 #define RV_PUBLIC 1 #include #include int proc_quit (void); int proc_test (char c); int proc_map (uintptr_t paddr, uintptr_t vaddr, size_t pages, uint32_t flags); int proc_unmap (uintptr_t vaddr, size_t pages); int proc_create_resource_mem (int rid, size_t pages, int vis, uintptr_t* out_paddr); int proc_drop_resource (int rid); int proc_create_resource_mutex (int rid, int vis); int proc_mutex_lock (int mutex_rid); int proc_mutex_unlock (int mutex_rid); int proc_spawn_thread (uintptr_t vstack_top, size_t stack_size, void* entry); int proc_sched (void); #endif // _LIBMSL_M_PROC_H