ld-acess/libc - Implimenting functions required by ARM eabi
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / export.c
1 /*
2  * Acess2 Dynamic Linker
3  */
4 #include "common.h"
5 #include <acess/sys.h>
6
7 extern uint64_t __udivdi3(uint64_t Num, uint64_t Den);
8 extern uint64_t __umoddi3(uint64_t Num, uint64_t Den);
9 extern int32_t  __divsi3(int32_t Num, int32_t Den);
10 extern int32_t  __modsi3(int32_t Num, int32_t Den);
11 extern uint32_t __udivsi3(uint32_t Num, uint32_t Den);
12 extern uint32_t __umodsi3(uint32_t Num, uint32_t Den);
13
14 #define _STR(x) #x
15 #define STR(x)  _STR(x)
16 #define EXP(sym)        {&sym, STR(sym)}
17
18 #define SYSCALL0(name,num)      EXP(name),
19 #define SYSCALL1(name,num)      EXP(name),
20 #define SYSCALL2(name,num)      EXP(name),
21 #define SYSCALL3(name,num)      EXP(name),
22 #define SYSCALL4(name,num)      EXP(name),
23 #define SYSCALL5(name,num)      EXP(name),
24 #define SYSCALL6(name,num)      EXP(name),
25
26 // === CONSTANTS ===
27 const struct {
28         void    *Value;
29         char    *Name;
30 }       caLocalExports[] = {
31         EXP(gLoadedLibraries),
32         EXP(_errno),
33         
34         #define __ASSEMBLER__
35         #include "arch/syscalls.s.h"
36         #undef __ASSEMBLER__
37         
38         #ifdef ARCHDIR_is_armv7
39         {0, "__gnu_Unwind_Find_exidx"},
40         {0, "__cxa_call_unexpected"},
41         {0, "__cxa_type_match"},
42         {0, "__cxa_begin_cleanup"},
43         #endif
44 #if 0
45         EXP(__umoddi3),
46         EXP(__udivdi3),
47         EXP(__divsi3),
48         EXP(__modsi3),
49         EXP(__udivsi3),
50         EXP(__umodsi3)
51 #endif
52 };
53
54 const int       ciNumLocalExports = sizeof(caLocalExports)/sizeof(caLocalExports[0]);

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