Merge branch 'master' of git://git.ucc.asn.au/tpg/acess2
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / common.h
index 81913d5..6f67811 100644 (file)
@@ -1,68 +1,71 @@
-/*\r
- AcessOS v1\r
- By thePowersGang\r
- ld-acess.so\r
- COMMON.H\r
-*/\r
-#ifndef _COMMON_H\r
-#define _COMMON_H\r
-\r
-#define        NULL    ((void*)0)\r
-\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 unsigned short Uint16;\r
-typedef unsigned long  Uint32;\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
+/*
+ AcessOS v1
+ By thePowersGang
+ ld-acess.so
+ COMMON.H
+*/
+#ifndef _COMMON_H
+#define _COMMON_H
+
+#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
+
+// === CONSTANTS ===
+#define        MAX_LOADED_LIBRARIES    64
+#define        MAX_STRINGS_BYTES       4096
+#define        SYSTEM_LIB_DIR  "/Acess/Libs/"
+
+// === Types ===
+typedef struct {
+       void    *Base;
+       char    *Name;
+}      tLoadedLib;
+
+// === GLOBALS ===
+extern tLoadedLib      gLoadedLibraries[MAX_LOADED_LIBRARIES];
 
 // === Main ===
-extern int     DoRelocate( Uint base, char **envp, char *Filename );
-\r
-// === Library/Symbol Manipulation ==\r
-extern Uint    LoadLibrary(char *filename, char *SearchDir, char **envp);
-extern void    AddLoaded(char *File, Uint base);
-extern Uint    GetSymbol(char *name);\r
-extern int     GetSymbolFromBase(Uint base, char *name, Uint *ret);\r
-\r
-// === Library Functions ===\r
-extern char    *strcpy(char *dest, const char *src);\r
+extern void    *DoRelocate(void *Base, char **envp, const char *Filename);
+
+// === 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, 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);\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    SysDebug(char *fmt, ...);       //!< Now implemented in main.c\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
+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(Uint Base, char *name, Uint *ret);\r
-\r
-// === PE Loader ===\r
-extern int     PE_GetSymbol(Uint Base, char *Name, Uint *ret);\r
-\r
-#endif\r
+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 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