XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions
linux_abi.c File Reference
#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>
Include dependency graph for linux_abi.c:

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.
 

Macro Definition Documentation

◆ LNX_AT_EMPTY_PATH

#define LNX_AT_EMPTY_PATH   0x1000

◆ LNX_CLONE_CHILD_CLEARTID

#define LNX_CLONE_CHILD_CLEARTID   0x00200000

◆ LNX_CLONE_CHILD_SETTID

#define LNX_CLONE_CHILD_SETTID   0x01000000

◆ LNX_CLONE_PARENT_SETTID

#define LNX_CLONE_PARENT_SETTID   0x00100000

◆ LNX_CLONE_SETTLS

#define LNX_CLONE_SETTLS   0x00080000

◆ LNX_CLONE_VM

#define LNX_CLONE_VM   0x00000100

◆ LNX_EAGAIN

#define LNX_EAGAIN   11

◆ LNX_EBADF

#define LNX_EBADF   9

◆ LNX_ECHILD

#define LNX_ECHILD   10

◆ LNX_EEXIST

#define LNX_EEXIST   17

◆ LNX_EFAULT

#define LNX_EFAULT   14

◆ LNX_EINVAL

#define LNX_EINVAL   22

◆ LNX_EIO

#define LNX_EIO   5

◆ LNX_EMFILE

#define LNX_EMFILE   24

◆ LNX_ENOENT

#define LNX_ENOENT   2

◆ LNX_ENOMEM

#define LNX_ENOMEM   12

◆ LNX_ENOSYS

#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.

◆ LNX_ENOTTY

#define LNX_ENOTTY   25

◆ LNX_ETIMEDOUT

#define LNX_ETIMEDOUT   110

◆ LNX_F_DUPFD

#define LNX_F_DUPFD   0

◆ LNX_F_DUPFD_CLOEXEC

#define LNX_F_DUPFD_CLOEXEC   1030

◆ LNX_FUTEX_CMD_MASK

#define LNX_FUTEX_CMD_MASK   127

◆ LNX_FUTEX_WAIT

#define LNX_FUTEX_WAIT   0

◆ LNX_FUTEX_WAIT_BITSET

#define LNX_FUTEX_WAIT_BITSET   9

◆ LNX_FUTEX_WAKE

#define LNX_FUTEX_WAKE   1

◆ LNX_FUTEX_WAKE_BITSET

#define LNX_FUTEX_WAKE_BITSET   10

◆ LNX_MAP_ANON

#define LNX_MAP_ANON   0x20

◆ LNX_MAP_FIXED

#define LNX_MAP_FIXED   0x10

◆ LNX_O_DIRECTORY

#define LNX_O_DIRECTORY   040000

◆ LNX_PR_GET_NAME

#define LNX_PR_GET_NAME   16

◆ LNX_PR_SET_NAME

#define LNX_PR_SET_NAME   15

◆ LNX_PROT_READ

#define LNX_PROT_READ   1

◆ LNX_STATX_BASIC

#define LNX_STATX_BASIC   (1u | 2u | 0x200u)

Typedef Documentation

◆ lnx_epoll

typedef struct _lnx_epoll_ lnx_epoll

◆ lnx_epoll_item

◆ lnx_eventfd

typedef struct _lnx_eventfd_ lnx_eventfd

Function Documentation

◆ AuLinuxSyscall()

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.

Parameters
regs– Register information passed by sync_exception

◆ hwrng_read_bytes()

int hwrng_read_bytes ( void *  buf,
unsigned int  max 
)
extern