Lots of work on the AcessNative kernel
[tpg/acess2.git] / AcessNative / syscalls.h
1 /**
2  */
3 #ifndef _NATIVE_SYSCALLS_H_
4 #define _NATIVE_SYSCALLS_H_
5
6 /*
7  * Request format
8  * 
9  * tRequestHeader       header
10  * tRequestValue        params[header.NParams]
11  * tRequestValue        retvals[header.NReturn]
12  * uint8_t      paramData[SUM(params[].Lengh)];
13  */
14
15 typedef struct sRequestValue {
16         /// \see eArgumentTypes
17         uint16_t        Type;
18         uint16_t        Length;
19 }       tRequestValue;
20
21 typedef struct sRequestHeader {
22         uint16_t        ClientID;
23         uint16_t        CallID; //!< \see eSyscalls
24         uint16_t        NParams;
25         uint16_t        NReturn;
26         
27         tRequestValue   Params[];
28 }       tRequestHeader;
29
30 enum eSyscalls {
31         SYS_NULL,
32         SYS_OPEN,
33         SYS_CLOSE,
34         SYS_READ,
35         SYS_WRITE,
36         SYS_SEEK,
37         SYS_TELL,
38         SYS_IOCTL,
39         SYS_FINFO,
40         SYS_READDIR,
41         SYS_OPENCHILD,
42         SYS_GETACL,
43         SYS_MOUNT,
44         N_SYSCALLS
45 };
46
47 enum eArgumentTypes {
48         ARG_TYPE_VOID,
49         ARG_TYPE_INT32,
50         ARG_TYPE_INT64,
51         ARG_TYPE_STRING,
52         ARG_TYPE_DATA
53 };
54
55 #endif

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