AcessNative - Huge changes, cleaning up and getting it to work
[tpg/acess2.git] / AcessNative / ld-acess_src / common.h
1 /*
2  */
3 #ifndef _COMMON_H_
4 #define _COMMON_H_
5
6 #include <stdlib.h>
7 #include <stdio.h>
8 #include <stdint.h>
9
10 extern int      Binary_GetSymbol(const char *SymbolName, uintptr_t *Value);
11 extern void     *Binary_LoadLibrary(const char *Path);
12 extern void     *Binary_Load(const char *Path, uintptr_t *EntryPoint);
13 extern void     Binary_SetReadyToUse(void *Base);
14
15 extern int      AllocateMemory(uintptr_t VirtAddr, size_t ByteCount);
16 extern uintptr_t        FindFreeRange(size_t ByteCount, int MaxBits);
17
18 extern void     Warning(const char *Format, ...);
19 extern void     Notice(const char *Format, ...);
20
21 #define ACESS_SEEK_CUR  0
22 #define ACESS_SEEK_SET  1
23 #define ACESS_SEEK_END  -1
24
25 extern int      acess_open(const char *Path, int Flags);
26 extern void     acess_close(int FD);
27 extern size_t   acess_read(int FD, size_t Bytes, void *Dest);
28 extern int      acess_seek(int FD, int64_t Offset, int Dir);
29
30 typedef struct {
31         char    *Name;
32         void    *Value;
33 }       tSym;
34
35 typedef struct sBinFmt {
36         struct sBinFmt  *Next;
37         char    *Name;
38         void    *(*Load)(int fd);
39         uintptr_t       (*Relocate)(void *base);
40          int    (*GetSymbol)(void*,char*,uintptr_t*);
41 }       tBinFmt;
42
43 #endif
44

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