Usermode - Renamed VFS syscalls to _Sys* to remove POSIX collisions
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / include_exp / acess / sys.h
1 /*
2  * Acess2 System Interface Header
3  */
4 #ifndef _ACESS_SYS_H_
5 #define _ACESS_SYS_H_
6
7 #include <stdint.h>
8 #include <stddef.h>     // size_t
9 #include "syscall_types.h"
10
11 // === CONSTANTS ===
12 #ifndef NULL
13 # define NULL   ((void*)0)
14 #endif
15
16 #define THREAD_EVENT_VFS        0x0001
17 #define THREAD_EVENT_IPCMSG     0x0002
18 #define THREAD_EVENT_SIGNAL     0x0004
19
20 #define OPENFLAG_EXEC   0x01
21 #define OPENFLAG_READ   0x02
22 #define OPENFLAG_WRITE  0x04
23 #define OPENFLAG_RDWR   (OPENFLAG_READ|OPENFLAG_WRITE)
24 #define OPENFLAG_TRUNCATE       0x10
25 #define OPENFLAG_APPEND 0x20
26 #define OPENFLAG_NOLINK 0x40
27 #define OPENFLAG_CREATE 0x80
28 #ifndef SEEK_CUR
29 # define SEEK_SET       1
30 # define SEEK_CUR       0
31 # define SEEK_END       -1
32 #endif
33 #define GETMSG_IGNORE   ((void*)-1)
34 #define FILEFLAG_DIRECTORY      0x10
35 #define FILEFLAG_SYMLINK        0x20
36
37 // === TYPES ===
38
39 // === VARIABLES ===
40 extern int      _errno;
41
42 // === FUNCTIONS ===
43 extern void     _SysDebug(const char *format, ...);
44 // --- Proc ---
45 extern void     _exit(int status)       __attribute__((noreturn));
46 //extern void   sleep(void);
47 //extern void   yield(void);
48 extern int      kill(int pid, int sig);
49 //extern void   wait(int miliseconds);
50 extern int      _SysWaitEvent(int EventMask);
51 extern int      waittid(int id, int *status);
52 extern int      clone(int flags, void *stack);
53 extern int      execve(const char *path, char **argv, char **envp);
54 extern int      _SysSpawn(const char *Path, const char **argv, const char **envp, int nFDs, int *FDs, struct s_sys_spawninfo *info);
55 extern int      gettid(void);
56 extern int      getpid(void);
57 extern int      _SysSetFaultHandler(int (*Handler)(int));
58 extern void     SysSetName(const char *Name);
59 extern int      SysGetName(char *NameDest);
60 extern int      SysSetPri(int Priority);
61 extern int64_t  _SysTimestamp(void);
62
63 // --- Permissions ---
64 extern int      getuid(void);
65 extern int      getgid(void);
66 extern void     setuid(int id);
67 extern void     setgid(int id);
68
69 // --- VFS ---
70 extern int      _SysChdir(const char *dir);
71 extern int      _SysRoot(const char *dir);
72
73 extern int      _SysOpen(const char *path, int flags, ...);
74 extern int      _SysOpenChild(int fd, const char *name, int flags);
75 extern int      _SysOpenPipe(int *read, int *write, int flags);
76 extern int      _SysReopen(int fd, const char *path, int flags);
77 extern int      _SysCopyFD(int srcfd, int dstfd);
78 extern int      _SysClose(int fd);
79 extern size_t   _SysRead(int fd, void *buffer, size_t length);
80 extern size_t   _SysWrite(int fd, const void *buffer, size_t length);
81 extern int      _SysSeek(int fd, int64_t offset, int whence);
82 extern uint64_t _SysTell(int fd);
83 extern int      _SysIOCtl(int fd, int id, void *data);
84 extern int      _SysFInfo(int fd, t_sysFInfo *info, int maxacls);
85 extern int      _SysReadDir(int fd, char *dest);
86 extern int      _SysGetACL(int fd, t_sysACL *dest);
87 extern int      _SysMount(const char *Device, const char *Directory, const char *Type, const char *Options);
88 extern int      _SysSelect(int nfds, fd_set *read, fd_set *write, fd_set *err, int64_t *timeout, unsigned int extraevents);
89 #define select(nfs, rdfds, wrfds, erfds, timeout)       _SysSelect(nfs, rdfds, wrfds, erfds, timeout, 0)
90 extern int      _SysUnlink(const char *pathname);
91
92 // --- IPC ---
93 extern int      SysSendMessage(int dest, size_t length, const void *Data);
94 extern int      SysGetMessage(int *src, size_t buflen, void *Data);
95
96 // --- MEMORY ---
97 uint64_t        _SysGetPhys(uintptr_t vaddr);
98 uint64_t        _SysAllocate(uintptr_t vaddr);
99 uint32_t        SysSetMemFlags(uintptr_t vaddr, uint32_t flags, uint32_t mask);
100
101 #endif

UCC git Repository :: git.ucc.asn.au