X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Fsyscalls.h;h=a9768c419be17c2137e82466b1855d68d12966bb;hb=6274aaa8894e14462a36c69090e2f9235f130e31;hp=b4d211c7a052b98614efd09c54acd8f8cd76a55a;hpb=9143c184873d0b55444dc1c1084f3e9f3f2614bf;p=tpg%2Facess2.git diff --git a/AcessNative/syscalls.h b/AcessNative/syscalls.h index b4d211c7..a9768c41 100644 --- a/AcessNative/syscalls.h +++ b/AcessNative/syscalls.h @@ -5,6 +5,14 @@ #define SERVER_PORT 0xACE +#define SYSCALL_TRACE 1 + +#if SYSCALL_TRACE +#define SYSTRACE(str, x...) do{ if(gbSyscallDebugEnabled)Debug(str, x); }while(0) +#else +#define SYSTRACE(...) do{}while(0) +#endif + /* * Request format * @@ -14,39 +22,44 @@ * uint8_t paramData[SUM(params[].Lengh)]; */ +typedef struct { + uint32_t pid; + uint32_t key; +} tRequestAuthHdr; + typedef struct sRequestValue { /// \see eArgumentTypes uint16_t Type; - uint8_t Flags; - uint16_t Length; + uint16_t Flags; + uint32_t Length; } tRequestValue; typedef struct sRequestHeader { - uint16_t ClientID; + uint32_t ClientID; + uint32_t MessageLength; uint16_t CallID; //!< \see eSyscalls uint16_t NParams; tRequestValue Params[]; -} tRequestHeader; +} __attribute__((packed)) tRequestHeader; + enum eSyscalls { - SYS_NULL, - SYS_OPEN, - SYS_CLOSE, - SYS_READ, - SYS_WRITE, - SYS_SEEK, - SYS_TELL, - SYS_IOCTL, - SYS_FINFO, - SYS_READDIR, - SYS_OPENCHILD, - SYS_GETACL, - SYS_MOUNT, - SYS_REOPEN, + #define _(n) n + #include "syscalls_list.h" + #undef _ N_SYSCALLS }; +#ifndef DONT_INCLUDE_SYSCALL_NAMES +static const char * casSYSCALL_NAMES[] = { + #define _(n) #n + #include "syscalls_list.h" + #undef _ + "-" +}; +#endif + enum eArgumentTypes { ARG_TYPE_VOID, ARG_TYPE_INT32,