Usermode/ld-acess - Implemented R_836_COPY and R_X86_64_COPY
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / common.h
index 3eef946..379efc1 100644 (file)
@@ -7,9 +7,14 @@
 #ifndef _COMMON_H
 #define _COMMON_H
 
-#define        NULL    ((void*)0)
-
+#include <stddef.h>
 #include <stdarg.h>
+#include <stdint.h>
+
+typedef        uintptr_t       Uint;
+typedef uint8_t        Uint8;
+typedef uint16_t       Uint16;
+typedef uint32_t       Uint32;
 
 // HACK: Replace with underscored
 #define SysDebug       _SysDebug
 #define        SYSTEM_LIB_DIR  "/Acess/Libs/"
 
 // === Types ===
-typedef unsigned int   Uint;
-typedef unsigned char  Uint8;
-typedef unsigned short Uint16;
-typedef unsigned long  Uint32;
-typedef signed char            Sint8;
-typedef signed short   Sint16;
-typedef signed long            Sint32;
-
 typedef struct {
        void    *Base;
        char    *Name;
@@ -37,20 +34,21 @@ typedef struct {
 extern tLoadedLib      gLoadedLibraries[MAX_LOADED_LIBRARIES];
 
 // === Main ===
-extern void    *DoRelocate(void *Base, char **envp, char *Filename);
+extern void    *DoRelocate(void *Base, char **envp, const char *Filename);
 
 // === Library/Symbol Manipulation ==
-extern void    *LoadLibrary(char *filename, char *SearchDir, char **envp);
-extern void    AddLoaded(char *File, void *base);
-extern void    *GetSymbol(char *name);
-extern int     GetSymbolFromBase(void *base, char *name, void **ret);
+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, 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 char    *strcat(char *dest, const char *src);
 extern int     strcmp(const char *s1, const char *s2);
 extern int     strlen(const char *str);
-extern int     file_exists(char *filename);
+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);
@@ -60,12 +58,14 @@ 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 void    close(int fd);
+extern int     close(int fd);
 
 // === ELF Loader ===
-extern int     ElfGetSymbol(void *Base, 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, 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

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