13 #include <acess/sys.h>
16 typedef uintptr_t Uint;
17 typedef uint8_t Uint8;
18 typedef uint16_t Uint16;
19 typedef uint32_t Uint32;
21 #define ASSERT(cnd) do { if( !(cnd) ) { _SysDebug("ASSERT: "#cnd" failed"); *(volatile int*)1 = 123; } } while(0)
23 // HACK: Replace with underscored
24 #define SysDebug _SysDebug
27 #define MAX_LOADED_LIBRARIES 64
28 #define MAX_STRINGS_BYTES 4096
29 #define SYSTEM_LIB_DIR "/Acess/Libs/"
43 extern tLoadedLib gLoadedLibraries[MAX_LOADED_LIBRARIES];
46 extern void *DoRelocate(void *Base, char **envp, const char *Filename);
48 // === Library/Symbol Manipulation ==
49 extern void *LoadLibrary(const char *Filename, const char *SearchDir, char **envp);
50 extern void AddLoaded(const char *File, void *base);
51 extern int GetSymbol(const char *Name, void **Value, size_t *size, void *IgnoreBase);
52 extern int GetSymbolFromBase(void *base, const char *name, void **ret, size_t *size);
54 // === Library Functions ===
55 extern char *strcpy(char *dest, const char *src);
56 extern char *strcat(char *dest, const char *src);
57 extern int strcmp(const char *s1, const char *s2);
58 extern int strlen(const char *str);
59 extern int file_exists(const char *filename);
60 extern void *memcpy(void *dest, const void *src, size_t len);
62 // === System Calls ===
65 extern void *ElfRelocate(void *Base, char **envp, const char *Filename);
66 extern int ElfGetSymbol(void *Base, const char *name, void **ret, size_t *Size);
69 extern void *PE_Relocate(void *Base, char **envp, const char *Filename);
70 extern int PE_GetSymbol(void *Base, const char *Name, void **ret, size_t *Size);