Build fixes
[tpg/acess2.git] / Usermode / Libraries / ld-acess.old.so_src / common.h
1 /*\r
2  AcessOS v1\r
3  By thePowersGang\r
4  ld-acess.so\r
5  COMMON.H\r
6 */\r
7 #ifndef _COMMON_H\r
8 #define _COMMON_H\r
9 \r
10 #define NULL    ((void*)0)\r
11 \r
12 #include <stdarg.h>\r
13 \r
14 // === CONSTANTS ===\r
15 #define MAX_LOADED_LIBRARIES    64\r
16 #define MAX_STRINGS_BYTES       4096\r
17 #define SYSTEM_LIB_DIR  "/Acess/Libs/"\r
18 \r
19 // === Types ===\r
20 typedef unsigned int    Uint;\r
21 typedef unsigned char   Uint8;\r
22 typedef unsigned short  Uint16;\r
23 typedef unsigned long   Uint32;\r
24 typedef signed char             Sint8;\r
25 typedef signed short    Sint16;\r
26 typedef signed long             Sint32;\r
27 \r
28 typedef struct {\r
29         Uint    Base;\r
30         char    *Name;\r
31 }       tLoadedLib;\r
32 \r
33 // === GLOBALS ===\r
34 extern tLoadedLib       gLoadedLibraries[MAX_LOADED_LIBRARIES];\r
35
36 // === Main ===
37 extern int      DoRelocate( Uint base, char **envp, char *Filename );
38 \r
39 // === Library/Symbol Manipulation ==\r
40 extern Uint     LoadLibrary(char *filename, char *SearchDir, char **envp);
41 extern void     AddLoaded(char *File, Uint base);
42 extern Uint     GetSymbol(char *name);\r
43 extern int      GetSymbolFromBase(Uint base, char *name, Uint *ret);\r
44 \r
45 // === Library Functions ===\r
46 extern char     *strcpy(char *dest, const char *src);\r
47 extern char     *strcat(char *dest, const char *src);
48 extern int      strcmp(const char *s1, const char *s2);\r
49 extern int      strlen(const char *str);\r
50 extern int      file_exists(char *filename);\r
51 \r
52 // === System Calls ===\r
53 extern void     SysExit();\r
54 extern void     SysDebug(char *fmt, ...);       //!< Now implemented in main.c\r
55 extern void     SysDebugV(char *fmt, ...);\r
56 extern Uint     SysLoadBin(char *path, Uint *entry);\r
57 extern Uint     SysUnloadBin(Uint Base);\r
58 extern void     SysSetFaultHandler(int (*Hanlder)(int));\r
59 extern int      open(char *filename, int flags);\r
60 extern void     close(int fd);\r
61
62 // === ELF Loader ===
63 extern int      ElfGetSymbol(Uint Base, char *name, Uint *ret);\r
64 \r
65 // === PE Loader ===\r
66 extern int      PE_GetSymbol(Uint Base, char *Name, Uint *ret);\r
67 \r
68 #endif\r

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