#define _LUNA_SYSTEM_ERROR_EXTENSIONS #include #include #include #include #include extern "C" { void* allocate_memory(size_t size, int flags) { long rc = syscall(SYS_allocate_memory, size, flags); __errno_return(rc, void*); } int deallocate_memory(void* address, size_t size) { long rc = syscall(SYS_deallocate_memory, address, size); __errno_return(rc, int); } } Result allocate_pages_impl(usize count) { long rc = syscall(SYS_allocate_memory, count * PAGE_SIZE, PROT_READ | PROT_WRITE); if (rc < 0) { return err((int)-rc); } return (void*)rc; } Result release_pages_impl(void* address, usize count) { long rc = syscall(SYS_deallocate_memory, address, count * PAGE_SIZE); if (rc < 0) { return err((int)-rc); } return {}; }