From 620c524737be8e477bb291b96eb5c2a80fd12b84 Mon Sep 17 00:00:00 2001 From: Marvin Friedrich Date: Fri, 21 Feb 2025 02:00:46 +0100 Subject: [PATCH] syscall: Update and move list --- include/menix/syscall/syscall_list.h | 76 ---------------------------- include/uapi/syscall_list.h | 72 ++++++++++++++++++++++++++ kernel/syscall/process.c | 1 + kernel/syscall/syscall.c | 7 +-- kernel/syscall/system.c | 3 ++ kernel/system/uapi/uapi | 1 + modules/gpu/udrm/udrm | 1 + 7 files changed, 82 insertions(+), 79 deletions(-) delete mode 100644 include/menix/syscall/syscall_list.h create mode 100644 include/uapi/syscall_list.h create mode 160000 kernel/system/uapi/uapi create mode 160000 modules/gpu/udrm/udrm diff --git a/include/menix/syscall/syscall_list.h b/include/menix/syscall/syscall_list.h deleted file mode 100644 index ad2cc09..0000000 --- a/include/menix/syscall/syscall_list.h +++ /dev/null @@ -1,76 +0,0 @@ -// A global list of all system calls available. - -#ifndef SYSCALL -#define SYSCALL(num, name) -#endif - -SYSCALL(0, exit) -// Signals -SYSCALL(1, sigprocmask) -SYSCALL(2, sigsuspend) -SYSCALL(3, sigpending) -SYSCALL(4, sigaction) -SYSCALL(5, sigreturn) -SYSCALL(6, sigtimedwait) -// Memory -SYSCALL(7, mmap) -SYSCALL(8, munmap) -SYSCALL(9, mremap) -SYSCALL(10, mprotect) -// Threads -SYSCALL(11, execve) -SYSCALL(12, fork) -SYSCALL(13, kill) -SYSCALL(14, getpid) -SYSCALL(15, waitpid) -// VFS -SYSCALL(16, read) -SYSCALL(17, write) -SYSCALL(18, seek) -SYSCALL(19, ioctl) -SYSCALL(20, openat) -SYSCALL(21, close) -SYSCALL(22, stat) -SYSCALL(23, faccessat) -SYSCALL(24, fcntl) -SYSCALL(25, readdir) -SYSCALL(26, getcwd) -SYSCALL(27, chdir) -SYSCALL(28, fchdir) -SYSCALL(29, mkdirat) -SYSCALL(30, rename) -SYSCALL(31, chmodat) -SYSCALL(32, chownat) -SYSCALL(33, linkat) -SYSCALL(34, unlinkat) -SYSCALL(35, readlinkat) -SYSCALL(36, mount) -SYSCALL(37, unmount) -SYSCALL(38, setuid) -SYSCALL(39, getuid) -SYSCALL(40, setgid) -SYSCALL(41, getgid) -SYSCALL(42, umask) -SYSCALL(43, poll) -SYSCALL(44, isatty) -SYSCALL(45, chroot) -// Futex -SYSCALL(46, futex_wait) -SYSCALL(47, futex_wake) -// Sockets -SYSCALL(48, socket) -SYSCALL(49, socketpair) -SYSCALL(50, bind) -SYSCALL(51, connect) -SYSCALL(52, accept) -SYSCALL(53, listen) -SYSCALL(54, getpeername) -SYSCALL(55, getsockname) -SYSCALL(56, getsockopt) -SYSCALL(57, setsockopt) -SYSCALL(58, recvmsg) -SYSCALL(59, sendmsg) -SYSCALL(60, sethostname) -// Misc -SYSCALL(61, uname) -SYSCALL(62, archctl) diff --git a/include/uapi/syscall_list.h b/include/uapi/syscall_list.h new file mode 100644 index 0000000..71ccc1e --- /dev/null +++ b/include/uapi/syscall_list.h @@ -0,0 +1,72 @@ +// A global list of all system calls available. + +#ifndef SYSCALL +#define SYSCALL(num, name) +#endif + +SYSCALL(0, exit) +SYSCALL(1, sigprocmask) +SYSCALL(2, sigsuspend) +SYSCALL(3, sigpending) +SYSCALL(4, sigaction) +SYSCALL(5, sigreturn) +SYSCALL(6, sigtimedwait) +SYSCALL(7, mmap) +SYSCALL(8, munmap) +SYSCALL(9, mremap) +SYSCALL(10, mprotect) +SYSCALL(11, execve) +SYSCALL(12, fork) +SYSCALL(13, kill) +SYSCALL(14, gettid) +SYSCALL(15, getpid) +SYSCALL(16, waitpid) +SYSCALL(17, read) +SYSCALL(18, write) +SYSCALL(19, seek) +SYSCALL(20, ioctl) +SYSCALL(21, openat) +SYSCALL(22, close) +SYSCALL(23, stat) +SYSCALL(24, faccessat) +SYSCALL(25, fcntl) +SYSCALL(26, readdir) +SYSCALL(27, getcwd) +SYSCALL(28, chdir) +SYSCALL(29, fchdir) +SYSCALL(30, mkdirat) +SYSCALL(31, rename) +SYSCALL(32, chmodat) +SYSCALL(33, chownat) +SYSCALL(34, linkat) +SYSCALL(35, unlinkat) +SYSCALL(36, readlinkat) +SYSCALL(37, mount) +SYSCALL(38, unmount) +SYSCALL(39, setuid) +SYSCALL(40, getuid) +SYSCALL(41, setgid) +SYSCALL(42, getgid) +SYSCALL(43, umask) +SYSCALL(44, poll) +SYSCALL(45, isatty) +SYSCALL(46, chroot) +SYSCALL(47, futex_wait) +SYSCALL(48, futex_wake) +SYSCALL(49, socket) +SYSCALL(50, socketpair) +SYSCALL(51, bind) +SYSCALL(52, connect) +SYSCALL(53, accept) +SYSCALL(54, listen) +SYSCALL(55, getpeername) +SYSCALL(56, getsockname) +SYSCALL(57, getsockopt) +SYSCALL(58, setsockopt) +SYSCALL(59, recvmsg) +SYSCALL(60, sendmsg) +SYSCALL(61, sethostname) +SYSCALL(62, uname) +SYSCALL(63, archctl) +SYSCALL(64, readtimer) +SYSCALL(65, savetls) diff --git a/kernel/syscall/process.c b/kernel/syscall/process.c index 724ea10..2f09364 100644 --- a/kernel/syscall/process.c +++ b/kernel/syscall/process.c @@ -115,3 +115,4 @@ SYSCALL_STUB(sigtimedwait) SYSCALL_STUB(futex_wait) SYSCALL_STUB(futex_wake) +SYSCALL_STUB(gettid) diff --git a/kernel/syscall/syscall.c b/kernel/syscall/syscall.c index d844ba5..5b3a652 100644 --- a/kernel/syscall/syscall.c +++ b/kernel/syscall/syscall.c @@ -9,7 +9,8 @@ // Include the syscalls once. #undef SYSCALL #define SYSCALL(num, name) SyscallResult syscall_##name(usize a0, usize a1, usize a2, usize a3, usize a4, usize a5); -#include +#include +#undef SYSCALL typedef struct { @@ -19,9 +20,9 @@ typedef struct static const SyscallTable syscall_table[] = { // Include them again, but now as table entry. -#undef SYSCALL #define SYSCALL(num, name) [num] = {.func = (SyscallFn)syscall_##name, .func_name = #name}, -#include +#include +#undef SYSCALL }; SyscallResult syscall_invoke(usize num, usize a0, usize a1, usize a2, usize a3, usize a4, usize a5) diff --git a/kernel/syscall/system.c b/kernel/syscall/system.c index ec1090d..a375977 100644 --- a/kernel/syscall/system.c +++ b/kernel/syscall/system.c @@ -39,3 +39,6 @@ SYSCALL_IMPL(archctl, usize operation, usize arg0, usize arg1) // Performs power control operations. SYSCALL_STUB(powerctl, usize operation, usize arg0, usize arg1) + +SYSCALL_STUB(readtimer) +SYSCALL_STUB(savetls, VirtAddr addr) diff --git a/kernel/system/uapi/uapi b/kernel/system/uapi/uapi new file mode 160000 index 0000000..1d9acca --- /dev/null +++ b/kernel/system/uapi/uapi @@ -0,0 +1 @@ +Subproject commit 1d9acca1f8804d96573d70dd1bf555c2b4641140 diff --git a/modules/gpu/udrm/udrm b/modules/gpu/udrm/udrm new file mode 160000 index 0000000..eaf661e --- /dev/null +++ b/modules/gpu/udrm/udrm @@ -0,0 +1 @@ +Subproject commit eaf661ed855a5dff1eb3f6c9e76ae8cedee3cfa1