Terminal - Fix forgotten break after handling of \e[K
[tpg/acess2.git] / AcessNative / acesskernel_src / syscalls.c
index f19fe69..ae2c92c 100644 (file)
@@ -119,7 +119,7 @@ SYSCALL3(Syscall_Read, "iid", int, int, void *,
 );
 SYSCALL3(Syscall_Write, "iid", int, int, const void *,
        if( Sizes[2] < a1 ) {
-               Log_Warning("Syscalls", "Write - %i < %i", Sizes[2], a1);
+               Log_Warning("Syscalls", "Write - %x < %x", (int)Sizes[2], (int)a1);
                *Errno = EINVAL;
                return -1;
        }
@@ -236,26 +236,28 @@ SYSCALL1(Syscall_WaitEvent, "i", int,
 );
 
 const tSyscallHandler  caSyscalls[] = {
-       Syscall_Null,
-       Syscall_Exit,
-       Syscall_Open,
-       Syscall_Close,
-       Syscall_Read,
-       Syscall_Write,
-       Syscall_Seek,
-       Syscall_Tell,
-       Syscall_IOCtl,
-       Syscall_FInfo,
-       Syscall_ReadDir,
-       Syscall_OpenChild,
-       Syscall_GetACL,
-       Syscall_Mount,
-       NULL,   // SYS_REOPEN
-       Syscall_Chdir,
+       [SYS_NULL]      = Syscall_Null,
+       [SYS_EXIT]      = Syscall_Exit,
+       [SYS_OPEN]      = Syscall_Open,
+       [SYS_CLOSE]     = Syscall_Close,
+       [SYS_COPYFD]    = NULL,
+       [SYS_FDFLAGS]   = NULL,
+       [SYS_READ]      = Syscall_Read,
+       [SYS_WRITE]     = Syscall_Write,
+       [SYS_SEEK]      = Syscall_Seek,
+       [SYS_TELL]      = Syscall_Tell,
+       [SYS_IOCTL]     = Syscall_IOCtl,
+       [SYS_FINFO]     = Syscall_FInfo,
+       [SYS_READDIR]   = Syscall_ReadDir,
+       [SYS_OPENCHILD] = Syscall_OpenChild,
+       [SYS_GETACL]    = Syscall_GetACL,
+       [SYS_MOUNT]     = Syscall_Mount,
+       [SYS_REOPEN]    = NULL, // SYS_REOPEN
+       [SYS_CHDIR]     = Syscall_Chdir,
        
-       Syscall_WaitTID,
-       Syscall_SetUID,
-       Syscall_SetGID,
+       [SYS_WAITTID]   = Syscall_WaitTID,
+       [SYS_SETUID]    = Syscall_SetUID,
+       [SYS_SETGID]    = Syscall_SetGID,
        
        Syscall_GetTID,
        Syscall_GetPID,
@@ -275,12 +277,12 @@ const int ciNumSyscalls = sizeof(caSyscalls)/sizeof(caSyscalls[0]);
 /**
  * \brief Recieve a syscall structure from the server code
  */
-tRequestHeader *SyscallRecieve(tRequestHeader *Request, int *ReturnLength)
+tRequestHeader *SyscallRecieve(tRequestHeader *Request, size_t *ReturnLength)
 {
        char    formatString[Request->NParams+1];
        char    *inData = (char*)&Request->Params[Request->NParams];
         int    argListLen = 0;
-        int    i, retVal;
+        int    retVal;
        tRequestHeader  *ret;
         int    retValueCount;
         int    retDataLen;
@@ -307,7 +309,7 @@ tRequestHeader *SyscallRecieve(tRequestHeader *Request, int *ReturnLength)
        retDataLen = sizeof(Uint64) + sizeof(Uint32);   
 
        // Get size of argument list
-       for( i = 0; i < Request->NParams; i ++ )
+       for( int i = 0; i < Request->NParams; i ++ )
        {
                argSizes[i] = Request->Params[i].Length;
                switch(Request->Params[i].Type)
@@ -342,7 +344,7 @@ tRequestHeader *SyscallRecieve(tRequestHeader *Request, int *ReturnLength)
                        return NULL;    // ERROR!
                }
        }
-       formatString[i] = '\0';
+       formatString[Request->NParams] = '\0';
        
        LOG("Request %i(%s) '%s'", Request->CallID, casSYSCALL_NAMES[Request->CallID], formatString);
        
@@ -350,7 +352,7 @@ tRequestHeader *SyscallRecieve(tRequestHeader *Request, int *ReturnLength)
                char    argListData[argListLen];
                argListLen = 0;
                // Build argument list
-               for( i = 0; i < Request->NParams; i ++ )
+               for( int i = 0; i < Request->NParams; i ++ )
                {
                        returnData[i] = NULL;
                        switch(Request->Params[i].Type)
@@ -447,7 +449,7 @@ tRequestHeader *SyscallRecieve(tRequestHeader *Request, int *ReturnLength)
        //Log_Debug("Syscalls", "Return 0x%llx", retVal);
        
        retValueCount = 2;
-       for( i = 0; i < Request->NParams; i ++ )
+       for( int i = 0; i < Request->NParams; i ++ )
        {
                if( Request->Params[i].Type != ARG_TYPE_DATA )  continue;
                if( !(Request->Params[i].Flags & ARG_FLAG_RETURN) )     continue;

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