root / Whitix / branches / hybrid / user / librtl / sysdefs.h

Revision 378, 3.4 kB (checked in by mwhitworth, 7 months ago)

Add beginning of module support for kernel.

Line 
1/* Filesystem syscalls */
2SYSCALL(0,int,SysOpen,12,(char* pathName,int flags,int perms));
3SYSCALL(1,int,SysCreateDir,8,(char* string,int perms));
4SYSCALL(2,int,SysClose,4,(int fd));
5SYSCALL(3,int,SysRemove,4,(char* path));
6SYSCALL(4,int,SysRemoveDir,4,(char* path));
7SYSCALL(5,int,SysFileAccess,8,(char* path,int mode));
8SYSCALL(6,int,SysFileDup,4,(int fd));
9SYSCALL(7,int,SysFileSync,4,(int fd));
10SYSCALL(8,int,SysFileSystemSync,0,(void));
11SYSCALL(9,int,SysTruncate,8,(int fd,DWORD length));
12SYSCALL(10,int,SysMove,8,(char* src,char* dest));
13SYSCALL(11,int,SysWrite,12,(int fd,void* data,DWORD amount));
14SYSCALL(12,int,SysRead,12,(int fd,void* buffer,DWORD amount));
15SYSCALL(13,int,SysSeek,12,(int fd,int distance,int whence));
16SYSCALL(14,int,SysChangeDir,4,(char* newDir));
17SYSCALL(15,int,SysChangeRoot,4,(char* newRoot));
18SYSCALL(16,int,SysMount,16,(char* mountPoint,char* deviceName,char* fsName,void* data));
19SYSCALL(17,int,SysUnmount,4,(char* mountPoint));
20SYSCALL(18,int,SysGetDirEntries,12,(int fd,void* entries,DWORD numBytes));
21SYSCALL(19,int,SysGetCurrDir,8,(char* path,int len));
22SYSCALL(20,int,SysStat,8,(char* path,struct Stat* stat));
23SYSCALL(21,int,SysStatFd,8,(int fd,struct Stat* stat));
24SYSCALL(22,int,SysIoCtl,12,(int fd,unsigned long code,void* data));
25SYSCALL(23,int,SysPoll,12,(void* fds, DWORD numFds, int timeout));
26SYSCALL(24,int,SysPipe,4,(int* fds));
27
28/* Memory syscalls */
29SYSCALL(25,void*,SysMoreCore,4,(int len));
30SYSCALL(26,DWORD,SysMemoryMap,24,(DWORD address,DWORD length,int protection,int fd,DWORD offset,int flags));
31SYSCALL(27,int,SysMemoryProtect, 12, (DWORD address, DWORD len, int protection));
32SYSCALL(28,int,SysMemoryUnmap,8,(DWORD address,DWORD length));
33SYSCALL(29,int,SysSharedMemoryGet,12,(unsigned int key, DWORD size, int flags));
34SYSCALL(30,DWORD,SysSharedMemoryAttach,12,(int id, const void* address, int flags));
35SYSCALL(31,int,SysSharedMemoryControl,12,(int id, int command, void* buffer));
36SYSCALL(32,int,SysSharedMemoryDetach,4,(const void* address));
37
38/* Task management syscalls */
39SYSCALL(33,int,SysCreateProcess,12,(char* pathName,int* fds,char** argv));
40SYSCALL(34,int,SysCreateThread,12,(DWORD startAddress,DWORD stackP, void* argument));
41SYSCALL(35,int,SysGetCurrentThreadID,0,(void));
42SYSCALL(36,int,SysGetCurrentProcessID,0,(void));
43SYSCALL(37,int,SysExitThread,4,(int thrID));
44SYSCALL(38,int,SysExit,4,(int retCode));
45SYSCALL(39,int,SysWaitForProcessFinish,8,(int pid,int* finishStatus));
46SYSCALL(40,int,SysYield,0,(void));
47
48/* Time syscalls */
49SYSCALL(41,int,SysGetTime,4,(struct Time* time));
50
51/* Network syscalls */
52SYSCALL(42,int,SysSocketCreate,12,(int domain, int type, int protocol));
53SYSCALL(43,int,SysSocketBind,12,(int fd, void* addr, int length));
54SYSCALL(44,int,SysSocketConnect,12,(int fd, void* addr, int length));
55SYSCALL(45,int,SysSocketListen,8,(int fd, int backlog));
56SYSCALL(46,int,SysSocketAccept,12,(int fd, void* addr, int length));
57SYSCALL(47,int,SysSocketSend,16,(int fd, const void* buffer, int length, int flags));
58SYSCALL(48,int,SysSocketReceive,16,(int fd, void* buffer, int length, int flags));
59SYSCALL(49,int,SysSocketIoCtl,12,(int fd, unsigned long code, void* data));
60SYSCALL(50,int,SysSocketClose,4,(int fd));
61
62/* Module syscalls */
63SYSCALL(51, int, SysModuleAdd, 8, (void* data, unsigned int length));
64SYSCALL(52, int, SysModuleRemove, 4, (const char* name));
65
66/* Miscellaenous syscalls */
67SYSCALL(53,int,SysShutdown,4,(int));
68SYSCALL(54,int,SysIoAccess,4,(int on));
Note: See TracBrowser for help on using the browser.