Support wide character strings
[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 int fprintf(file,format);
212 int fputc(char,file);
213 int fputs(string,file);
214 ulong fread(addr,ulong,ulong,file);
215 ulong fread_unlocked(addr,ulong,ulong,file);
216 ulong fwrite(string,ulong,ulong,file);
217 ulong fwrite_unlocked(string,ulong,ulong,file);
218 int pclose(addr);
219 void perror(string);
220 addr popen(string, string);
221 int printf(format);
222 int puts(string);
223 int remove(string);
224 int snprintf(+string2,ulong,format);
225 int sprintf(+string,format);
226 string tempnam(string,string);
227 int vfprintf(file,string,addr);
228 int vsnprintf(+string2,ulong,string,addr);
229 int setvbuf(file,addr,int,ulong);
230 void setbuf(file,addr);
231 void setbuffer(file,addr,ulong);
232 void setlinebuf(file);
233 int rename(string,string);
234
235 # stdlib.h
236 long __strtol_internal(string,addr,int);
237 ulong __strtoul_internal(string,addr,int);
238 int atexit(addr);
239 addr bsearch(string, addr, ulong, ulong, addr);
240 addr calloc(ulong, ulong);
241 void exit(int);
242 void free(addr);
243 string getenv(string);
244 int putenv(string);
245 int setenv(string,string,int);
246 void unsetenv(string);
247 addr malloc(ulong);
248 void qsort(addr,ulong,ulong,addr);
249 addr realloc(addr,ulong);
250 int system(string);
251
252 int rand();
253 int rand_r(uint*);
254 void srand(uint);
255 long random();
256 void srandom(uint);
257 void* initstate(uint, void*, ulong);
258 void* setstate(void*);
259 int random_r(void*, +int*);
260 int srandom_r(uint, void*);
261 int initstate_r(uint, void*, ulong, void*);
262 int setstate_r(void*, void*);
263 double drand48();
264 double erand48(+array(ushort,3)*);
265 long lrand48();
266 long nrand48(+array(ushort,3)*);
267 long mrand48();
268 long jrand48(+array(ushort,3)*);
269 void srand48(long);
270 array(ushort,3)* seed48(array(ushort,3)*);
271 void lcong48(array(ushort,7)*);
272
273 # string.h
274 void bcopy(addr,addr,ulong);
275 void bzero(addr,ulong);
276 string basename(string);
277 string index(string,char);
278 addr memchr(string,char,ulong);
279 addr memcpy(addr,string(array(char, arg3)*),ulong);
280 addr memmove(addr,string(array(char, arg3)*),ulong);
281 addr memset(addr,char,long);
282 string rindex(string,char);
283 addr stpcpy(addr,string);
284 int strcasecmp(string, string);
285 string strcat(string, string);
286 string strchr(string,char);
287 int strcoll(string,string);
288 ulong strlen(string);
289 int strcmp(string,string);
290 addr strcpy(addr,string);
291 addr strdup(string);
292 string strerror(int);
293 int strncmp(string,string,ulong);
294 addr strncpy(addr,string3,ulong);
295 string strrchr(string,char);
296 string strsep(addr,string);
297 ulong strspn(string,string);
298 ulong strcspn(string,string);
299 string strstr(string,string);
300 string strtok(string, string);
301
302 # sys/ioctl.h
303 int ioctl(int, int, addr);
304
305 # sys/socket.h
306 int socket(int,int,int);
307
308 # sys/stat.h
309 int __fxstat(int,int,addr);
310 int __xstat(int,string,addr);
311 int __lxstat(int,string,addr);
312 int __fxstat64(int,int,addr);
313 int __xstat64(int,string,addr);
314 int __lxstat64(int,string,addr);
315 int chmod(string,octal);
316 int fchmod(int,octal);
317 int mkfifo(string,octal);
318 octal umask(octal);
319
320 # sys/utsname.h
321 int uname(addr);
322
323 # sys/vfs.h
324 int statfs(string,addr);
325
326 # syslog.h
327 void closelog();
328 void openlog(string,int,int);
329 void syslog(int,format);
330
331 # term.h
332 int tputs(string, int, addr);
333
334 # termios.h
335 int tcgetattr(int,addr);
336 int tcsetattr(int,int,addr);
337
338 # time.h
339 string ctime(addr);
340 int gettimeofday(addr, addr);
341 addr gmtime(addr);
342 addr localtime(addr);
343 ulong strftime(+string2,ulong,string,addr);
344 long time(addr);
345
346 # unistd.h
347 void _exit(int);
348 int access(string, int);
349 uint alarm(uint);
350 int chdir(string);
351 int chown(string,int,int);
352 int close(int);
353 string crypt(string,string);
354 int dup2(int,int);
355 int execlp(string,string,addr,addr,addr);
356 int execv(string,addr);
357 int fchdir(int);
358 int fork();
359 int ftruncate(int,ulong);
360 string2 getcwd(addr,ulong);
361 int getdomainname(+string2,ulong);
362 int geteuid();
363 int getegid();
364 int getgid();
365 int gethostname(+string2,ulong);
366 string getlogin();
367 int getopt(int,addr,string);
368 int getpid();
369 int getppid();
370 int getuid();
371 int getpgrp();
372 int setpgrp();
373 int getpgid(int);
374 int isatty(int);
375 int link(string,string);
376 int mkdir(string,octal);
377 long read(int, +string[retval], ulong);
378 int rmdir(string);
379 int seteuid(uint);
380 int setgid(int);
381 int sethostname(+string2,ulong);
382 int setpgid(int,int);
383 int setreuid(uint, uint);
384 int setuid(int);
385 uint sleep(uint);
386 int symlink(string,string);
387 int sync();
388 int truncate(string,ulong);
389 string ttyname(int);
390 int unlink(string);
391 void usleep(uint);
392 long write(int, string3, ulong);
393 addr sbrk(long);
394 int getpagesize();
395 long lseek(int,long,int);
396 int pipe(addr);
397
398 # utmp.h
399 void endutent();
400 addr getutent();
401 void setutent();
402
403 # wchar.h
404 typedef wchar_t = string(uint);
405 typedef wint_t = string(int);
406 typedef wstring_t = string(array(uint, zero)*);
407
408 int fwide(FILE*, int);
409 wint_t btowc(int);
410 wint_t fgetwc(FILE*);
411 wstring_t fgetws(+string(array(uint, zero(arg2))*), int, FILE*);
412 wint_t fputwc(wchar_t, FILE*);
413 int fputws(wstring_t, FILE*);
414 int fwprintf(FILE*, format(wstring_t));
415 ; int fwscanf(FILE *restrict, const wchar_t *restrict, ...);
416 wint_t getwc(FILE *);
417 wint_t getwchar();
418 int iswalnum(wint_t);
419 int iswalpha(wint_t);
420 int iswcntrl(wint_t);
421 ; int iswctype(wint_t, wctype_t);
422 int iswdigit(wint_t);
423 int iswgraph(wint_t);
424 int iswlower(wint_t);
425 int iswprint(wint_t);
426 int iswpunct(wint_t);
427 int iswspace(wint_t);
428 int iswupper(wint_t);
429 int iswxdigit(wint_t);
430 ulong mbrlen(string, ulong, addr);
431 ulong mbrtowc(+wchar_t*, string[arg3], ulong, addr);
432 int mbsinit(addr);
433 ulong mbsrtowcs(+string(array(uint, zero(arg3))), string*, ulong, addr);
434
435 # sys/wait.h
436 int wait(addr);
437 int waitpid(int,addr,int);
438
439 # other symbols not included above
440 long a64l(string);
441 string l64a(long);
442 void abort();
443 int abs(int);
444 long labs(long);
445
446 typedef mntent = struct(string, string, string, string, int, int);
447 int addmntent(file, mntent*);
448 int endmntent(file);
449 int __endmntent(file);
450 file setmntent(string,string);
451 file __setmntent(string,string);
452 mntent *getmntent(addr);
453 mntent *getmntent_r(file, +mntent*, string, int);
454 mntent *__getmntent_r(file, +mntent*, string, int);
455 string hasmntopt(mntent*, string);