|
XenevaOS
|
#include <stdint.h>#include <string.h>#include <_null.h>#include <process.h>#include <loader.h>#include <clean.h>#include <Serv/sysserv.h>#include <Hal/AA64/sched.h>#include <Hal/AA64/aa64lowlevel.h>#include <Hal/AA64/aa64cpu.h>#include <Mm/mmap.h>#include <Mm/kmalloc.h>#include <Mm/pmmngr.h>#include <Mm/vmmngr.h>#include <Fs/vfs.h>#include <Fs/pipe.h>#include <Net/socket.h>#include <Cap/capability.h>#include <Drivers/uart.h>#include <timer.h>
Classes | |
| struct | _lnx_eventfd_ |
| struct | _lnx_epoll_item_ |
| struct | _lnx_epoll_ |
Macros | |
| #define | LNX_ENOSYS 38 |
| #define | LNX_EAGAIN 11 |
| #define | LNX_ENOMEM 12 |
| #define | LNX_EFAULT 14 |
| #define | LNX_EINVAL 22 |
| #define | LNX_ENOTTY 25 |
| #define | LNX_EBADF 9 |
| #define | LNX_ENOENT 2 |
| #define | LNX_EIO 5 |
| #define | LNX_ETIMEDOUT 110 |
| #define | LNX_EMFILE 24 |
| #define | LNX_EEXIST 17 |
| #define | LNX_ECHILD 10 |
| #define | LNX_O_DIRECTORY 040000 |
| #define | LNX_AT_EMPTY_PATH 0x1000 |
| #define | LNX_F_DUPFD 0 |
| #define | LNX_F_DUPFD_CLOEXEC 1030 |
| #define | LNX_STATX_BASIC (1u | 2u | 0x200u) |
| #define | LNX_FUTEX_WAIT 0 |
| #define | LNX_FUTEX_WAKE 1 |
| #define | LNX_FUTEX_WAIT_BITSET 9 |
| #define | LNX_FUTEX_WAKE_BITSET 10 |
| #define | LNX_FUTEX_CMD_MASK 127 |
| #define | LNX_CLONE_VM 0x00000100 |
| #define | LNX_CLONE_SETTLS 0x00080000 |
| #define | LNX_CLONE_PARENT_SETTID 0x00100000 |
| #define | LNX_CLONE_CHILD_CLEARTID 0x00200000 |
| #define | LNX_CLONE_CHILD_SETTID 0x01000000 |
| #define | LNX_PROT_READ 1 |
| #define | LNX_MAP_FIXED 0x10 |
| #define | LNX_MAP_ANON 0x20 |
| #define | LNX_PR_SET_NAME 15 |
| #define | LNX_PR_GET_NAME 16 |
Typedefs | |
| typedef struct _lnx_eventfd_ | lnx_eventfd |
| typedef struct _lnx_epoll_item_ | lnx_epoll_item |
| typedef struct _lnx_epoll_ | lnx_epoll |
Functions | |
| int | hwrng_read_bytes (void *buf, unsigned int max) |
| int64_t | AuLinuxSyscall (uint64_t nr, uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, uint64_t a4, uint64_t a5) |
| AuAA64SyscalHandler – common system call handler for aarch64. | |
| #define LNX_AT_EMPTY_PATH 0x1000 |
| #define LNX_CLONE_CHILD_CLEARTID 0x00200000 |
| #define LNX_CLONE_CHILD_SETTID 0x01000000 |
| #define LNX_CLONE_PARENT_SETTID 0x00100000 |
| #define LNX_CLONE_SETTLS 0x00080000 |
| #define LNX_CLONE_VM 0x00000100 |
| #define LNX_EAGAIN 11 |
| #define LNX_EBADF 9 |
| #define LNX_ECHILD 10 |
| #define LNX_EEXIST 17 |
| #define LNX_EFAULT 14 |
| #define LNX_EINVAL 22 |
| #define LNX_EIO 5 |
| #define LNX_EMFILE 24 |
| #define LNX_ENOENT 2 |
| #define LNX_ENOMEM 12 |
| #define LNX_ENOSYS 38 |
Linux syscall numbers from x8, for PROCESS_TYPE_LINUX guests. Each call lands on a kernel path that already exists. clone/futex are the pthread piece: they share the process address space and block on the scheduler lists that PE threads already use.
| #define LNX_ENOTTY 25 |
| #define LNX_ETIMEDOUT 110 |
| #define LNX_F_DUPFD 0 |
| #define LNX_F_DUPFD_CLOEXEC 1030 |
| #define LNX_FUTEX_CMD_MASK 127 |
| #define LNX_FUTEX_WAIT 0 |
| #define LNX_FUTEX_WAIT_BITSET 9 |
| #define LNX_FUTEX_WAKE 1 |
| #define LNX_FUTEX_WAKE_BITSET 10 |
| #define LNX_MAP_ANON 0x20 |
| #define LNX_MAP_FIXED 0x10 |
| #define LNX_O_DIRECTORY 040000 |
| #define LNX_PR_GET_NAME 16 |
| #define LNX_PR_SET_NAME 15 |
| #define LNX_PROT_READ 1 |
| #define LNX_STATX_BASIC (1u | 2u | 0x200u) |
| typedef struct _lnx_epoll_ lnx_epoll |
| typedef struct _lnx_epoll_item_ lnx_epoll_item |
| typedef struct _lnx_eventfd_ lnx_eventfd |
| int64_t AuLinuxSyscall | ( | uint64_t | nr, |
| uint64_t | a0, | ||
| uint64_t | a1, | ||
| uint64_t | a2, | ||
| uint64_t | a3, | ||
| uint64_t | a4, | ||
| uint64_t | a5 | ||
| ) |
AuAA64SyscalHandler – common system call handler for aarch64.
| regs | – Register information passed by sync_exception |
|
extern |