e8f2e4c8a71425890cb607ab7d989d19ba614b18
[tpg/acess2.git] / AcessNative / ld-acess_src / exports.h
1 /*
2  * AcessNative Dymamic Linker
3  * - By John Hodge (thePowersGang)
4  *
5  * exports.h
6  * - Syscalls/Symbol definitions
7  */
8 #ifndef _EXPORTS_H_
9 #define _EXPORTS_H_
10
11 #include <stddef.h>
12 #include <stdint.h>
13
14 // Syscall request (used by acess_*)
15 extern uint64_t _Syscall(int SyscallID, const char *ArgTypes, ...);
16
17 extern int      acess__errno;
18
19 extern int      native_open(const char *Path, int Flags);
20 extern void     native_close(int FD);
21 extern size_t   native_read(int FD, void *Dest, size_t Bytes);
22 extern size_t   native_write(int FD, const void *Src, size_t Bytes);
23 extern int      native_seek(int FD, int64_t Offset, int Dir);
24 extern uint64_t native_tell(int FD);
25
26 extern int      native_execve(const char *filename, const char *const argv[], const char *const envp[]);
27 extern int      native_spawn(const char *filename, const char *const argv[], const char *const envp[]);
28
29 // Syscalls used by the linker
30 extern int      acess__SysOpen(const char *Path, unsigned int Flags);
31 extern void     acess__SysClose(int FD);
32 extern size_t   acess__SysRead(int FD, void *Dest, size_t Bytes);
33 extern int      acess__SysSeek(int FD, int64_t Offset, int Dir);
34
35 // Symbol type
36 typedef struct {
37         const char      *Name;
38         void    *Value;
39 }       tSym;
40
41 #endif
42

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