2 * Acess2 System Interface Header
8 #include "../sys/types.h"
12 # define NULL ((void*)0)
15 #define THREAD_EVENT_VFS 0x0001
16 #define THREAD_EVENT_IPCMSG 0x0002
17 #define THREAD_EVENT_SIGNAL 0x0004
19 #define OPENFLAG_EXEC 0x01
20 #define OPENFLAG_READ 0x02
21 #define OPENFLAG_WRITE 0x04
22 #define OPENFLAG_TRUNCATE 0x10
23 #define OPENFLAG_APPEND 0x20
24 #define OPENFLAG_NOLINK 0x40
25 #define OPENFLAG_CREATE 0x80
31 #define GETMSG_IGNORE ((void*)-1)
32 #define FILEFLAG_DIRECTORY 0x10
33 #define FILEFLAG_SYMLINK 0x20
41 extern void _SysDebug(const char *format, ...);
43 extern void _exit(int status) __attribute__((noreturn));
44 extern void sleep(void);
45 extern void yield(void);
46 extern int kill(int pid, int sig);
47 //extern void wait(int miliseconds);
48 extern int _SysWaitEvent(int EventMask);
49 extern int waittid(int id, int *status);
50 extern int clone(int flags, void *stack);
51 extern int execve(const char *path, char **argv, char **envp);
52 extern int _SysSpawn(const char *Path, const char **argv, const char **envp, int nFDs, int *FDs, struct s_sys_spawninfo *info);
53 extern int gettid(void);
54 extern int getpid(void);
55 extern int _SysSetFaultHandler(int (*Handler)(int));
56 extern void SysSetName(const char *Name);
57 extern int SysGetName(char *NameDest);
58 extern int SysSetPri(int Priority);
59 extern int64_t _SysTimestamp(void);
61 // --- Permissions ---
62 extern int getuid(void);
63 extern int getgid(void);
64 extern void setuid(int id);
65 extern void setgid(int id);
68 extern int chdir(const char *dir);
69 extern int open(const char *path, int flags, ...);
70 extern int reopen(int fd, const char *path, int flags);
71 extern int close(int fd);
72 extern uint read(int fd, void *buffer, uint length);
73 extern uint write(int fd, const void *buffer, uint length);
74 extern int seek(int fd, int64_t offset, int whence);
75 extern uint64_t tell(int fd);
76 extern int ioctl(int fd, int id, void *data);
77 extern int finfo(int fd, t_sysFInfo *info, int maxacls);
78 extern int SysReadDir(int fd, char *dest);
79 extern int _SysOpenChild(int fd, const char *name, int flags);
80 extern int _SysGetACL(int fd, t_sysACL *dest);
81 extern int _SysMount(const char *Device, const char *Directory, const char *Type, const char *Options);
82 extern int _SysSelect(int nfds, fd_set *read, fd_set *write, fd_set *err, int64_t *timeout, unsigned int extraevents);
83 #define select(nfs, rdfds, wrfds, erfds, timeout) _SysSelect(nfs, rdfds, wrfds, erfds, timeout, 0)
84 extern int unlink(const char *pathname);
87 extern int SysSendMessage(pid_t dest, uint length, const void *Data);
88 extern int SysGetMessage(pid_t *src, uint buflen, void *Data);
91 uint64_t _SysGetPhys(uint vaddr);
92 uint64_t _SysAllocate(uint vaddr);
93 uint32_t SysSetMemFlags(uint vaddr, uint32_t flags, uint32_t mask);