X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Fld-acess.so_src%2Fcommon.h;h=3eef946cd50de8cb91c45654447ed896e90d3de9;hb=846645bd8f738dc22641e96866fffd2f59b5639b;hp=22066f91000425f581d96844d14207165edc1c1e;hpb=17e16b3110b4c5124b0707435e0427993d696545;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/ld-acess.so_src/common.h b/Usermode/Libraries/ld-acess.so_src/common.h index 22066f91..3eef946c 100644 --- a/Usermode/Libraries/ld-acess.so_src/common.h +++ b/Usermode/Libraries/ld-acess.so_src/common.h @@ -1,50 +1,71 @@ -/* - AcessOS v1 - By thePowersGang - ld-acess.so - COMMON.H -*/ -#ifndef _COMMON_H -#define _COMMON_H - -#define NULL ((void*)0) - -#include - -// === 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; +/* + AcessOS v1 + By thePowersGang + ld-acess.so + COMMON.H +*/ +#ifndef _COMMON_H +#define _COMMON_H + +#define NULL ((void*)0) + +#include + +// 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 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; +} tLoadedLib; + +// === GLOBALS === +extern tLoadedLib gLoadedLibraries[MAX_LOADED_LIBRARIES]; // === Main === -extern int DoRelocate( Uint base, char **envp, char *Filename ); - -// === Library/Symbol Manipulation == -extern Uint LoadLibrary(char *filename, char *SearchDir, char **envp); -extern void AddLoaded(char *File, Uint base); -extern Uint GetSymbol(char *name); -extern int GetSymbolFromBase(Uint base, char *name, Uint *ret); - -// === Library Functions === -extern void strcpy(char *dest, char *src); -extern int strcmp(char *s1, char *s2); -extern int strlen(char *str); - -// === System Calls === -extern void SysExit(); -extern void SysDebug(char *fmt, ...); //!< Now implemented in main.c -extern void SysDebugV(char *fmt, ...); -extern Uint SysLoadBin(char *path, Uint *entry); -extern Uint SysUnloadBin(Uint Base); +extern void *DoRelocate(void *Base, char **envp, 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); + +// === 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); + +// === 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 void close(int fd); // === ELF Loader === -extern int ElfGetSymbol(Uint Base, char *name, Uint *ret); - -// === PE Loader === -extern int PE_GetSymbol(Uint Base, char *Name, Uint *ret); - -#endif +extern int ElfGetSymbol(void *Base, char *name, void **ret); + +// === PE Loader === +extern int PE_GetSymbol(void *Base, char *Name, void **ret); + +#endif