AcessNative - Cleaning up debug
[tpg/acess2.git] / AcessNative / syscalls.h
index 2784fd0..d1a0bdc 100644 (file)
 #ifndef _NATIVE_SYSCALLS_H_
 #define _NATIVE_SYSCALLS_H_
 
+#define        SERVER_PORT     0xACE
+
+/*
+ * Request format
+ * 
+ * tRequestHeader      header
+ * tRequestValue       params[header.NParams]
+ * tRequestValue       retvals[header.NReturn]
+ * uint8_t     paramData[SUM(params[].Lengh)];
+ */
+
+typedef struct sRequestValue {
+       /// \see eArgumentTypes
+       uint16_t        Type;
+       uint16_t        Flags;
+       uint16_t        Length;
+}      tRequestValue;
+
+typedef struct sRequestHeader {
+       uint16_t        ClientID;
+       uint16_t        CallID; //!< \see eSyscalls
+       uint16_t        NParams;
+       
+       tRequestValue   Params[];
+}      tRequestHeader;
+
 enum eSyscalls {
        SYS_NULL,
-       SYS_OPEN
+       
+       SYS_EXIT,
+       
+       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,
+       SYS_CHDIR,
+       
+       SYS_WAITTID,
+       SYS_SETUID,
+       SYS_SETGID,
+
+       SYS_GETTID,
+       SYS_GETPID,
+       SYS_GETUID,
+       SYS_GETGID,
+
+       // IPC
+       SYS_SLEEP,
+       SYS_AN_FORK,
+       SYS_SENDMSG,
+       SYS_GETMSG,
+       SYS_SELECT,
+       SYS_WAITEVENT,
+       
+       N_SYSCALLS
+};
+
+#ifndef DONT_INCLUDE_SYSCALL_NAMES
+static const char * casSYSCALL_NAMES[] = {
+       "SYS_NULL",
+       
+       "SYS_EXIT",
+       
+       "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",
+       "SYS_CHDIR",
+       
+       "SYS_WAITTID",
+       "SYS_SETUID",
+       "SYS_SETGID",
+       
+       "SYS_GETTID",
+       "SYS_GETPID",
+       "SYS_GETUID",
+       "SYS_GETGID",
+       
+       // IPC
+       "SYS_SLEEP",
+       "SYS_AN_FORK",
+       "SYS_SENDMSG",
+       "SYS_GETMSG",
+       "SYS_SELECT",
+       "SYS_WAITEVENT"
 };
+#endif
 
 enum eArgumentTypes {
        ARG_TYPE_VOID,
@@ -15,9 +116,9 @@ enum eArgumentTypes {
        ARG_TYPE_STRING,
        ARG_TYPE_DATA
 };
-
-#define ARG_DIR_TOSRV  0x10
-#define        ARG_DIR_TOCLI   0x20
-#define ARG_DIR_BOTH   0x30
+enum eArgumentFlags {
+       ARG_FLAG_RETURN = 0x40, // Pass back in the return message
+       ARG_FLAG_ZEROED = 0x80  // Not present in the message, just fill with zero
+};
 
 #endif

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