Add many wide cheracter functions to libc.so.conf
[platform/upstream/ltrace.git] / etc / libc.so.conf
1 # See ltrace.conf(5) for description of syntax of this file.
2
3 # arpa/inet.h
4 typedef in_addr = struct(hex(uint));
5 int inet_aton(string, +in_addr*);
6 hex(uint) inet_addr(string);
7 hex(uint) inet_network(string);
8 string inet_ntoa(in_addr);
9 in_addr inet_makeaddr(hex(int), hex(int));
10 hex(uint) inet_lnaof(in_addr);
11 hex(uint) inet_netof(in_addr);
12
13 # bfd.h
14 void bfd_init();
15 int bfd_set_default_target(string);
16 addr bfd_scan_vma(string, addr, int);
17 addr bfd_openr(string,string);
18 int bfd_check_format(addr,int);
19
20 # ctype.h
21 char tolower(char);
22 char toupper(char);
23 addr __ctype_b_loc();
24 addr __ctype_tolower_loc();
25 addr __ctype_toupper_loc();
26 ulong __ctype_get_mb_cur_max();
27
28 # curses.h
29 int waddch(addr, char);
30 int mvprintw(int, int, format);
31 int wmove(addr, int, int);
32 int waddnstr(addr, string, int);
33 string tgoto(string, int, int);
34
35 # dirent.h
36
37 # We can't portably rely on DIR internals at all.  Ideally this would
38 # be implemented in a per-OS config file, but even on Linux, we don't
39 # know whether there's a lock in the structure or not.  Luckily the
40 # one interesting datum, file descriptor, we can access reliably.
41 # Having the structure half-defined like this is potentially
42 # problematic as structure size influences parameter passing.  But
43 # POSIX always uses pointer to the structure, so it's fine.
44
45 typedef DIR = struct(int);
46 typedef FILE = addr;
47
48 # XXX We can't represent the following portably without having either
49 # uulong, or directly uint64_t.'
50
51 typedef ino_t = ulong;
52 typedef ino_t64 = ulong;
53 typedef off_t = ulong;
54 typedef off_t64 = ulong;
55
56 typedef dirent = struct(ino_t, hide(off_t), hide(ushort), hide(char), string(array(char, zero(256))));
57 typedef dirent64 = struct(ino_t64, hide(off_t64), hide(ushort), hide(char), string(array(char, zero(256))));
58
59 dirent *readdir(DIR *);
60 dirent64 *readdir64(DIR *);
61 int closedir(DIR *);
62 DIR *opendir(string);
63 DIR *fdopendir(int);
64 int dirfd(DIR *);
65 void rewinddir(DIR *);
66 long telldir(DIR *);
67 void seekdir(DIR *, long);
68
69 # dlfcn.h
70 addr  dlopen(string, int);
71 string dlerror();
72 addr  dlsym(addr, string);
73 int dlclose(addr);
74
75 # errno.h
76 addr __errno_location();
77
78 # fcntl.h
79 int open(string,int,octal);             ; WARNING: 3rd argument may not be there
80 int open64(string,int,octal);           ; WARNING: 3rd argument may not be there
81
82 # fnmatch.h
83 int fnmatch(string, string, int);
84
85 # getopt.h
86 int getopt_long(int,addr,string,addr,int*);
87 int getopt_long_only(int,addr,string,addr,addr);
88
89 # grp.h
90 void endgrent();
91 addr getgrnam(string);
92 void setgrent();
93 addr getgrent();
94
95 # libintl.h
96 string __dcgettext(string,string,int);
97 string bindtextdomain(string, string);
98 string textdomain(string);
99
100 # libio.h
101 char _IO_getc(file);
102 int _IO_putc(char,file);
103
104 # locale.h
105 string setlocale(enum(LC_CTYPE=0, LC_NUMERIC=1, LC_TIME=2, LC_COLLATE=3, LC_MONETARY=4, LC_MESSAGES=5, LC_ALL=6, LC_PAPER=7, LC_NAME=8, LC_ADDRESS=9, LC_TELEPHONE=10, LC_MEASUREMENT=11, LC_IDENTIFICATION=12), string);
106
107 # mcheck.h
108 void mtrace();
109 void muntrace();
110
111 # mqueue.h
112 int mq_open(string, int, octal, addr);  ; WARNING: 3rd and 4th arguments may not be there
113 int mq_close(int);
114 int mq_unlink(string);
115 int mq_getattr(int, addr);
116 int mq_setattr(int, addr, addr);
117 int mq_notify(int, addr);
118 int mq_send(int, string3, ulong, uint);
119 int mq_timedsend(int, string3, ulong, uint, addr);
120 long mq_receive(int, +string0, ulong, addr);
121 long mq_timedreceive(int, +string0, ulong, addr, addr);
122
123 # netdb.h
124 void endhostent();
125 void endnetent();
126 void endnetgrent();
127 void endprotoent();
128 void endservent();
129 void freeaddrinfo(addr);
130 string gai_strerror(int);
131 int getaddrinfo(string, string, addr, addr);
132 addr gethostbyaddr(string, uint, int);
133 addr gethostbyname(string);
134 addr gethostent();
135 int getnameinfo(addr, uint, string, uint, string, uint, uint);
136 addr getnetbyaddr(uint, int);
137 addr getnetbyname(string);
138 addr getnetent();
139 int getnetgrent(addr, addr, addr);
140 addr getprotobyname(string);
141 addr getprotobynumber(int);
142 addr getprotoent();
143 addr getservbyname(string, string);
144 addr getservbyport(int, string);
145 addr getservent();
146 void herror(string);
147 string hstrerror(int);
148 int rcmd(addr, ushort, string, string, string, addr);
149 int rcmd_af(addr, ushort, string, string, string, addr, int);
150 int rexec(addr, int, string, string, string, addr);
151 int rexec_af(addr, int, string, string, string, addr, int);
152 int rresvport (addr);
153 int rresvport_af (addr, int);
154 int ruserok(string, int, string, string);
155 int ruserok_af(string, int, string, string, int);
156 void sethostent(int);
157 void setnetent(int);
158 int setnetgrent(string);
159 void setprotoent(int);
160 void setservent(int);
161
162 # netinet/in.h
163 uint ntohs(uint);
164
165 # pcap.h
166 string pcap_lookupdev(addr);
167 addr pcap_open_live(string, int, int, int, addr);
168 int pcap_snapshot(addr);
169 int pcap_lookupnet(string, addr, addr, addr);
170 int pcap_compile(addr, addr, string, int, addr);
171
172 # pwd.h
173 string getpass(string);
174 void endpwent();
175 addr getpwnam(string);
176 void setpwent();
177
178 # readline/readline.h
179 string readline(string);
180
181 # signal.h
182 typedef signum = enum(SIGHUP=1, SIGINT=2, SIGQUIT=3, SIGILL=4, SIGTRAP=5, SIGABRT=6, SIGBUS=7, SIGFPE=8, SIGKILL=9, SIGUSR1=10, SIGSEGV=11, SIGUSR2=12, SIGPIPE=13, SIGALRM=14, SIGTERM=15, SIGSTKFLT=16, SIGCHLD=17, SIGCONT=18, SIGSTOP=19, SIGTSTP=20, SIGTTIN=21, SIGTTOU=22, SIGURG=23, SIGXCPU=24, SIGXFSZ=25, SIGVTALRM=26, SIGPROF=27, SIGWINCH=28, SIGIO=29, SIGPWR=30, SIGSYS=31, SIGRTMIN_0=32, SIGRTMIN_1=33, SIGRTMIN_2=34, SIGRTMIN_3=35, SIGRTMIN_4=36, SIGRTMIN_5=37, SIGRTMIN_6=38, SIGRTMIN_7=39, SIGRTMIN_8=40, SIGRTMIN_9=41, SIGRTMIN_10=42, SIGRTMIN_11=43, SIGRTMIN_12=44, SIGRTMIN_13=45, SIGRTMIN_14=46, SIGRTMIN_15=47, SIGRTMIN_16=48, SIGRTMIN_17=49, SIGRTMIN_18=50, SIGRTMIN_19=51, SIGRTMIN_20=52, SIGRTMIN_21=53, SIGRTMIN_22=54, SIGRTMIN_23=55, SIGRTMIN_24=56, SIGRTMIN_25=57, SIGRTMIN_26=58, SIGRTMIN_27=59, SIGRTMIN_28=60, SIGRTMIN_29=61, SIGRTMIN_30=62, SIGRTMIN_31=63);
183 typedef sigset_t = bitvec(ulong);
184 # elm3 should be flags
185 typedef sigaction = struct(addr, sigset_t, hex(int), addr);
186 int kill(int, signum);
187 int sigemptyset(+sigset_t*);
188 int sigaddset(+sigset_t*, signum);
189 int sigdelset(+sigset_t*, signum);
190 int sigfillset(+sigset_t*);
191 int sigismember(sigset_t*, signum);
192 addr signal(signum,addr);
193 int sigaction(signum, sigaction*, +sigaction*);
194 int sigprocmask(enum(SIG_BLOCK=1, SIG_UNBLOCK=2, SIG_SETMASK=3), sigset_t*, +sigset_t*);
195 int sigpending(+sigset_t*);
196 int sigsuspend(sigset_t*);
197 int sigisemptyset(sigset_t*);
198 int sigorset(+sigset_t*, sigset_t*, sigset_t*);
199 int sigandset(+sigset_t*, sigset_t*, sigset_t*);
200
201 # stdio.h
202 int fclose(file);
203 int feof(file);
204 int ferror(file);
205 int fflush(file);
206 char fgetc(file);
207 addr fgets(+string, int, file);
208 int fileno(file);
209 file fopen(string,string);
210 file fopen64(string,string);
211 file fdopen(int, string);
212 int fprintf(file,format);
213 int fputc(char,file);
214 int fputs(string,file);
215 ulong fread(addr,ulong,ulong,file);
216 ulong fread_unlocked(addr,ulong,ulong,file);
217 ulong fwrite(string,ulong,ulong,file);
218 ulong fwrite_unlocked(string,ulong,ulong,file);
219 int pclose(addr);
220 void perror(string);
221 addr popen(string, string);
222 int printf(format);
223 int puts(string);
224 int remove(string);
225 int snprintf(+string2,ulong,format);
226 int sprintf(+string,format);
227 string tempnam(string,string);
228 int vfprintf(file,string,addr);
229 int vsnprintf(+string2,ulong,string,addr);
230 int setvbuf(file,addr,int,ulong);
231 void setbuf(file,addr);
232 void setbuffer(file,addr,ulong);
233 void setlinebuf(file);
234 int rename(string,string);
235
236 # stdlib.h
237 long __strtol_internal(string,addr,int);
238 ulong __strtoul_internal(string,addr,int);
239 int atexit(addr);
240 addr bsearch(string, addr, ulong, ulong, addr);
241 addr calloc(ulong, ulong);
242 void exit(int);
243 void free(addr);
244 string getenv(string);
245 int putenv(string);
246 int setenv(string,string,int);
247 void unsetenv(string);
248 addr malloc(ulong);
249 void qsort(addr,ulong,ulong,addr);
250 addr realloc(addr,ulong);
251 int system(string);
252
253 int rand();
254 int rand_r(uint*);
255 void srand(uint);
256 long random();
257 void srandom(uint);
258 void* initstate(uint, void*, ulong);
259 void* setstate(void*);
260 int random_r(void*, +int*);
261 int srandom_r(uint, void*);
262 int initstate_r(uint, void*, ulong, void*);
263 int setstate_r(void*, void*);
264 double drand48();
265 double erand48(+array(ushort,3)*);
266 long lrand48();
267 long nrand48(+array(ushort,3)*);
268 long mrand48();
269 long jrand48(+array(ushort,3)*);
270 void srand48(long);
271 array(ushort,3)* seed48(array(ushort,3)*);
272 void lcong48(array(ushort,7)*);
273
274 # string.h
275 void bcopy(addr,addr,ulong);
276 void bzero(addr,ulong);
277 string basename(string);
278 string index(string,char);
279 addr memchr(string,char,ulong);
280 addr memcpy(addr,string(array(char, arg3)*),ulong);
281 addr memmove(addr,string(array(char, arg3)*),ulong);
282 addr memset(addr,char,long);
283 string rindex(string,char);
284 addr stpcpy(addr,string);
285 int strcasecmp(string, string);
286 string strcat(string, string);
287 string strchr(string,char);
288 int strcoll(string,string);
289 ulong strlen(string);
290 int strcmp(string,string);
291 addr strcpy(addr,string);
292 addr strdup(string);
293 string strerror(int);
294 int strncmp(string,string,ulong);
295 addr strncpy(addr,string3,ulong);
296 string strrchr(string,char);
297 string strsep(addr,string);
298 ulong strspn(string,string);
299 ulong strcspn(string,string);
300 string strstr(string,string);
301 string strtok(string, string);
302
303 # sys/ioctl.h
304 int ioctl(int, int, addr);
305
306 # sys/socket.h
307 int socket(int,int,int);
308
309 # sys/stat.h
310 int __fxstat(int,int,addr);
311 int __xstat(int,string,addr);
312 int __lxstat(int,string,addr);
313 int __fxstat64(int,int,addr);
314 int __xstat64(int,string,addr);
315 int __lxstat64(int,string,addr);
316 int chmod(string,octal);
317 int fchmod(int,octal);
318 int mkfifo(string,octal);
319 octal umask(octal);
320
321 # sys/utsname.h
322 int uname(addr);
323
324 # sys/vfs.h
325 int statfs(string,addr);
326
327 # syslog.h
328 void closelog();
329 void openlog(string,int,int);
330 void syslog(int,format);
331
332 # term.h
333 int tputs(string, int, addr);
334
335 # termios.h
336 int tcgetattr(int,addr);
337 int tcsetattr(int,int,addr);
338
339 # time.h
340 string ctime(addr);
341 int gettimeofday(addr, addr);
342 addr gmtime(addr);
343 addr localtime(addr);
344 ulong strftime(+string2,ulong,string,addr);
345 long time(addr);
346
347 # unistd.h
348 void _exit(int);
349 int access(string, int);
350 uint alarm(uint);
351 int chdir(string);
352 int chown(string,int,int);
353 int close(int);
354 string crypt(string,string);
355 int dup2(int,int);
356 int execlp(string,string,addr,addr,addr);
357 int execv(string,addr);
358 int fchdir(int);
359 int fork();
360 int ftruncate(int,ulong);
361 string2 getcwd(addr,ulong);
362 int getdomainname(+string2,ulong);
363 int geteuid();
364 int getegid();
365 int getgid();
366 int gethostname(+string2,ulong);
367 string getlogin();
368 int getopt(int,addr,string);
369 int getpid();
370 int getppid();
371 int getuid();
372 int getpgrp();
373 int setpgrp();
374 int getpgid(int);
375 int isatty(int);
376 int link(string,string);
377 int mkdir(string,octal);
378 long read(int, +string[retval], ulong);
379 int rmdir(string);
380 int seteuid(uint);
381 int setgid(int);
382 int sethostname(+string2,ulong);
383 int setpgid(int,int);
384 int setreuid(uint, uint);
385 int setuid(int);
386 uint sleep(uint);
387 int symlink(string,string);
388 int sync();
389 int truncate(string,ulong);
390 string ttyname(int);
391 int unlink(string);
392 void usleep(uint);
393 long write(int, string3, ulong);
394 addr sbrk(long);
395 int getpagesize();
396 long lseek(int,long,int);
397 int pipe(addr);
398
399 # utmp.h
400 void endutent();
401 addr getutent();
402 void setutent();
403
404 # wchar.h
405 typedef wchar_t = string(uint);
406 typedef wint_t = string(int);
407 typedef wstring_t = string(array(uint, zero)*);
408 typedef wstring2_t = string(array(uint, zero(arg2))*);
409 typedef wstring3_t = string(array(uint, zero(arg3))*);
410
411 int fwide(FILE*, int);
412 wint_t btowc(int);
413
414 wint_t getwc(FILE *);
415 wint_t getwchar();
416 wint_t fgetwc(FILE*);
417 wstring_t fgetws(+wstring2_t, int, FILE*);
418 wint_t ungetwc(wint_t, FILE*);
419
420 wint_t fputwc(wchar_t, FILE*);
421 int fputws(wstring_t, FILE*);
422 wint_t putwc(wchar_t, FILE*);
423 wint_t putwchar(wchar_t);
424
425 int wprintf(format(wstring_t));
426 int fwprintf(FILE*, format(wstring_t));
427 int swprintf(+wstring2_t, ulong, format(wstring_t));
428 int vfwprintf(FILE*, wstring_t, addr);
429 int vwprintf(wstring_t, addr);
430 int vswprintf(+wstring2_t, ulong, wstring_t, addr);
431
432 ; int wscanf(const wchar_t *restrict, ...);
433 ; int fwscanf(FILE *restrict, const wchar_t *restrict, ...);
434 ; int swscanf(const wchar_t *restrict, const wchar_t *restrict, ...);
435 ; int vfwscanf(FILE *restrict, const wchar_t *restrict, va_list);
436 ; int vswscanf(const wchar_t *restrict, const wchar_t *restrict, va_list);
437 ; int vwscanf(const wchar_t *restrict, va_list);
438
439 int iswalnum(wint_t);
440 int iswalpha(wint_t);
441 int iswcntrl(wint_t);
442 int iswdigit(wint_t);
443 int iswgraph(wint_t);
444 int iswlower(wint_t);
445 int iswprint(wint_t);
446 int iswpunct(wint_t);
447 int iswspace(wint_t);
448 int iswupper(wint_t);
449 int iswxdigit(wint_t);
450 uint wctype(string);
451 int iswctype(wint_t, uint);
452
453 ulong mbrlen(string, ulong, addr);
454 ulong mbrtowc(+wchar_t*, string[arg3], ulong, addr);
455 ulong mbsrtowcs(+wstring3_t, string*, ulong, addr);
456 ulong wctomb(+string0, wchar_t);
457 ulong wcrtomb(+string0, wchar_t, addr);
458 ulong wcsrtombs(+string3, wstring_t*, ulong, addr);
459 int mbsinit(addr);
460
461 wint_t towlower(wint_t);
462 wint_t towupper(wint_t);
463
464 wstring_t wcscat(wstring_t, wstring_t);
465 wstring_t wcsncat(wstring3_t, wstring_t, ulong);
466 wstring_t wcschr(wstring_t, wchar_t);
467 wstring_t wcsrchr(wstring_t, wchar_t);
468 int wcscmp(wstring_t, wstring_t);
469 int wcsncmp(wstring3_t, wstring3_t, ulong);
470 int wcscoll(wstring_t, wstring_t);
471 addr wcscpy(addr, wstring_t);
472 addr wcsncpy(addr, wstring_t, ulong);
473 ulong wcslen(wstring_t);
474
475 wstring_t wcsstr(wstring_t, wstring_t);
476 wstring_t wcswcs(wstring_t, wstring_t);
477
478 ulong wcscspn(wstring_t, wstring_t);
479 ulong wcsspn(wstring_t, wstring_t);
480 wstring_t wcspbrk(wstring_t, wstring_t);
481 wstring_t wcstok(wstring_t, wstring_t, +wstring_t*);
482
483 ulong wcsftime(+wstring2_t, ulong, wstring_t, addr);
484
485 # XXX ltrace misses long double and long long support
486 typedef ldouble = double;
487 typedef llong = long;
488 typedef ullong = ulong;
489
490 double wcstod(wstring_t, +wstring_t*);
491 float wcstof(wstring_t, +wstring_t*);
492 ldouble wcstold(wstring_t, +wstring_t*);
493 long wcstol(wstring_t, +wstring_t*, int);
494 llong wcstoll(wstring_t, +wstring_t*, int);
495 ulong wcstoul(wstring_t, +wstring_t*, int);
496 ullong wcstoull(wstring_t, +wstring_t*, int);
497
498 int wcwidth(wchar_t);
499 int wcswidth(wstring2_t, ulong);
500
501 wstring_t wmemchr(wstring3_t, wchar_t, ulong);
502 int wmemcmp(wstring3_t, wstring3_t, ulong);
503 int wctob(wint_t);
504 wstring3_t wmemcpy(addr, wstring3_t, ulong);
505 wstring3_t wmemmove(addr, wstring3_t, ulong);
506 wstring3_t wmemset(addr, wchar_t, ulong);
507
508 # sys/wait.h
509 int wait(addr);
510 int waitpid(int,addr,int);
511
512 # other symbols not included above
513 long a64l(string);
514 string l64a(long);
515 void abort();
516 int abs(int);
517 long labs(long);
518
519 typedef mntent = struct(string, string, string, string, int, int);
520 int addmntent(file, mntent*);
521 int endmntent(file);
522 int __endmntent(file);
523 file setmntent(string,string);
524 file __setmntent(string,string);
525 mntent *getmntent(addr);
526 mntent *getmntent_r(file, +mntent*, string, int);
527 mntent *__getmntent_r(file, +mntent*, string, int);
528 string hasmntopt(mntent*, string);