AcessNative - Bugfixes 'r' us, GUI can start and render (partially)
[tpg/acess2.git] / AcessNative / syscalls.h
1 /**
2  */
3 #ifndef _NATIVE_SYSCALLS_H_
4 #define _NATIVE_SYSCALLS_H_
5
6 #define SERVER_PORT     0xACE
7
8 /*
9  * Request format
10  * 
11  * tRequestHeader       header
12  * tRequestValue        params[header.NParams]
13  * tRequestValue        retvals[header.NReturn]
14  * uint8_t      paramData[SUM(params[].Lengh)];
15  */
16
17 typedef struct {
18         uint32_t        pid;
19         uint32_t        key;
20 } tRequestAuthHdr;
21
22 typedef struct sRequestValue {
23         /// \see eArgumentTypes
24         uint16_t        Type;
25         uint16_t        Flags;
26         uint32_t        Length;
27 }       tRequestValue;
28
29 typedef struct sRequestHeader {
30         uint16_t        ClientID;
31         uint16_t        CallID; //!< \see eSyscalls
32         uint16_t        NParams;
33         
34         tRequestValue   Params[];
35 }       tRequestHeader;
36
37 enum eSyscalls {
38         SYS_NULL,
39         
40         SYS_EXIT,
41         
42         SYS_OPEN,
43         SYS_CLOSE,
44         SYS_READ,
45         SYS_WRITE,
46         SYS_SEEK,
47         SYS_TELL,
48         SYS_IOCTL,
49         SYS_FINFO,
50         SYS_READDIR,
51         SYS_OPENCHILD,
52         SYS_GETACL,
53         SYS_MOUNT,
54         SYS_REOPEN,
55         SYS_CHDIR,
56         
57         SYS_WAITTID,
58         SYS_SETUID,
59         SYS_SETGID,
60
61         SYS_GETTID,
62         SYS_GETPID,
63         SYS_GETUID,
64         SYS_GETGID,
65
66         // IPC
67         SYS_SLEEP,
68         SYS_AN_FORK,
69         SYS_SENDMSG,
70         SYS_GETMSG,
71         SYS_SELECT,
72         SYS_WAITEVENT,
73         
74         N_SYSCALLS
75 };
76
77 #ifndef DONT_INCLUDE_SYSCALL_NAMES
78 static const char * casSYSCALL_NAMES[] = {
79         "SYS_NULL",
80         
81         "SYS_EXIT",
82         
83         "SYS_OPEN",
84         "SYS_CLOSE",
85         "SYS_READ",
86         "SYS_WRITE",
87         "SYS_SEEK",
88         "SYS_TELL",
89         "SYS_IOCTL",
90         "SYS_FINFO",
91         "SYS_READDIR",
92         "SYS_OPENCHILD",
93         "SYS_GETACL",
94         "SYS_MOUNT",
95         "SYS_REOPEN",
96         "SYS_CHDIR",
97         
98         "SYS_WAITTID",
99         "SYS_SETUID",
100         "SYS_SETGID",
101         
102         "SYS_GETTID",
103         "SYS_GETPID",
104         "SYS_GETUID",
105         "SYS_GETGID",
106         
107         // IPC
108         "SYS_SLEEP",
109         "SYS_AN_FORK",
110         "SYS_SENDMSG",
111         "SYS_GETMSG",
112         "SYS_SELECT",
113         "SYS_WAITEVENT"
114 };
115 #endif
116
117 enum eArgumentTypes {
118         ARG_TYPE_VOID,
119         ARG_TYPE_INT32,
120         ARG_TYPE_INT64,
121         ARG_TYPE_STRING,
122         ARG_TYPE_DATA
123 };
124 enum eArgumentFlags {
125         ARG_FLAG_RETURN = 0x40, // Pass back in the return message
126         ARG_FLAG_ZEROED = 0x80  // Not present in the message, just fill with zero
127 };
128
129 #endif

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