Cleaning up and attempting to fix these darn heisenbugs
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / common.h
index 22066f9..81913d5 100644 (file)
 \r
 #include <stdarg.h>\r
 \r
+// === CONSTANTS ===\r
+#define        MAX_LOADED_LIBRARIES    64\r
+#define        MAX_STRINGS_BYTES       4096\r
+#define        SYSTEM_LIB_DIR  "/Acess/Libs/"\r
+\r
 // === Types ===\r
 typedef unsigned int   Uint;\r
 typedef unsigned char  Uint8;\r
@@ -19,6 +24,14 @@ typedef unsigned long        Uint32;
 typedef signed char            Sint8;\r
 typedef signed short   Sint16;\r
 typedef signed long            Sint32;\r
+\r
+typedef struct {\r
+       Uint    Base;\r
+       char    *Name;\r
+}      tLoadedLib;\r
+\r
+// === GLOBALS ===\r
+extern tLoadedLib      gLoadedLibraries[MAX_LOADED_LIBRARIES];\r
 
 // === Main ===
 extern int     DoRelocate( Uint base, char **envp, char *Filename );
@@ -30,9 +43,11 @@ extern Uint  GetSymbol(char *name);
 extern int     GetSymbolFromBase(Uint base, char *name, Uint *ret);\r
 \r
 // === Library Functions ===\r
-extern void    strcpy(char *dest, char *src);
-extern int     strcmp(char *s1, char *s2);\r
-extern int     strlen(char *str);\r
+extern char    *strcpy(char *dest, const char *src);\r
+extern char    *strcat(char *dest, const char *src);
+extern int     strcmp(const char *s1, const char *s2);\r
+extern int     strlen(const char *str);\r
+extern int     file_exists(char *filename);\r
 \r
 // === System Calls ===\r
 extern void    SysExit();\r
@@ -40,6 +55,9 @@ extern void   SysDebug(char *fmt, ...);       //!< Now implemented in main.c
 extern void    SysDebugV(char *fmt, ...);\r
 extern Uint    SysLoadBin(char *path, Uint *entry);\r
 extern Uint    SysUnloadBin(Uint Base);\r
+extern void    SysSetFaultHandler(int (*Hanlder)(int));\r
+extern int     open(char *filename, int flags);\r
+extern void    close(int fd);\r
 
 // === ELF Loader ===
 extern int     ElfGetSymbol(Uint Base, char *name, Uint *ret);\r

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