#include "arch/x86_64/syscall.h" #include #include #include #include #include #include #include int _syscall_invoke_mapping_exists(KernelObjectPageMap *map, uint8_t depth, uint16_t *path) { uint8_t *syscallData = _syscall_message_ptr; int syscall_at = 0; SYSCALL_PAYLOAD_PUTOBJ(syscallData, syscall_at, map); SYSCALL_PAYLOAD_PUTL(syscallData, syscall_at, INVOKE_MAPPING_EXISTS, uint8_t); SYSCALL_PAYLOAD_PUTPML(syscallData, syscall_at, depth, path); return _syscall_invoke(); } int _syscall_invoke_mapping_map(KernelObjectPageMap *map, uint8_t depth, uint16_t *path, KernelObjectUntyped *untyped) { uint8_t *syscallData = _syscall_message_ptr; int syscall_at = 0; SYSCALL_PAYLOAD_PUTOBJ(syscallData, syscall_at, map); SYSCALL_PAYLOAD_PUTL(syscallData, syscall_at, INVOKE_MAPPING_MAP, uint8_t); SYSCALL_PAYLOAD_PUTPML(syscallData, syscall_at, depth, path); SYSCALL_PAYLOAD_PUTOBJ(syscallData, syscall_at, untyped); return _syscall_invoke(); } int _syscall_invoke_mapping_unmap(KernelObjectPageMap *map, uint8_t depth, uint16_t *path, KernelObjectUntyped *dest) { uint8_t *syscallData = _syscall_message_ptr; int syscall_at = 0; SYSCALL_PAYLOAD_PUTOBJ(syscallData, syscall_at, map); SYSCALL_PAYLOAD_PUTL(syscallData, syscall_at, INVOKE_MAPPING_UNMAP, uint8_t); SYSCALL_PAYLOAD_PUTPML(syscallData, syscall_at, depth, path); SYSCALL_PAYLOAD_PUTOBJ(syscallData, syscall_at, dest); return _syscall_invoke(); }