1*c9945492SAndroid Build Coastguard Worker #ifndef LIBC_H 2*c9945492SAndroid Build Coastguard Worker #define LIBC_H 3*c9945492SAndroid Build Coastguard Worker 4*c9945492SAndroid Build Coastguard Worker #include <stdlib.h> 5*c9945492SAndroid Build Coastguard Worker #include <stdio.h> 6*c9945492SAndroid Build Coastguard Worker #include <limits.h> 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker struct __locale_map; 9*c9945492SAndroid Build Coastguard Worker 10*c9945492SAndroid Build Coastguard Worker struct __locale_struct { 11*c9945492SAndroid Build Coastguard Worker const struct __locale_map *cat[6]; 12*c9945492SAndroid Build Coastguard Worker }; 13*c9945492SAndroid Build Coastguard Worker 14*c9945492SAndroid Build Coastguard Worker struct tls_module { 15*c9945492SAndroid Build Coastguard Worker struct tls_module *next; 16*c9945492SAndroid Build Coastguard Worker void *image; 17*c9945492SAndroid Build Coastguard Worker size_t len, size, align, offset; 18*c9945492SAndroid Build Coastguard Worker }; 19*c9945492SAndroid Build Coastguard Worker 20*c9945492SAndroid Build Coastguard Worker struct __libc { 21*c9945492SAndroid Build Coastguard Worker char can_do_threads; 22*c9945492SAndroid Build Coastguard Worker char threaded; 23*c9945492SAndroid Build Coastguard Worker char secure; 24*c9945492SAndroid Build Coastguard Worker volatile signed char need_locks; 25*c9945492SAndroid Build Coastguard Worker int threads_minus_1; 26*c9945492SAndroid Build Coastguard Worker size_t *auxv; 27*c9945492SAndroid Build Coastguard Worker struct tls_module *tls_head; 28*c9945492SAndroid Build Coastguard Worker size_t tls_size, tls_align, tls_cnt; 29*c9945492SAndroid Build Coastguard Worker size_t page_size; 30*c9945492SAndroid Build Coastguard Worker struct __locale_struct global_locale; 31*c9945492SAndroid Build Coastguard Worker }; 32*c9945492SAndroid Build Coastguard Worker 33*c9945492SAndroid Build Coastguard Worker #ifndef PAGE_SIZE 34*c9945492SAndroid Build Coastguard Worker #define PAGE_SIZE libc.page_size 35*c9945492SAndroid Build Coastguard Worker #endif 36*c9945492SAndroid Build Coastguard Worker 37*c9945492SAndroid Build Coastguard Worker extern hidden struct __libc __libc; 38*c9945492SAndroid Build Coastguard Worker #define libc __libc 39*c9945492SAndroid Build Coastguard Worker 40*c9945492SAndroid Build Coastguard Worker hidden void __init_libc(char **, char *); 41*c9945492SAndroid Build Coastguard Worker hidden void __init_tls(size_t *); 42*c9945492SAndroid Build Coastguard Worker hidden void __init_ssp(void *); 43*c9945492SAndroid Build Coastguard Worker hidden void __libc_start_init(void); 44*c9945492SAndroid Build Coastguard Worker hidden void __funcs_on_exit(void); 45*c9945492SAndroid Build Coastguard Worker hidden void __funcs_on_quick_exit(void); 46*c9945492SAndroid Build Coastguard Worker hidden void __libc_exit_fini(void); 47*c9945492SAndroid Build Coastguard Worker hidden void __fork_handler(int); 48*c9945492SAndroid Build Coastguard Worker 49*c9945492SAndroid Build Coastguard Worker extern hidden size_t __hwcap; 50*c9945492SAndroid Build Coastguard Worker extern hidden size_t __sysinfo; 51*c9945492SAndroid Build Coastguard Worker extern char *__progname, *__progname_full; 52*c9945492SAndroid Build Coastguard Worker 53*c9945492SAndroid Build Coastguard Worker extern hidden const char __libc_version[]; 54*c9945492SAndroid Build Coastguard Worker 55*c9945492SAndroid Build Coastguard Worker hidden void __synccall(void (*)(void *), void *); 56*c9945492SAndroid Build Coastguard Worker hidden int __setxid(int, int, int, int); 57*c9945492SAndroid Build Coastguard Worker 58*c9945492SAndroid Build Coastguard Worker #endif 59