From: John Hodge Date: Sat, 27 Jul 2013 15:51:32 +0000 (+0800) Subject: Tools/DiskTool - Misc fixes for recent kernel changes X-Git-Tag: rel0.15~310 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=3da4464eb0d3b00daa83ee5456ac381fa680627c;p=tpg%2Facess2.git Tools/DiskTool - Misc fixes for recent kernel changes --- 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; +}