1a954d333b47ef048b42cf119665fb63e48ff6b2
[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 "../sys/types.h"
9
10 // === CONSTANTS ===
11 #ifndef NULL
12 # define NULL   ((void*)0)
13 #endif
14
15 #define THREAD_EVENT_VFS        0x0001
16 #define THREAD_EVENT_IPCMSG     0x0002
17 #define THREAD_EVENT_SIGNAL     0x0004
18
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
26 #ifndef SEEK_CUR
27 # define SEEK_SET       1
28 # define SEEK_CUR       0
29 # define SEEK_END       -1
30 #endif
31 #define GETMSG_IGNORE   ((void*)-1)
32 #define FILEFLAG_DIRECTORY      0x10
33 #define FILEFLAG_SYMLINK        0x20
34
35 // === TYPES ===
36
37 // === VARIABLES ===
38 extern int      _errno;
39
40 // === FUNCTIONS ===
41 extern void     _SysDebug(const char *format, ...);
42 // --- Proc ---
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(char *path, char **argv, char **envp);
52 extern int      _SysSpawn(const char *Path, const char **argv, const char **envp, int nFDs, int *FDs);
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);
60
61 // --- Permissions ---
62 extern int      getuid(void);
63 extern int      getgid(void);
64 extern void     setuid(int id);
65 extern void     setgid(int id);
66
67 // --- VFS ---
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);
85
86 // --- IPC ---
87 extern int      SysSendMessage(pid_t dest, uint length, const void *Data);
88 extern int      SysGetMessage(pid_t *src, void *Data);
89
90 // --- MEMORY ---
91 uint64_t        _SysGetPhys(uint vaddr);
92 uint64_t        _SysAllocate(uint vaddr);
93
94 #endif

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