summaryrefslogtreecommitdiffstats
path: root/loader/stubs.c
blob: 5ce4b7b8540ede7fe557e5bc6ca03c879eb5de7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <gconv.h>
#include <stdlib.h>

/* hj's gconv stubs, a little modified */

/* Define ALIASNAME as a strong alias for NAME.  */
# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
# define _strong_alias(name, aliasname) \
  extern __typeof (name) aliasname __attribute__ ((alias (#name)));

/* Don't drag in the dynamic linker. */
void *__libc_stack_end;

int
__gconv_OK () {
#if __GLIBC__ > 2 || __GLIBC_MINOR__ > 1
    return __GCONV_OK;
#else
    return GCONV_OK;
#endif
}

int
__gconv_NOCONV () {
#if __GLIBC__ > 2 || __GLIBC_MINOR__ > 1
    return __GCONV_NOCONV;
#else
    return GCONV_NOCONV;
#endif
}

strong_alias (__gconv_OK,
	      __gconv_close_transform);
strong_alias (__gconv_OK,
	      __gconv_close);

strong_alias (__gconv_NOCONV,
	      __gconv);
strong_alias (__gconv_NOCONV,
	      __gconv_find_transform);
strong_alias (__gconv_NOCONV,
	      __gconv_open);

/* These transformations should not fail in normal conditions */
strong_alias (__gconv_OK,
	      __gconv_transform_ascii_internal);
strong_alias (__gconv_OK,
	      __gconv_transform_ucs2little_internal);
strong_alias (__gconv_OK,
	      __gconv_transform_utf16_internal);
strong_alias (__gconv_OK,
	      __gconv_transform_utf8_internal);
strong_alias (__gconv_OK,
	      __gconv_transform_ucs2_internal);

/* We can assume no conversion for these ones */
strong_alias (__gconv_NOCONV,
	      __gconv_transform_internal_ascii);
strong_alias (__gconv_NOCONV,
	      __gconv_transform_internal_ucs2);
strong_alias (__gconv_NOCONV,
	      __gconv_transform_internal_ucs2little);
strong_alias (__gconv_NOCONV,
	      __gconv_transform_internal_ucs4);
strong_alias (__gconv_NOCONV,
	      __gconv_transform_internal_utf16);
strong_alias (__gconv_NOCONV,
	      __gconv_transform_internal_utf8);

strong_alias (__gconv_OK,
	      __gconv_transliterate);

const char *
__gconv_lookup_alias (const char *name)
{
    return NULL;
}

int
__gconv_compare_alias (const char *name1, const char *name2) {
    return 0;
}

void
__gconv_release_step () { }

void
__gconv_release_cache () { }

int RETURNZERO() { return 0; }

int getlogin_r ( char * name, int size ) {
    strdup(name, "root");
}

int __get_nprocs_conf() { return 1024; }
int __get_nprocs() { return 1; }
int __get_phys_pages() { return 4096; }
int __get_avphys_pages() { return 4096; }
int __getdtablesize() { return 100; }
int _nl_current_LC_TELEPHONE() { return 0; }
int _nl_current_LC_MEASUREMENT() { return 0; }
int _nl_current_LC_PAPER() { return 0; }
int _nl_current_LC_ADDRESS() { return 0; }
int __mpn_extract_long_double() { return 0; }
int __mpn_extract_double() { return 0; }
int _nl_C_LC_TELEPHONE() { return 0; }
int _nl_C_LC_MEASUREMENT() { return 0; }
int _nl_C_LC_PAPER() { return 0; }
int _nl_C_LC_ADDRESS() { return 0; }
int _dl_clktck() { return 0;}
int _dl_aux_init() { return 0;}
void * __libc_dlopen() {return 0;}
void * __libc_dlsym() {return 0;}
void * __libc_dlclose() {return 0;}
int __argz_create_sep() {return 0;}
int __argz_add_sep() {return 0;}
void __rpc_thread_key_cleanup() {} 
void __rpc_thread_svc_cleanup() {} 
void __rpc_thread_clnt_cleanup() {}
void _svcauth_des(void * a, void * b) {} 

int getdomainname(char * name, int len) {
    *name = '\0';
    return 0;
}

int _rpc_dtablesize(void) {
    return __getdtablesize();
}

int _dl_pagesize = 4096;