#include <stddef.h>
#include <stdarg.h>
#include <stdint.h>
+#include <acess/sys.h>
+#include <assert.h>
typedef uintptr_t Uint;
typedef uint8_t Uint8;
// === Library/Symbol Manipulation ==
extern void *LoadLibrary(const char *Filename, const char *SearchDir, char **envp);
extern void AddLoaded(const char *File, void *base);
-extern void *GetSymbol(const char *name);
-extern int GetSymbolFromBase(void *base, const char *name, void **ret);
+extern int GetSymbol(const char *Name, void **Value, size_t *size);
+extern int GetSymbolFromBase(void *base, const char *name, void **ret, size_t *size);
// === Library Functions ===
extern char *strcpy(char *dest, const char *src);
extern int strcmp(const char *s1, const char *s2);
extern int strlen(const char *str);
extern int file_exists(const char *filename);
+extern void *memcpy(void *dest, const void *src, size_t len);
// === System Calls ===
-extern void _exit(int retval);
-extern void SysDebug(const char *fmt, ...); //!< Now implemented in main.c
-extern void SysDebugV(const char *fmt, ...);
-extern void *SysLoadBin(const char *path, void **entry);
-extern int SysUnloadBin(void *Base);
-extern void SysSetFaultHandler(int (*Hanlder)(int));
-extern int open(const char *filename, int flags);
-extern int close(int fd);
// === ELF Loader ===
-extern int ElfGetSymbol(void *Base, const char *name, void **ret);
+extern void *ElfRelocate(void *Base, char **envp, const char *Filename);
+extern int ElfGetSymbol(void *Base, const char *name, void **ret, size_t *Size);
// === PE Loader ===
-extern int PE_GetSymbol(void *Base, const char *Name, void **ret);
+extern void *PE_Relocate(void *Base, char **envp, const char *Filename);
+extern int PE_GetSymbol(void *Base, const char *Name, void **ret, size_t *Size);
#endif