\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
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 );
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
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