17#define PRAD_MAGIC 0xBADF00D
19#define LINUX_SYS_READ 0
20#define LINUX_SYS_WRITE 1
21#define LINUX_SYS_OPEN 2
22#define LINUX_SYS_CLOSE 3
23#define LINUX_SYS_STAT 4
24#define LINUX_SYS_FSTAT 5
25#define LINUX_SYS_LSTAT 6
26#define LINUX_SYS_LSEEK 8
27#define LINUX_SYS_MMAP 9
28#define LINUX_SYS_MPROTECT 10
29#define LINUX_SYS_MUNMAP 11
30#define LINUX_SYS_BRK 12
31#define LINUX_SYS_RT_SIGACTION 13
32#define LINUX_SYS_RT_SIGPROCMASK 14
33#define LINUX_SYS_IOCTL 16
34#define LINUX_SYS_ACCESS 21
35#define LINUX_SYS_WRITEV 20
36#define LINUX_SYS_DUP 32
37#define LINUX_SYS_DUP2 33
38#define LINUX_SYS_NANOSLEEP 35
39#define LINUX_SYS_GETPID 39
40#define LINUX_SYS_FORK 57
41#define LINUX_SYS_EXECVE 59
42#define LINUX_SYS_EXIT 60
43#define LINUX_SYS_CHDIR 80
44#define LINUX_SYS_UNAME 63
45#define LINUX_SYS_FCNTL 72
46#define LINUX_SYS_GETCWD 79
47#define LINUX_SYS_READLINK 89
48#define LINUX_SYS_UMASK 95
49#define LINUX_SYS_GETUID 102
50#define LINUX_SYS_GETEUID 107
51#define LINUX_SYS_GETGID 104
52#define LINUX_SYS_GETEGID 108
53#define LINUX_SYS_GETPPID 110
54#define LINUX_SYS_SIGALTSTACK 131
55#define LINUX_SYS_ARCH_PRCTL 158
56#define LINUX_SYS_GETTID 186
57#define LINUX_SYS_FUTEX 202
58#define LINUX_SYS_GETDENTS64 217
59#define LINUX_SYS_SET_TID_ADDRESS 218
60#define LINUX_SYS_CLOCK_GETTIME 228
61#define LINUX_SYS_OPENAT 257
62#define LINUX_SYS_NEWFSTATAT 262
63#define LINUX_SYS_READLINKAT 267
64#define LINUX_SYS_FACCESSAT 269
65#define LINUX_SYS_SET_ROBUST_LIST 273
66#define LINUX_SYS_PRLIMIT64 302
67#define LINUX_SYS_GETRANDOM 318
68#define LINUX_SYS_STATX 332
69#define LINUX_SYS_EXIT_GROUP 231
70#define LINUX_SYS_TGKILL 234
72#define LINUX_EAGAIN 11
74#define LINUX_AT_FDCWD (-100)
76#define LINUX_O_RDONLY 0x0000
77#define LINUX_O_WRONLY 0x0001
78#define LINUX_O_RDWR 0x0002
79#define LINUX_O_CREAT 0x0040
80#define LINUX_O_TRUNC 0x0200
81#define LINUX_O_APPEND 0x0400
83#define LINUX_SEEK_SET 0
84#define LINUX_SEEK_CUR 1
85#define LINUX_SEEK_END 2
88#define LINUX_EACCES 13
89#define LINUX_EINVAL 22
90#define LINUX_ENOEXEC 8
91#define LINUX_ENOTTY 25
92#define LINUX_ENOSYS 38
93#define LINUX_ENFILE 23
95#define LINUX_ENOMEM 12
96#define LINUX_ERANGE 34
97#define LINUX_ENOTDIR 20
99#define LINUX_S_IFMT 00170000
100#define LINUX_S_IFDIR 0040000
101#define LINUX_S_IFREG 0100000
102#define LINUX_S_IFCHR 0020000
104#define LINUX_AT_SYMLINK_NOFOLLOW 0x100
105#define LINUX_AT_EMPTY_PATH 0x1000
107#define LINUX_F_DUPFD 0
108#define LINUX_F_GETFD 1
109#define LINUX_F_SETFD 2
110#define LINUX_F_GETFL 3
111#define LINUX_F_SETFL 4
113#define LINUX_TIOCGWINSZ 0x5413
114#define LINUX_TCGETS 0x5401
115#define LINUX_TCSETS 0x5402
116#define LINUX_TCSETSW 0x5403
117#define LINUX_TCSETSF 0x5404
118#define LINUX_TIOCGPGRP 0x540F
119#define LINUX_TIOCSPGRP 0x5410
121#define LINUX_ARCH_SET_FS 0x1002
122#define LINUX_ARCH_GET_FS 0x1003
124#define LINUX_CLOCK_REALTIME 0
125#define LINUX_CLOCK_MONOTONIC 1
127#define IA32_FS_BASE_MSR 0xC0000100
129#define PROC_FILE_COUNT 3
131#define FW_SYS_GETC 0x1000
132#define FW_SYS_GETC_NB 0x1001
133#define FW_SYS_PUTC 0x1002
134#define FW_SYS_LOGIN 0x1055
155#define linux_syscalls_prefix "Linux syscall: "
This is a basic header files with FrostWing specific short forms and basically a good for life header...
Interrupts handler header.
void syscall_handler(syscall_frame_t *f)
Wrapper for the dispatcher which gets called for running the syscall instruction.
void int80_handler(InterruptFrame *frame)
Wrapper for the dispatcher which gets called for interrupt number 0x80.
uint64_t syscall_dispatch(uint64_t nr, uint64_t arg1, uint64_t arg2, uint64_t arg3, uint64_t arg4, uint64_t arg5, uint64_t arg6)
Dispatches syscall based on the syscall number.