Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions source/includes/syscalls.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@
#define LINUX_SYS_DUP2 33
#define LINUX_SYS_NANOSLEEP 35
#define LINUX_SYS_GETPID 39
#define LINUX_SYS_CLONE 56
#define LINUX_SYS_FORK 57
#define LINUX_SYS_WAIT4 61
#define LINUX_SYS_EXECVE 59
#define LINUX_SYS_EXIT 60
#define LINUX_SYS_CHDIR 80
Expand Down Expand Up @@ -85,6 +87,7 @@
#define LINUX_SEEK_END 2

#define LINUX_EBADF 9
#define LINUX_EFAULT 14
#define LINUX_EACCES 13
#define LINUX_EINVAL 22
#define LINUX_ENOEXEC 8
Expand All @@ -95,6 +98,21 @@
#define LINUX_ENOMEM 12
#define LINUX_ERANGE 34
#define LINUX_ENOTDIR 20
#define LINUX_ESRCH 3
#define LINUX_EPERM 1
#define LINUX_EINTR 4
#define LINUX_ETIMEDOUT 110
#define LINUX_ECHILD 10

#define LINUX_PROT_NONE 0x0
#define LINUX_PROT_READ 0x1
#define LINUX_PROT_WRITE 0x2
#define LINUX_PROT_EXEC 0x4

#define LINUX_MAP_SHARED 0x01
#define LINUX_MAP_PRIVATE 0x02
#define LINUX_MAP_FIXED 0x10
#define LINUX_MAP_ANONYMOUS 0x20

#define LINUX_S_IFMT 00170000
#define LINUX_S_IFDIR 0040000
Expand Down
40 changes: 40 additions & 0 deletions source/kernel/C/syscalls-doc.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
* @file syscalls-doc.dox
* @brief Linux syscall compatibility mapping for the FrostWing kernel.
* @details
* This document lists the syscall wrappers that are dispatched in
* `syscalls.c` and the internal kernel entry points they use.
*
* ## Core mapping
* - `read(2)` -> `sys_read()` -> `vfs_read()` / `tty_read()`
* - `write(2)` -> `sys_write()` -> `vfs_write()` / `putc()`
* - `open(2)` / `openat(2)`-> `sys_open_common()` -> `fd_open()`
* - `close(2)` -> `sys_close()` -> `fd_close()`
* - `lseek(2)` -> `sys_lseek()` -> fd position pointer update
* - `getdents64(2)` -> `sys_getdents64()` -> FAT16/FAT32/ISO9660/proc/dev walkers
*
* ## File metadata
* - `stat(2)` -> `sys_stat()` -> `fill_vfs_stat_for_path_at()`
* - `fstat(2)` -> `sys_fstat()` -> `fill_vfs_stat_for_fd()`
* - `newfstatat(2)` -> `sys_newfstatat()` -> `fill_vfs_stat_for_path_at()`
* - `statx(2)` -> `sys_statx()` -> `sys_newfstatat()`
*
* ## Memory management
* - `mmap(2)` -> `sys_mmap()` -> `userland_mmap_anon()`
* - `mprotect(2)` -> `sys_mprotect()` -> validation + no-op (current VM model)
* - `munmap(2)` -> `sys_munmap()` -> validation + no-op (current VM model)
* - `brk(2)` -> `sys_brk()` -> `userland_brk()`
*
* ## Process and thread compatibility
* - `execve(2)` -> `sys_execve()` -> `userland_exec()` / `execute_chain()`
* - `fork(2)` / `clone(2)` -> `sys_fork()` -> `multitasking_spawn_userland()` (exec-context clone)
* - `wait4(2)` -> `sys_wait4()` -> multitasking task-state polling
* - `set_tid_address(2)` -> `sys_set_tid_address()` -> kernel clear-child-tid bookkeeping
* - `set_robust_list(2)` -> `sys_set_robust_list()` -> ABI validation
* - `tgkill(2)` -> `sys_tgkill()` -> argument validation + stubbed signal path
*
* ## Time and randomness
* - `clock_gettime(2)` -> `sys_clock_gettime()` -> RTC-backed time fetch
* - `nanosleep(2)` -> `sys_nanosleep()` -> `sleep()`
* - `getrandom(2)` -> `sys_getrandom()` -> xorshift seeded from `rdtsc64()`
*/
Loading