From b3398bcfe17be9751d98a0dcd8ccd27bb1568039 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Wed, 9 May 2012 12:33:22 +0800 Subject: [PATCH] AcessNative - Fixing little bugs --- AcessNative/acesskernel_src/nativefs.c | 1 + AcessNative/acesskernel_src/syscalls.c | 8 +++++++- AcessNative/ld-acess_src/binary.c | 3 ++- AcessNative/ld-acess_src/exports.c | 16 +++++++++++++--- AcessNative/ld-acess_src/memory.c | 4 ++-- AcessNative/syscalls.h | 4 +++- 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/AcessNative/acesskernel_src/nativefs.c b/AcessNative/acesskernel_src/nativefs.c index 864a24bc..4f1b377f 100644 --- a/AcessNative/acesskernel_src/nativefs.c +++ b/AcessNative/acesskernel_src/nativefs.c @@ -79,6 +79,7 @@ tVFS_Node *NativeFS_Mount(const char *Device, const char **Arguments) ret->ImplInt = strlen(ret->Data); ret->ImplPtr = info; ret->Inode = (Uint64)dp; + ret->Flags = VFS_FFLAG_DIRECTORY; ret->Type = &gNativeFS_DirNodeType; diff --git a/AcessNative/acesskernel_src/syscalls.c b/AcessNative/acesskernel_src/syscalls.c index fa473b27..58dc8017 100644 --- a/AcessNative/acesskernel_src/syscalls.c +++ b/AcessNative/acesskernel_src/syscalls.c @@ -7,6 +7,7 @@ #define DEBUG 1 #include #include +#include #include "../syscalls.h" // === IMPORTS === @@ -199,6 +200,10 @@ SYSCALL2(Syscall_GetMessage, "dd", Uint *, void *, return Proc_GetMessage(a0, a1); ); +SYSCALL1(Syscall_WaitEvent, "i", int, + return Threads_WaitEvents(a0); +); + const tSyscallHandler caSyscalls[] = { Syscall_Null, Syscall_Exit, @@ -231,7 +236,8 @@ const tSyscallHandler caSyscalls[] = { Syscall_SendMessage, Syscall_GetMessage, - Syscall_select + Syscall_select, + Syscall_WaitEvent }; const int ciNumSyscalls = sizeof(caSyscalls)/sizeof(caSyscalls[0]); /** diff --git a/AcessNative/ld-acess_src/binary.c b/AcessNative/ld-acess_src/binary.c index fa2af0c4..62354318 100644 --- a/AcessNative/ld-acess_src/binary.c +++ b/AcessNative/ld-acess_src/binary.c @@ -253,6 +253,7 @@ int Binary_GetSymbol(const char *SymbolName, uintptr_t *Value, size_t *Size) //printf("Binary_GetSymbol: RETURN 0, not found\n"); printf("--- ERROR: Unable to find symbol '%s'\n", SymbolName); - + + exit( -1 ); return 0; } diff --git a/AcessNative/ld-acess_src/exports.c b/AcessNative/ld-acess_src/exports.c index c236b526..406e55f9 100644 --- a/AcessNative/ld-acess_src/exports.c +++ b/AcessNative/ld-acess_src/exports.c @@ -263,10 +263,19 @@ int acess_SysSendMessage(int DestTID, int Length, void *Data) int acess_SysGetMessage(int *SourceTID, void *Data) { - return _Syscall(SYS_GETMSG, "i", Mask); } // --- Logging @@ -327,7 +336,8 @@ const tSym caBuiltinSymbols[] = { DEFSYM(_SysAllocate), DEFSYM(_SysDebug), - DEFSYM(_SysSetFaultHandler) + DEFSYM(_SysSetFaultHandler), + DEFSYM(_SysWaitEvent) }; const int ciNumBuiltinSymbols = sizeof(caBuiltinSymbols)/sizeof(caBuiltinSymbols[0]); diff --git a/AcessNative/ld-acess_src/memory.c b/AcessNative/ld-acess_src/memory.c index 872cb2cf..f1147c26 100644 --- a/AcessNative/ld-acess_src/memory.c +++ b/AcessNative/ld-acess_src/memory.c @@ -27,14 +27,14 @@ int AllocateMemory(uintptr_t VirtAddr, size_t ByteCount) return -1; } #else - printf("AllocateMemory: mmap(%p, %lx, ...)\n", (void*)base, ByteCount); +// printf("AllocateMemory: mmap(%p, 0x%lx, ...)\n", (void*)base, ByteCount); tmp = mmap((void*)base, size, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0); if( tmp == MAP_FAILED ) { printf("ERROR: Unable to allocate memory\n"); perror("AllocateMemory"); return -1; } - printf("AllocateMemory: RETURN 0\n"); +// printf("AllocateMemory: RETURN 0\n"); #endif return 0; } diff --git a/AcessNative/syscalls.h b/AcessNative/syscalls.h index 3c7bd85d..d1a0bdce 100644 --- a/AcessNative/syscalls.h +++ b/AcessNative/syscalls.h @@ -64,6 +64,7 @@ enum eSyscalls { SYS_SENDMSG, SYS_GETMSG, SYS_SELECT, + SYS_WAITEVENT, N_SYSCALLS }; @@ -103,7 +104,8 @@ static const char * casSYSCALL_NAMES[] = { "SYS_AN_FORK", "SYS_SENDMSG", "SYS_GETMSG", - "SYS_SELECT" + "SYS_SELECT", + "SYS_WAITEVENT" }; #endif -- 2.20.1