/*
- * Acess2
+ * Acess2 Kernel
+ * - By John Hodge (thePowersGang)
+ *
* syscalls.h
* - System Call List
*
#define SYS_SETFAULTHANDLER 3 // Set signal Handler
#define SYS_YIELD 4 // Yield remainder of timestamp
#define SYS_SLEEP 5 // Sleep until messaged or signaled
-#define SYS_WAITEVENT 6 // Wait for an event
-#define SYS_WAITTID 7 // Wait for a thread to do something
-#define SYS_SETNAME 8 // Sets the name of the current thread
-#define SYS_GETNAME 9 // Gets the name of a thread
-#define SYS_GETTID 10 // Get current thread ID
-#define SYS_GETPID 11 // Get current thread group ID
-#define SYS_SETPRI 12 // Set process priority
-#define SYS_SENDMSG 13 // Send an IPC message
-#define SYS_GETMSG 14 // Recieve an IPC message
-#define SYS_GETTIME 15 // Get the current timestamp
-#define SYS_SPAWN 16 // Spawn a new process
-#define SYS_EXECVE 17 // Replace the current process
-#define SYS_LOADBIN 18 // Load a binary into the current address space
-#define SYS_UNLOADBIN 19 // Unload a loaded binary
-#define SYS_LOADMOD 20 // Load a module into the kernel
+#define SYS_TIMEDSLEEP 6 // Sleep until a specified time has elapsed
+#define SYS_WAITEVENT 7 // Wait for an event
+#define SYS_WAITTID 8 // Wait for a thread to do something
+#define SYS_SETSIGNALHANDLER 9 // Set the POSIX signal handler
+#define SYS_SETSIGNALMASK 10 // Sets the mask of disabled POSIX signals
+#define SYS_SETNAME 11 // Sets the name of the current thread
+#define SYS_GETNAME 12 // Gets the name of a thread
+#define SYS_GETTID 13 // Get current thread ID
+#define SYS_GETPID 14 // Get current thread group ID
+#define SYS_SETPRI 15 // Set process priority
+#define SYS_SENDMSG 16 // Send an IPC message
+#define SYS_GETMSG 17 // Recieve an IPC message
+#define SYS_GETTIME 18 // Get the current timestamp
+#define SYS_SPAWN 19 // Spawn a new process
+#define SYS_EXECVE 20 // Replace the current process
+#define SYS_LOADBIN 21 // Load a binary into the current address space
+#define SYS_UNLOADBIN 22 // Unload a loaded binary
+#define SYS_LOADMOD 23 // Load a module into the kernel
#define SYS_GETPHYS 32 // Get the physical address of a page
#define SYS_MAP 33 // Map a physical address
#define SYS_ALLOCATE 34 // Allocate a page
#define SYS_SETGID 42 // Set current Group ID
#define SYS_OPEN 64 // Open a file
#define SYS_REOPEN 65 // Close a file and reuse its handle
-#define SYS_CLOSE 66 // Close a file
-#define SYS_READ 67 // Read from an open file
-#define SYS_WRITE 68 // Write to an open file
-#define SYS_IOCTL 69 // Perform an IOCtl Call
-#define SYS_SEEK 70 // Seek to a new position in the file
-#define SYS_READDIR 71 // Read from an open directory
-#define SYS_OPENCHILD 72 // Open a child entry in a directory
-#define SYS_GETACL 73 // Get an ACL Value
-#define SYS_SETACL 74 // Set an ACL Value
-#define SYS_FINFO 75 // Get file information
-#define SYS_MKDIR 76 // Create a new directory
-#define SYS_LINK 77 // Create a new link to a file
-#define SYS_SYMLINK 78 // Create a symbolic link
-#define SYS_UNLINK 79 // Delete a file
-#define SYS_TELL 80 // Return the current file position
-#define SYS_CHDIR 81 // Change current directory
-#define SYS_GETCWD 82 // Get current directory
-#define SYS_MOUNT 83 // Mount a filesystem
-#define SYS_SELECT 84 // Wait for file handles
+#define SYS_OPENCHILD 66 // Open a child entry in a directory
+#define SYS_OPENPIPE 67 // Open a FIFO pipe pair
+#define SYS_CLOSE 68 // Close a file
+#define SYS_COPYFD 69 // Create a copy of a file handle
+#define SYS_FDCTL 70 // Modify flags of a file descriptor
+#define SYS_READ 71 // Read from an open file
+#define SYS_READAT 72 // Read from an open file (with offset)
+#define SYS_WRITE 73 // Write to an open file
+#define SYS_WRITEAT 74 // Write to an open file (with offset)
+#define SYS_TRUNCATE 75 // Change the size of an open file
+#define SYS_IOCTL 76 // Perform an IOCtl Call
+#define SYS_SEEK 77 // Seek to a new position in the file
+#define SYS_READDIR 78 // Read from an open directory
+#define SYS_GETACL 79 // Get an ACL Value
+#define SYS_SETACL 80 // Set an ACL Value
+#define SYS_FINFO 81 // Get file information
+#define SYS_MKDIR 82 // Create a new directory
+#define SYS_LINK 83 // Create a new link to a file
+#define SYS_SYMLINK 84 // Create a symbolic link
+#define SYS_UNLINK 85 // Delete a file
+#define SYS_TELL 86 // Return the current file position
+#define SYS_CHDIR 87 // Change current directory
+#define SYS_GETCWD 88 // Get current directory
+#define SYS_MOUNT 89 // Mount a filesystem
+#define SYS_SELECT 90 // Wait for file handles
+#define SYS_MMAP 91 // Map a file into this address space
+#define SYS_MUNMAP 92 // Unmap a file
+#define SYS_MARSHALFD 93 // Create a reference to a FD suitable for handing to another process
+#define SYS_UNMARSHALFD 94 // Accept a marshaled FD
-#define NUM_SYSCALLS 85
-#define SYS_DEBUG 0x100
+#define NUM_SYSCALLS 95
+#define SYS_DEBUGS 0x100
+#define SYS_DEBUGF 0x101
+#define SYS_DEBUGHEX 0x102
-#ifndef __ASSEMBLER__
+#if !defined(__ASSEMBLER__) && !defined(NO_SYSCALL_STRS)
static const char *cSYSCALL_NAMES[] = {
"SYS_EXIT",
"SYS_CLONE",
"SYS_SETFAULTHANDLER",
"SYS_YIELD",
"SYS_SLEEP",
+ "SYS_TIMEDSLEEP",
"SYS_WAITEVENT",
"SYS_WAITTID",
+ "SYS_SETSIGNALHANDLER",
+ "SYS_SETSIGNALMASK",
"SYS_SETNAME",
"SYS_GETNAME",
"SYS_GETTID",
"",
"",
"",
- "",
- "",
- "",
"SYS_GETPHYS",
"SYS_MAP",
"SYS_ALLOCATE",
"",
"SYS_OPEN",
"SYS_REOPEN",
+ "SYS_OPENCHILD",
+ "SYS_OPENPIPE",
"SYS_CLOSE",
+ "SYS_COPYFD",
+ "SYS_FDCTL",
"SYS_READ",
+ "SYS_READAT",
"SYS_WRITE",
+ "SYS_WRITEAT",
+ "SYS_TRUNCATE",
"SYS_IOCTL",
"SYS_SEEK",
"SYS_READDIR",
- "SYS_OPENCHILD",
"SYS_GETACL",
"SYS_SETACL",
"SYS_FINFO",
"SYS_GETCWD",
"SYS_MOUNT",
"SYS_SELECT",
+ "SYS_MMAP",
+ "SYS_MUNMAP",
+ "SYS_MARSHALFD",
+ "SYS_UNMARSHALFD",
""
};