From 3da4464eb0d3b00daa83ee5456ac381fa680627c Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sat, 27 Jul 2013 23:51:32 +0800 Subject: [PATCH] Tools/DiskTool - Misc fixes for recent kernel changes --- Tools/DiskTool/Makefile | 1 + Tools/DiskTool/helpers.c | 2 +- Tools/DiskTool/include/acess.h | 4 +++- Tools/DiskTool/include/acess_logging.h | 14 ++++++++++++++ Tools/DiskTool/vfs_handles.c | 9 +++++++++ 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Tools/DiskTool/Makefile b/Tools/DiskTool/Makefile index 4b0ef607..f749f80e 100644 --- a/Tools/DiskTool/Makefile +++ b/Tools/DiskTool/Makefile @@ -25,6 +25,7 @@ N_OBJ = main.o script.o helpers.o # Compilation Options CFLAGS := -Wall -std=gnu99 -g -Werror CPPFLAGS := -I include/ -I ../nativelib +CPPFLAGS += -I../../Usermode/Libraries/ld-acess.so_src/include_exp/ # Syscalls K_CPPFLAGS := -I $(KERNEL_SRC)include -I $(MODULE_SRC) LDFLAGS += -Wl,--defsym,__buildnum=$(BUILD_NUM) -g -L ../ -lnativelib diff --git a/Tools/DiskTool/helpers.c b/Tools/DiskTool/helpers.c index f2aa26d9..78351690 100644 --- a/Tools/DiskTool/helpers.c +++ b/Tools/DiskTool/helpers.c @@ -41,7 +41,7 @@ size_t DiskTool_int_TranslatePath(char *Buffer, const char *Path) const char *pos; for(pos = Path; pos < colon; pos ++) { - if( !isalpha(*pos) ) + if( !isalnum(*pos) ) goto native_path; } diff --git a/Tools/DiskTool/include/acess.h b/Tools/DiskTool/include/acess.h index 7eff8c91..97d4ab33 100644 --- a/Tools/DiskTool/include/acess.h +++ b/Tools/DiskTool/include/acess.h @@ -13,7 +13,7 @@ #define STR(x) #x #define EXPAND_STR(x) STR(x) -#define ASSERT(x) do{}while(0) +//#define ASSERT(x) do{}while(0) extern char __buildnum[]; #define BUILD_NUM ((int)(Uint)&__buildnum) @@ -125,6 +125,8 @@ extern int WriteUTF8(Uint8 *str, Uint32 Val); // TODO: Move out? extern int DivUp(int value, int divisor); extern uint64_t DivMod64U(uint64_t Num, uint64_t Den, uint64_t *Rem); +static inline int MIN(int a, int b) { return a < b ? a : b; } +static inline int MAX(int a, int b) { return a > b ? a : b; } static inline void SHORTLOCK(tShortSpinlock *Lock) { if(*Lock) Log_KernelPanic("---", "Double short lock"); diff --git a/Tools/DiskTool/include/acess_logging.h b/Tools/DiskTool/include/acess_logging.h index f8577dd5..01d51e36 100644 --- a/Tools/DiskTool/include/acess_logging.h +++ b/Tools/DiskTool/include/acess_logging.h @@ -22,6 +22,7 @@ extern void Log_Notice(const char *Ident, const char *Message, ...); extern void Log_Log(const char *Ident, const char *Message, ...); extern void Log_Debug(const char *Ident, const char *Message, ...); +extern void Panic(const char *Msg, ...); extern void Warning(const char *Message, ...); extern void Log(const char *Message, ...); extern void Debug_HexDump(const char *Prefix, const void *Data, size_t Length); @@ -30,5 +31,18 @@ extern void Debug_TraceEnter(const char *Function, const char *Format, ...); extern void Debug_TraceLog(const char *Function, const char *Format, ...); extern void Debug_TraceLeave(const char *Function, char Type, ...); + +#if !DISABLE_ASSERTS +# define ASSERTV(expr,msg,args...) do{if(!(expr))Panic("%s:%i - %s: Assertion '"#expr"' failed"msg,__FILE__,__LINE__,(char*)__func__,##args);}while(0) +# define ASSERTRV(expr,rv,msg,args...) do{if(!(expr)){Warning("%s:%i: Assertion '"#expr"' failed"msg,__FILE__,__LINE__,(char*)__func__ , ##args);return rv;}}while(0) +#else +# define ASSERTV(expr) +# define ASSERTRV(expr) +#endif +#define ASSERT(expr) ASSERTV(expr, "") +#define ASSERTR(expr,rv) ASSERTRV(expr, rv, "") +#define ASSERTC(l,rel,r) ASSERTV(l rel r, ": %i"#rel"%i", l, r) +#define ASSERTCR(l,rel,r,rv) ASSERTRV(l rel r, rv, ": %i"#rel"%i", l, r) + #endif diff --git a/Tools/DiskTool/vfs_handles.c b/Tools/DiskTool/vfs_handles.c index 4f30151a..f076bc6c 100644 --- a/Tools/DiskTool/vfs_handles.c +++ b/Tools/DiskTool/vfs_handles.c @@ -31,3 +31,12 @@ tVFS_Handle *VFS_GetHandle(int ID) return NULL; return &gaKernelHandles[ID]; } + +int VFS_SetHandle(int FD, tVFS_Node *Node, int Mode) +{ + if( FD < 0 || FD >= MAX_KERNEL_FILES ) + return -1; + gaKernelHandles[FD].Node = Node; + gaKernelHandles[FD].Mode = Mode; + return 0; +} -- 2.20.1