AcessNative - Getting there... (Bedtime commit)
[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 sRequestValue {
18         /// \see eArgumentTypes
19         uint16_t        Type;
20         uint16_t        Length;
21 }       tRequestValue;
22
23 typedef struct sRequestHeader {
24         uint16_t        ClientID;
25         uint16_t        CallID; //!< \see eSyscalls
26         uint16_t        NParams;
27         uint16_t        NReturn;
28         
29         tRequestValue   Params[];
30 }       tRequestHeader;
31
32 enum eSyscalls {
33         SYS_NULL,
34         SYS_OPEN,
35         SYS_CLOSE,
36         SYS_READ,
37         SYS_WRITE,
38         SYS_SEEK,
39         SYS_TELL,
40         SYS_IOCTL,
41         SYS_FINFO,
42         SYS_READDIR,
43         SYS_OPENCHILD,
44         SYS_GETACL,
45         SYS_MOUNT,
46         N_SYSCALLS
47 };
48
49 enum eArgumentTypes {
50         ARG_TYPE_VOID,
51         ARG_TYPE_INT32,
52         ARG_TYPE_INT64,
53         ARG_TYPE_STRING,
54         ARG_TYPE_DATA
55 };
56
57 #endif

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