]> git.wh0rd.org - ICEs.git/blame - s390x/rtld.i
initial import
[ICEs.git] / s390x / rtld.i
CommitLineData
45516216 1# 1 "rtld.c"
2# 1 "<built-in>"
3# 1 "<command line>"
4# 1 "./../include/libc-symbols.h" 1
5# 55 "./../include/libc-symbols.h"
6# 1 "/var/tmp/portage/sys-libs/glibc-2.4-r4/work/build-default-s390x-ibm-linux-gnu-nptl/config.h" 1
7# 56 "./../include/libc-symbols.h" 2
8# 817 "./../include/libc-symbols.h"
9# 1 "../sysdeps/generic/symbol-hacks.h" 1
10# 818 "./../include/libc-symbols.h" 2
11# 1 "<command line>" 2
12# 1 "rtld.c"
13# 20 "rtld.c"
14# 1 "../include/errno.h" 1
15
16
17# 1 "../stdlib/errno.h" 1
18# 29 "../stdlib/errno.h"
19# 1 "../include/features.h" 1
20# 323 "../include/features.h"
21# 1 "../include/sys/cdefs.h" 1
22
23
24# 1 "../misc/sys/cdefs.h" 1
25# 313 "../misc/sys/cdefs.h"
26# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
27# 314 "../misc/sys/cdefs.h" 2
28# 4 "../include/sys/cdefs.h" 2
29
30extern void __chk_fail (void) __attribute__ ((__noreturn__));
31
32extern __typeof (__chk_fail) __chk_fail __asm__ ("" "__GI___chk_fail") __attribute__ ((visibility ("hidden")));
33# 324 "../include/features.h" 2
34# 346 "../include/features.h"
35# 1 "../include/gnu/stubs.h" 1
36# 347 "../include/features.h" 2
37# 30 "../stdlib/errno.h" 2
38
39
40
41
42
43
44# 1 "../sysdeps/unix/sysv/linux/bits/errno.h" 1
45# 25 "../sysdeps/unix/sysv/linux/bits/errno.h"
46# 1 "/usr/include/linux/errno.h" 1 3 4
47
48
49
50# 1 "/usr/include/asm/errno.h" 1 3 4
51# 11 "/usr/include/asm/errno.h" 3 4
52# 1 "/usr/include/asm-generic/errno.h" 1 3 4
53
54
55
56# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
57# 5 "/usr/include/asm-generic/errno.h" 2 3 4
58# 12 "/usr/include/asm/errno.h" 2 3 4
59# 5 "/usr/include/linux/errno.h" 2 3 4
60# 26 "../sysdeps/unix/sysv/linux/bits/errno.h" 2
61# 43 "../sysdeps/unix/sysv/linux/bits/errno.h"
62extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
63# 37 "../stdlib/errno.h" 2
64# 55 "../stdlib/errno.h"
65extern char *program_invocation_name, *program_invocation_short_name;
66
67
68
69
70# 69 "../stdlib/errno.h"
71typedef int error_t;
72# 4 "../include/errno.h" 2
73
74
75
76
77# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
78# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
79# 1 "../sysdeps/generic/dl-sysdep.h" 1
80# 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
81# 9 "../include/errno.h" 2
82# 18 "../include/errno.h"
83extern int rtld_errno __attribute__ ((visibility ("hidden")));
84# 39 "../include/errno.h"
85extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__))
86
87 __attribute__ ((visibility ("hidden")))
88
89;
90
91# 21 "rtld.c" 2
92# 1 "../include/dlfcn.h" 1
93
94# 1 "../dlfcn/dlfcn.h" 1
95# 26 "../dlfcn/dlfcn.h"
96# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
97# 214 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 3 4
98typedef long unsigned int size_t;
99# 27 "../dlfcn/dlfcn.h" 2
100
101
102# 1 "../include/bits/dlfcn.h" 1
103# 1 "../bits/dlfcn.h" 1
104# 58 "../bits/dlfcn.h"
105
106
107
108extern void _dl_mcount_wrapper_check (void *__selfpc) __attribute__ ((__nothrow__));
109
110
111# 2 "../include/bits/dlfcn.h" 2
112
113extern void _dl_mcount_wrapper_check (void *__selfpc);
114
115# 30 "../dlfcn/dlfcn.h" 2
116# 46 "../dlfcn/dlfcn.h"
117typedef long int Lmid_t;
118
119
120
121
122
123
124
125
126
127
128
129extern void *dlopen (__const char *__file, int __mode) __attribute__ ((__nothrow__));
130
131
132
133extern int dlclose (void *__handle) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
134
135
136
137extern void *dlsym (void *__restrict __handle,
138 __const char *__restrict __name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
139
140
141
142extern void *dlmopen (Lmid_t __nsid, __const char *__file, int __mode) __attribute__ ((__nothrow__));
143
144
145
146extern void *dlvsym (void *__restrict __handle,
147 __const char *__restrict __name,
148 __const char *__restrict __version)
149 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
150
151
152
153
154
155extern char *dlerror (void) __attribute__ ((__nothrow__));
156
157
158
159
160
161typedef struct
162{
163 __const char *dli_fname;
164 void *dli_fbase;
165 __const char *dli_sname;
166 void *dli_saddr;
167} Dl_info;
168
169
170
171extern int dladdr (__const void *__address, Dl_info *__info)
172 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
173
174
175extern int dladdr1 (__const void *__address, Dl_info *__info,
176 void **__extra_info, int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
177
178
179
180
181enum
182 {
183
184 RTLD_DL_SYMENT = 1,
185
186
187 RTLD_DL_LINKMAP = 2
188 };
189
190
191
192
193
194
195
196extern int dlinfo (void *__restrict __handle,
197 int __request, void *__restrict __arg)
198 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
199
200
201enum
202 {
203
204 RTLD_DI_LMID = 1,
205
206
207
208 RTLD_DI_LINKMAP = 2,
209
210 RTLD_DI_CONFIGADDR = 3,
211
212
213
214
215
216
217 RTLD_DI_SERINFO = 4,
218 RTLD_DI_SERINFOSIZE = 5,
219
220
221
222 RTLD_DI_ORIGIN = 6,
223
224 RTLD_DI_PROFILENAME = 7,
225 RTLD_DI_PROFILEOUT = 8,
226
227
228
229
230 RTLD_DI_TLS_MODID = 9,
231
232
233
234
235
236 RTLD_DI_TLS_DATA = 10,
237
238 RTLD_DI_MAX = 10,
239 };
240
241
242
243
244typedef struct
245{
246 char *dls_name;
247 unsigned int dls_flags;
248} Dl_serpath;
249
250
251
252typedef struct
253{
254 size_t dls_size;
255 unsigned int dls_cnt;
256 Dl_serpath dls_serpath[1];
257} Dl_serinfo;
258
259
260
261
262# 3 "../include/dlfcn.h" 2
263# 1 "../include/link.h" 1
264# 33 "../include/link.h"
265# 1 "../elf/link.h" 1
266# 25 "../elf/link.h"
267# 1 "../include/elf.h" 1
268
269# 1 "../elf/elf.h" 1
270# 25 "../elf/elf.h"
271
272
273
274
275# 1 "../sysdeps/generic/stdint.h" 1
276# 27 "../sysdeps/generic/stdint.h"
277# 1 "../bits/wchar.h" 1
278# 28 "../sysdeps/generic/stdint.h" 2
279# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
280# 29 "../sysdeps/generic/stdint.h" 2
281# 37 "../sysdeps/generic/stdint.h"
282typedef signed char int8_t;
283typedef short int int16_t;
284typedef int int32_t;
285
286typedef long int int64_t;
287
288
289
290
291
292
293
294typedef unsigned char uint8_t;
295typedef unsigned short int uint16_t;
296
297typedef unsigned int uint32_t;
298
299
300
301typedef unsigned long int uint64_t;
302# 66 "../sysdeps/generic/stdint.h"
303typedef signed char int_least8_t;
304typedef short int int_least16_t;
305typedef int int_least32_t;
306
307typedef long int int_least64_t;
308
309
310
311
312
313
314typedef unsigned char uint_least8_t;
315typedef unsigned short int uint_least16_t;
316typedef unsigned int uint_least32_t;
317
318typedef unsigned long int uint_least64_t;
319# 91 "../sysdeps/generic/stdint.h"
320typedef signed char int_fast8_t;
321
322typedef long int int_fast16_t;
323typedef long int int_fast32_t;
324typedef long int int_fast64_t;
325# 104 "../sysdeps/generic/stdint.h"
326typedef unsigned char uint_fast8_t;
327
328typedef unsigned long int uint_fast16_t;
329typedef unsigned long int uint_fast32_t;
330typedef unsigned long int uint_fast64_t;
331# 120 "../sysdeps/generic/stdint.h"
332typedef long int intptr_t;
333
334
335typedef unsigned long int uintptr_t;
336# 135 "../sysdeps/generic/stdint.h"
337typedef long int intmax_t;
338typedef unsigned long int uintmax_t;
339# 30 "../elf/elf.h" 2
340
341
342typedef uint16_t Elf32_Half;
343typedef uint16_t Elf64_Half;
344
345
346typedef uint32_t Elf32_Word;
347typedef int32_t Elf32_Sword;
348typedef uint32_t Elf64_Word;
349typedef int32_t Elf64_Sword;
350
351
352typedef uint64_t Elf32_Xword;
353typedef int64_t Elf32_Sxword;
354typedef uint64_t Elf64_Xword;
355typedef int64_t Elf64_Sxword;
356
357
358typedef uint32_t Elf32_Addr;
359typedef uint64_t Elf64_Addr;
360
361
362typedef uint32_t Elf32_Off;
363typedef uint64_t Elf64_Off;
364
365
366typedef uint16_t Elf32_Section;
367typedef uint16_t Elf64_Section;
368
369
370typedef Elf32_Half Elf32_Versym;
371typedef Elf64_Half Elf64_Versym;
372
373
374
375
376
377
378typedef struct
379{
380 unsigned char e_ident[(16)];
381 Elf32_Half e_type;
382 Elf32_Half e_machine;
383 Elf32_Word e_version;
384 Elf32_Addr e_entry;
385 Elf32_Off e_phoff;
386 Elf32_Off e_shoff;
387 Elf32_Word e_flags;
388 Elf32_Half e_ehsize;
389 Elf32_Half e_phentsize;
390 Elf32_Half e_phnum;
391 Elf32_Half e_shentsize;
392 Elf32_Half e_shnum;
393 Elf32_Half e_shstrndx;
394} Elf32_Ehdr;
395
396typedef struct
397{
398 unsigned char e_ident[(16)];
399 Elf64_Half e_type;
400 Elf64_Half e_machine;
401 Elf64_Word e_version;
402 Elf64_Addr e_entry;
403 Elf64_Off e_phoff;
404 Elf64_Off e_shoff;
405 Elf64_Word e_flags;
406 Elf64_Half e_ehsize;
407 Elf64_Half e_phentsize;
408 Elf64_Half e_phnum;
409 Elf64_Half e_shentsize;
410 Elf64_Half e_shnum;
411 Elf64_Half e_shstrndx;
412} Elf64_Ehdr;
413# 267 "../elf/elf.h"
414typedef struct
415{
416 Elf32_Word sh_name;
417 Elf32_Word sh_type;
418 Elf32_Word sh_flags;
419 Elf32_Addr sh_addr;
420 Elf32_Off sh_offset;
421 Elf32_Word sh_size;
422 Elf32_Word sh_link;
423 Elf32_Word sh_info;
424 Elf32_Word sh_addralign;
425 Elf32_Word sh_entsize;
426} Elf32_Shdr;
427
428typedef struct
429{
430 Elf64_Word sh_name;
431 Elf64_Word sh_type;
432 Elf64_Xword sh_flags;
433 Elf64_Addr sh_addr;
434 Elf64_Off sh_offset;
435 Elf64_Xword sh_size;
436 Elf64_Word sh_link;
437 Elf64_Word sh_info;
438 Elf64_Xword sh_addralign;
439 Elf64_Xword sh_entsize;
440} Elf64_Shdr;
441# 374 "../elf/elf.h"
442typedef struct
443{
444 Elf32_Word st_name;
445 Elf32_Addr st_value;
446 Elf32_Word st_size;
447 unsigned char st_info;
448 unsigned char st_other;
449 Elf32_Section st_shndx;
450} Elf32_Sym;
451
452typedef struct
453{
454 Elf64_Word st_name;
455 unsigned char st_info;
456 unsigned char st_other;
457 Elf64_Section st_shndx;
458 Elf64_Addr st_value;
459 Elf64_Xword st_size;
460} Elf64_Sym;
461
462
463
464
465typedef struct
466{
467 Elf32_Half si_boundto;
468 Elf32_Half si_flags;
469} Elf32_Syminfo;
470
471typedef struct
472{
473 Elf64_Half si_boundto;
474 Elf64_Half si_flags;
475} Elf64_Syminfo;
476# 487 "../elf/elf.h"
477typedef struct
478{
479 Elf32_Addr r_offset;
480 Elf32_Word r_info;
481} Elf32_Rel;
482
483
484
485
486
487
488typedef struct
489{
490 Elf64_Addr r_offset;
491 Elf64_Xword r_info;
492} Elf64_Rel;
493
494
495
496typedef struct
497{
498 Elf32_Addr r_offset;
499 Elf32_Word r_info;
500 Elf32_Sword r_addend;
501} Elf32_Rela;
502
503typedef struct
504{
505 Elf64_Addr r_offset;
506 Elf64_Xword r_info;
507 Elf64_Sxword r_addend;
508} Elf64_Rela;
509# 532 "../elf/elf.h"
510typedef struct
511{
512 Elf32_Word p_type;
513 Elf32_Off p_offset;
514 Elf32_Addr p_vaddr;
515 Elf32_Addr p_paddr;
516 Elf32_Word p_filesz;
517 Elf32_Word p_memsz;
518 Elf32_Word p_flags;
519 Elf32_Word p_align;
520} Elf32_Phdr;
521
522typedef struct
523{
524 Elf64_Word p_type;
525 Elf64_Word p_flags;
526 Elf64_Off p_offset;
527 Elf64_Addr p_vaddr;
528 Elf64_Addr p_paddr;
529 Elf64_Xword p_filesz;
530 Elf64_Xword p_memsz;
531 Elf64_Xword p_align;
532} Elf64_Phdr;
533# 626 "../elf/elf.h"
534typedef struct
535{
536 Elf32_Sword d_tag;
537 union
538 {
539 Elf32_Word d_val;
540 Elf32_Addr d_ptr;
541 } d_un;
542} Elf32_Dyn;
543
544typedef struct
545{
546 Elf64_Sxword d_tag;
547 union
548 {
549 Elf64_Xword d_val;
550 Elf64_Addr d_ptr;
551 } d_un;
552} Elf64_Dyn;
553# 798 "../elf/elf.h"
554typedef struct
555{
556 Elf32_Half vd_version;
557 Elf32_Half vd_flags;
558 Elf32_Half vd_ndx;
559 Elf32_Half vd_cnt;
560 Elf32_Word vd_hash;
561 Elf32_Word vd_aux;
562 Elf32_Word vd_next;
563
564} Elf32_Verdef;
565
566typedef struct
567{
568 Elf64_Half vd_version;
569 Elf64_Half vd_flags;
570 Elf64_Half vd_ndx;
571 Elf64_Half vd_cnt;
572 Elf64_Word vd_hash;
573 Elf64_Word vd_aux;
574 Elf64_Word vd_next;
575
576} Elf64_Verdef;
577# 840 "../elf/elf.h"
578typedef struct
579{
580 Elf32_Word vda_name;
581 Elf32_Word vda_next;
582
583} Elf32_Verdaux;
584
585typedef struct
586{
587 Elf64_Word vda_name;
588 Elf64_Word vda_next;
589
590} Elf64_Verdaux;
591
592
593
594
595typedef struct
596{
597 Elf32_Half vn_version;
598 Elf32_Half vn_cnt;
599 Elf32_Word vn_file;
600
601 Elf32_Word vn_aux;
602 Elf32_Word vn_next;
603
604} Elf32_Verneed;
605
606typedef struct
607{
608 Elf64_Half vn_version;
609 Elf64_Half vn_cnt;
610 Elf64_Word vn_file;
611
612 Elf64_Word vn_aux;
613 Elf64_Word vn_next;
614
615} Elf64_Verneed;
616# 887 "../elf/elf.h"
617typedef struct
618{
619 Elf32_Word vna_hash;
620 Elf32_Half vna_flags;
621 Elf32_Half vna_other;
622 Elf32_Word vna_name;
623 Elf32_Word vna_next;
624
625} Elf32_Vernaux;
626
627typedef struct
628{
629 Elf64_Word vna_hash;
630 Elf64_Half vna_flags;
631 Elf64_Half vna_other;
632 Elf64_Word vna_name;
633 Elf64_Word vna_next;
634
635} Elf64_Vernaux;
636# 921 "../elf/elf.h"
637typedef struct
638{
639 uint32_t a_type;
640 union
641 {
642 uint32_t a_val;
643
644
645
646 } a_un;
647} Elf32_auxv_t;
648
649typedef struct
650{
651 uint64_t a_type;
652 union
653 {
654 uint64_t a_val;
655
656
657
658 } a_un;
659} Elf64_auxv_t;
660# 999 "../elf/elf.h"
661typedef struct
662{
663 Elf32_Word n_namesz;
664 Elf32_Word n_descsz;
665 Elf32_Word n_type;
666} Elf32_Nhdr;
667
668typedef struct
669{
670 Elf64_Word n_namesz;
671 Elf64_Word n_descsz;
672 Elf64_Word n_type;
673} Elf64_Nhdr;
674# 1047 "../elf/elf.h"
675typedef struct
676{
677 Elf32_Xword m_value;
678 Elf32_Word m_info;
679 Elf32_Word m_poffset;
680 Elf32_Half m_repeat;
681 Elf32_Half m_stride;
682} Elf32_Move;
683
684typedef struct
685{
686 Elf64_Xword m_value;
687 Elf64_Xword m_info;
688 Elf64_Xword m_poffset;
689 Elf64_Half m_repeat;
690 Elf64_Half m_stride;
691} Elf64_Move;
692# 1393 "../elf/elf.h"
693typedef union
694{
695 struct
696 {
697 Elf32_Word gt_current_g_value;
698 Elf32_Word gt_unused;
699 } gt_header;
700 struct
701 {
702 Elf32_Word gt_g_value;
703 Elf32_Word gt_bytes;
704 } gt_entry;
705} Elf32_gptab;
706
707
708
709typedef struct
710{
711 Elf32_Word ri_gprmask;
712 Elf32_Word ri_cprmask[4];
713 Elf32_Sword ri_gp_value;
714} Elf32_RegInfo;
715
716
717
718typedef struct
719{
720 unsigned char kind;
721
722 unsigned char size;
723 Elf32_Section section;
724
725 Elf32_Word info;
726} Elf_Options;
727# 1469 "../elf/elf.h"
728typedef struct
729{
730 Elf32_Word hwp_flags1;
731 Elf32_Word hwp_flags2;
732} Elf_Options_Hw;
733# 1621 "../elf/elf.h"
734typedef struct
735{
736 Elf32_Word l_name;
737 Elf32_Word l_time_stamp;
738 Elf32_Word l_checksum;
739 Elf32_Word l_version;
740 Elf32_Word l_flags;
741} Elf32_Lib;
742
743typedef struct
744{
745 Elf64_Word l_name;
746 Elf64_Word l_time_stamp;
747 Elf64_Word l_checksum;
748 Elf64_Word l_version;
749 Elf64_Word l_flags;
750} Elf64_Lib;
751# 1652 "../elf/elf.h"
752typedef Elf32_Addr Elf32_Conflict;
753# 2623 "../elf/elf.h"
754
755# 3 "../include/elf.h" 2
756
757
758# 1 "../sysdeps/generic/dl-dtprocnum.h" 1
759# 6 "../include/elf.h" 2
760# 26 "../elf/link.h" 2
761# 1 "../include/dlfcn.h" 1
762# 27 "../elf/link.h" 2
763# 1 "../include/sys/types.h" 1
764# 1 "../posix/sys/types.h" 1
765# 29 "../posix/sys/types.h"
766
767
768# 1 "../bits/types.h" 1
769# 28 "../bits/types.h"
770# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
771# 29 "../bits/types.h" 2
772
773
774# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
775# 32 "../bits/types.h" 2
776
777
778typedef unsigned char __u_char;
779typedef unsigned short int __u_short;
780typedef unsigned int __u_int;
781typedef unsigned long int __u_long;
782
783
784typedef signed char __int8_t;
785typedef unsigned char __uint8_t;
786typedef signed short int __int16_t;
787typedef unsigned short int __uint16_t;
788typedef signed int __int32_t;
789typedef unsigned int __uint32_t;
790
791typedef signed long int __int64_t;
792typedef unsigned long int __uint64_t;
793
794
795
796
797
798
799
800typedef long int __quad_t;
801typedef unsigned long int __u_quad_t;
802# 134 "../bits/types.h"
803# 1 "../sysdeps/unix/sysv/linux/s390/bits/typesizes.h" 1
804# 135 "../bits/types.h" 2
805
806
807typedef unsigned long int __dev_t;
808typedef unsigned int __uid_t;
809typedef unsigned int __gid_t;
810typedef unsigned long int __ino_t;
811typedef unsigned long int __ino64_t;
812typedef unsigned int __mode_t;
813typedef unsigned long int __nlink_t;
814typedef long int __off_t;
815typedef long int __off64_t;
816typedef int __pid_t;
817typedef struct { int __val[2]; } __fsid_t;
818typedef long int __clock_t;
819typedef unsigned long int __rlim_t;
820typedef unsigned long int __rlim64_t;
821typedef unsigned int __id_t;
822typedef long int __time_t;
823typedef unsigned int __useconds_t;
824typedef long int __suseconds_t;
825
826typedef int __daddr_t;
827typedef long int __swblk_t;
828typedef int __key_t;
829
830
831typedef int __clockid_t;
832
833
834typedef void * __timer_t;
835
836
837typedef long int __blksize_t;
838
839
840
841
842typedef long int __blkcnt_t;
843typedef long int __blkcnt64_t;
844
845
846typedef unsigned long int __fsblkcnt_t;
847typedef unsigned long int __fsblkcnt64_t;
848
849
850typedef unsigned long int __fsfilcnt_t;
851typedef unsigned long int __fsfilcnt64_t;
852
853typedef long int __ssize_t;
854
855
856
857typedef __off64_t __loff_t;
858typedef __quad_t *__qaddr_t;
859typedef char *__caddr_t;
860
861
862typedef long int __intptr_t;
863
864
865typedef unsigned int __socklen_t;
866# 32 "../posix/sys/types.h" 2
867
868
869
870typedef __u_char u_char;
871typedef __u_short u_short;
872typedef __u_int u_int;
873typedef __u_long u_long;
874typedef __quad_t quad_t;
875typedef __u_quad_t u_quad_t;
876typedef __fsid_t fsid_t;
877
878
879
880
881typedef __loff_t loff_t;
882
883
884
885typedef __ino_t ino_t;
886
887
888
889
890
891
892typedef __ino64_t ino64_t;
893
894
895
896
897typedef __dev_t dev_t;
898
899
900
901
902typedef __gid_t gid_t;
903
904
905
906
907typedef __mode_t mode_t;
908
909
910
911
912typedef __nlink_t nlink_t;
913
914
915
916
917typedef __uid_t uid_t;
918
919
920
921
922
923typedef __off_t off_t;
924
925
926
927
928
929
930typedef __off64_t off64_t;
931
932
933
934
935typedef __pid_t pid_t;
936
937
938
939
940typedef __id_t id_t;
941
942
943
944
945typedef __ssize_t ssize_t;
946
947
948
949
950
951typedef __daddr_t daddr_t;
952typedef __caddr_t caddr_t;
953
954
955
956
957
958typedef __key_t key_t;
959# 133 "../posix/sys/types.h"
960# 1 "../include/time.h" 1
961
962
963# 1 "../time/time.h" 1
964# 59 "../time/time.h"
965
966
967typedef __clock_t clock_t;
968
969
970
971# 75 "../time/time.h"
972
973
974typedef __time_t time_t;
975
976
977
978# 93 "../time/time.h"
979typedef __clockid_t clockid_t;
980# 105 "../time/time.h"
981typedef __timer_t timer_t;
982# 4 "../include/time.h" 2
983# 134 "../posix/sys/types.h" 2
984
985
986
987typedef __useconds_t useconds_t;
988
989
990
991typedef __suseconds_t suseconds_t;
992
993
994
995
996
997# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
998# 148 "../posix/sys/types.h" 2
999
1000
1001
1002typedef unsigned long int ulong;
1003typedef unsigned short int ushort;
1004typedef unsigned int uint;
1005# 201 "../posix/sys/types.h"
1006typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
1007typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
1008typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
1009typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
1010
1011typedef int register_t __attribute__ ((__mode__ (__word__)));
1012# 217 "../posix/sys/types.h"
1013# 1 "../include/endian.h" 1
1014# 1 "../string/endian.h" 1
1015# 37 "../string/endian.h"
1016# 1 "../sysdeps/s390/bits/endian.h" 1
1017# 38 "../string/endian.h" 2
1018# 2 "../include/endian.h" 2
1019# 218 "../posix/sys/types.h" 2
1020
1021
1022# 1 "../include/sys/select.h" 1
1023
1024# 1 "../misc/sys/select.h" 1
1025# 31 "../misc/sys/select.h"
1026# 1 "../bits/select.h" 1
1027# 32 "../misc/sys/select.h" 2
1028
1029
1030# 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1
1031# 23 "../sysdeps/unix/sysv/linux/bits/sigset.h"
1032typedef int __sig_atomic_t;
1033
1034
1035
1036
1037typedef struct
1038 {
1039 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
1040 } __sigset_t;
1041# 35 "../misc/sys/select.h" 2
1042
1043
1044
1045typedef __sigset_t sigset_t;
1046
1047
1048
1049
1050
1051# 1 "../include/time.h" 1
1052
1053
1054# 1 "../time/time.h" 1
1055# 121 "../time/time.h"
1056struct timespec
1057 {
1058 __time_t tv_sec;
1059 long int tv_nsec;
1060 };
1061# 4 "../include/time.h" 2
1062# 45 "../misc/sys/select.h" 2
1063
1064# 1 "../bits/time.h" 1
1065# 69 "../bits/time.h"
1066struct timeval
1067 {
1068 __time_t tv_sec;
1069 __suseconds_t tv_usec;
1070 };
1071# 47 "../misc/sys/select.h" 2
1072# 55 "../misc/sys/select.h"
1073typedef long int __fd_mask;
1074# 67 "../misc/sys/select.h"
1075typedef struct
1076 {
1077
1078
1079
1080 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
1081
1082
1083
1084
1085
1086 } fd_set;
1087
1088
1089
1090
1091
1092
1093typedef __fd_mask fd_mask;
1094# 99 "../misc/sys/select.h"
1095
1096# 109 "../misc/sys/select.h"
1097extern int select (int __nfds, fd_set *__restrict __readfds,
1098 fd_set *__restrict __writefds,
1099 fd_set *__restrict __exceptfds,
1100 struct timeval *__restrict __timeout);
1101# 121 "../misc/sys/select.h"
1102extern int pselect (int __nfds, fd_set *__restrict __readfds,
1103 fd_set *__restrict __writefds,
1104 fd_set *__restrict __exceptfds,
1105 const struct timespec *__restrict __timeout,
1106 const __sigset_t *__restrict __sigmask);
1107
1108
1109
1110# 3 "../include/sys/select.h" 2
1111
1112
1113extern int __pselect (int __nfds, fd_set *__readfds,
1114 fd_set *__writefds, fd_set *__exceptfds,
1115 const struct timespec *__timeout,
1116 const __sigset_t *__sigmask);
1117
1118extern int __select (int __nfds, fd_set *__restrict __readfds,
1119 fd_set *__restrict __writefds,
1120 fd_set *__restrict __exceptfds,
1121 struct timeval *__restrict __timeout);
1122
1123# 221 "../posix/sys/types.h" 2
1124
1125
1126# 1 "../sysdeps/unix/sysv/linux/sys/sysmacros.h" 1
1127# 29 "../sysdeps/unix/sysv/linux/sys/sysmacros.h"
1128__extension__
1129extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
1130 __attribute__ ((__nothrow__));
1131__extension__
1132extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
1133 __attribute__ ((__nothrow__));
1134__extension__
1135extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
1136 unsigned int __minor)
1137 __attribute__ ((__nothrow__));
1138
1139
1140__extension__ extern __inline unsigned int
1141__attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
1142{
1143 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
1144}
1145
1146__extension__ extern __inline unsigned int
1147__attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
1148{
1149 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
1150}
1151
1152__extension__ extern __inline unsigned long long int
1153__attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
1154{
1155 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
1156 | (((unsigned long long int) (__minor & ~0xff)) << 12)
1157 | (((unsigned long long int) (__major & ~0xfff)) << 32));
1158}
1159# 224 "../posix/sys/types.h" 2
1160
1161
1162
1163
1164typedef __blksize_t blksize_t;
1165
1166
1167
1168
1169
1170
1171typedef __blkcnt_t blkcnt_t;
1172
1173
1174
1175typedef __fsblkcnt_t fsblkcnt_t;
1176
1177
1178
1179typedef __fsfilcnt_t fsfilcnt_t;
1180# 262 "../posix/sys/types.h"
1181typedef __blkcnt64_t blkcnt64_t;
1182typedef __fsblkcnt64_t fsblkcnt64_t;
1183typedef __fsfilcnt64_t fsfilcnt64_t;
1184
1185
1186
1187
1188
1189# 1 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" 1
1190# 23 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h"
1191# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
1192# 24 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" 2
1193# 50 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h"
1194typedef unsigned long int pthread_t;
1195
1196
1197typedef union
1198{
1199 char __size[56];
1200 long int __align;
1201} pthread_attr_t;
1202
1203
1204
1205typedef struct __pthread_internal_list
1206{
1207 struct __pthread_internal_list *__prev;
1208 struct __pthread_internal_list *__next;
1209} __pthread_list_t;
1210# 76 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h"
1211typedef union
1212{
1213 struct __pthread_mutex_s
1214 {
1215 int __lock;
1216 unsigned int __count;
1217 int __owner;
1218
1219 unsigned int __nusers;
1220
1221
1222
1223 int __kind;
1224
1225 int __spins;
1226 __pthread_list_t __list;
1227# 101 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h"
1228 } __data;
1229 char __size[40];
1230 long int __align;
1231} pthread_mutex_t;
1232
1233typedef union
1234{
1235 char __size[4];
1236 int __align;
1237} pthread_mutexattr_t;
1238
1239
1240
1241
1242typedef union
1243{
1244 struct
1245 {
1246 int __lock;
1247 unsigned int __futex;
1248 __extension__ unsigned long long int __total_seq;
1249 __extension__ unsigned long long int __wakeup_seq;
1250 __extension__ unsigned long long int __woken_seq;
1251 void *__mutex;
1252 unsigned int __nwaiters;
1253 unsigned int __broadcast_seq;
1254 } __data;
1255 char __size[48];
1256 __extension__ long long int __align;
1257} pthread_cond_t;
1258
1259typedef union
1260{
1261 char __size[4];
1262 int __align;
1263} pthread_condattr_t;
1264
1265
1266
1267typedef unsigned int pthread_key_t;
1268
1269
1270
1271typedef int pthread_once_t;
1272
1273
1274
1275
1276
1277typedef union
1278{
1279
1280 struct
1281 {
1282 int __lock;
1283 unsigned int __nr_readers;
1284 unsigned int __readers_wakeup;
1285 unsigned int __writer_wakeup;
1286 unsigned int __nr_readers_queued;
1287 unsigned int __nr_writers_queued;
1288 int __writer;
1289 int __pad1;
1290 unsigned long int __pad2;
1291 unsigned long int __pad3;
1292
1293
1294 unsigned int __flags;
1295 } __data;
1296# 184 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h"
1297 char __size[56];
1298 long int __align;
1299} pthread_rwlock_t;
1300
1301typedef union
1302{
1303 char __size[8];
1304 long int __align;
1305} pthread_rwlockattr_t;
1306
1307
1308
1309
1310
1311typedef volatile int pthread_spinlock_t;
1312
1313
1314
1315
1316typedef union
1317{
1318 char __size[32];
1319 long int __align;
1320} pthread_barrier_t;
1321
1322typedef union
1323{
1324 char __size[4];
1325 int __align;
1326} pthread_barrierattr_t;
1327# 271 "../posix/sys/types.h" 2
1328
1329
1330
1331# 1 "../include/sys/types.h" 2
1332# 28 "../elf/link.h" 2
1333
1334
1335
1336
1337
1338
1339
1340# 1 "../sysdeps/unix/sysv/linux/s390/bits/elfclass.h" 1
1341# 28 "../sysdeps/unix/sysv/linux/s390/bits/elfclass.h"
1342# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
1343# 29 "../sysdeps/unix/sysv/linux/s390/bits/elfclass.h" 2
1344
1345
1346
1347
1348
1349
1350typedef uint64_t Elf_Symndx;
1351# 36 "../elf/link.h" 2
1352# 1 "../sysdeps/s390/bits/link.h" 1
1353# 70 "../sysdeps/s390/bits/link.h"
1354typedef struct La_s390_64_regs
1355{
1356 uint64_t lr_r2;
1357 uint64_t lr_r3;
1358 uint64_t lr_r4;
1359 uint64_t lr_r5;
1360 uint64_t lr_r6;
1361 double lr_fp0;
1362 double lr_fp2;
1363 double lr_fp4;
1364 double lr_fp6;
1365} La_s390_64_regs;
1366
1367
1368typedef struct La_s390_64_retval
1369{
1370 uint64_t lrv_r2;
1371 double lrv_fp0;
1372} La_s390_64_retval;
1373
1374
1375
1376
1377extern Elf64_Addr la_s390_64_gnu_pltenter (Elf64_Sym *__sym,
1378 unsigned int __ndx,
1379 uintptr_t *__refcook,
1380 uintptr_t *__defcook,
1381 La_s390_64_regs *__regs,
1382 unsigned int *__flags,
1383 const char *__symname,
1384 long int *__framesizep);
1385extern unsigned int la_s390_64_gnu_pltexit (Elf64_Sym *__sym,
1386 unsigned int __ndx,
1387 uintptr_t *__refcook,
1388 uintptr_t *__defcook,
1389 const La_s390_64_regs *__inregs,
1390 La_s390_64_retval *__outregs,
1391 const char *symname);
1392
1393
1394# 37 "../elf/link.h" 2
1395
1396
1397
1398
1399
1400
1401struct r_debug
1402 {
1403 int r_version;
1404
1405 struct link_map_public *r_map;
1406
1407
1408
1409
1410
1411
1412 Elf64_Addr r_brk;
1413 enum
1414 {
1415
1416
1417 RT_CONSISTENT,
1418 RT_ADD,
1419 RT_DELETE
1420 } r_state;
1421
1422 Elf64_Addr r_ldbase;
1423 };
1424
1425
1426extern struct r_debug _r_debug;
1427# 77 "../elf/link.h"
1428extern Elf64_Dyn _DYNAMIC[];
1429
1430
1431
1432
1433
1434
1435
1436struct link_map_public
1437 {
1438
1439
1440
1441 Elf64_Addr l_addr;
1442 char *l_name;
1443 Elf64_Dyn *l_ld;
1444 struct link_map_public *l_next, *l_prev;
1445 };
1446
1447
1448
1449
1450
1451
1452
1453enum
1454 {
1455 LA_ACT_CONSISTENT,
1456 LA_ACT_ADD,
1457 LA_ACT_DELETE
1458 };
1459
1460
1461enum
1462 {
1463 LA_SER_ORIG = 0x01,
1464 LA_SER_LIBPATH = 0x02,
1465 LA_SER_RUNPATH = 0x04,
1466 LA_SER_CONFIG = 0x08,
1467 LA_SER_DEFAULT = 0x40,
1468 LA_SER_SECURE = 0x80
1469 };
1470
1471
1472enum
1473 {
1474 LA_FLG_BINDTO = 0x01,
1475 LA_FLG_BINDFROM = 0x02
1476 };
1477
1478
1479enum
1480 {
1481 LA_SYMB_NOPLTENTER = 0x01,
1482 LA_SYMB_NOPLTEXIT = 0x02,
1483 LA_SYMB_STRUCTCALL = 0x04,
1484 LA_SYMB_DLSYM = 0x08,
1485 LA_SYMB_ALTVALUE = 0x10
1486
1487 };
1488
1489struct dl_phdr_info
1490 {
1491 Elf64_Addr dlpi_addr;
1492 const char *dlpi_name;
1493 const Elf64_Phdr *dlpi_phdr;
1494 Elf64_Half dlpi_phnum;
1495
1496
1497
1498
1499
1500
1501
1502 unsigned long long int dlpi_adds;
1503
1504 unsigned long long int dlpi_subs;
1505
1506
1507
1508 size_t dlpi_tls_modid;
1509
1510
1511
1512
1513 void *dlpi_tls_data;
1514 };
1515
1516
1517
1518extern int dl_iterate_phdr (int (*__callback) (struct dl_phdr_info *,
1519 size_t, void *),
1520 void *__data);
1521
1522
1523
1524
1525
1526extern unsigned int la_version (unsigned int __version);
1527extern void la_activity (uintptr_t *__cookie, unsigned int __flag);
1528extern char *la_objsearch (const char *__name, uintptr_t *__cookie,
1529 unsigned int __flag);
1530extern unsigned int la_objopen_wrongproto (struct link_map_public *__map, Lmid_t __lmid,
1531 uintptr_t *__cookie);
1532extern void la_preinit (uintptr_t *__cookie);
1533extern uintptr_t la_symbind32 (Elf32_Sym *__sym, unsigned int __ndx,
1534 uintptr_t *__refcook, uintptr_t *__defcook,
1535 unsigned int *__flags, const char *__symname);
1536extern uintptr_t la_symbind64 (Elf64_Sym *__sym, unsigned int __ndx,
1537 uintptr_t *__refcook, uintptr_t *__defcook,
1538 unsigned int *__flags, const char *__symname);
1539extern unsigned int la_objclose (uintptr_t *__cookie);
1540
1541
1542# 34 "../include/link.h" 2
1543
1544
1545
1546struct link_map;
1547extern unsigned int la_objopen (struct link_map *__map, Lmid_t __lmid,
1548 uintptr_t *__cookie);
1549
1550
1551# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
1552# 152 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 3 4
1553typedef long int ptrdiff_t;
1554# 326 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 3 4
1555typedef int wchar_t;
1556# 43 "../include/link.h" 2
1557# 1 "../sysdeps/s390/bits/linkmap.h" 1
1558
1559struct link_map_machine
1560 {
1561 Elf64_Addr plt;
1562 Elf64_Addr gotplt;
1563 };
1564# 44 "../include/link.h" 2
1565# 1 "../sysdeps/generic/dl-lookupcfg.h" 1
1566# 45 "../include/link.h" 2
1567# 1 "../include/tls.h" 1
1568
1569
1570
1571
1572
1573# 1 "../nptl/sysdeps/s390/tls.h" 1
1574# 23 "../nptl/sysdeps/s390/tls.h"
1575# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
1576# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
1577# 1 "../sysdeps/generic/dl-sysdep.h" 1
1578# 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
1579# 24 "../nptl/sysdeps/s390/tls.h" 2
1580
1581# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stdbool.h" 1 3 4
1582# 26 "../nptl/sysdeps/s390/tls.h" 2
1583# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
1584# 27 "../nptl/sysdeps/s390/tls.h" 2
1585
1586# 1 "../include/stdlib.h" 1
1587
1588
1589
1590
1591
1592
1593# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
1594# 8 "../include/stdlib.h" 2
1595# 1 "../stdlib/stdlib.h" 1
1596# 33 "../stdlib/stdlib.h"
1597# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
1598# 34 "../stdlib/stdlib.h" 2
1599
1600
1601
1602
1603
1604
1605
1606
1607# 1 "../sysdeps/unix/sysv/linux/bits/waitflags.h" 1
1608# 43 "../stdlib/stdlib.h" 2
1609# 1 "../bits/waitstatus.h" 1
1610# 65 "../bits/waitstatus.h"
1611# 1 "../include/endian.h" 1
1612# 66 "../bits/waitstatus.h" 2
1613
1614union wait
1615 {
1616 int w_status;
1617 struct
1618 {
1619
1620
1621
1622
1623
1624
1625
1626 unsigned int:16;
1627 unsigned int __w_retcode:8;
1628 unsigned int __w_coredump:1;
1629 unsigned int __w_termsig:7;
1630
1631 } __wait_terminated;
1632 struct
1633 {
1634
1635
1636
1637
1638
1639
1640 unsigned int:16;
1641 unsigned int __w_stopsig:8;
1642 unsigned int __w_stopval:8;
1643
1644 } __wait_stopped;
1645 };
1646# 44 "../stdlib/stdlib.h" 2
1647# 68 "../stdlib/stdlib.h"
1648typedef union
1649 {
1650 union wait *__uptr;
1651 int *__iptr;
1652 } __WAIT_STATUS __attribute__ ((__transparent_union__));
1653# 96 "../stdlib/stdlib.h"
1654
1655
1656typedef struct
1657 {
1658 int quot;
1659 int rem;
1660 } div_t;
1661
1662
1663
1664typedef struct
1665 {
1666 long int quot;
1667 long int rem;
1668 } ldiv_t;
1669
1670
1671
1672
1673
1674
1675
1676__extension__ typedef struct
1677 {
1678 long long int quot;
1679 long long int rem;
1680 } lldiv_t;
1681
1682
1683# 140 "../stdlib/stdlib.h"
1684extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;
1685
1686
1687
1688
1689extern double atof (__const char *__nptr)
1690 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1691
1692extern int atoi (__const char *__nptr)
1693 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1694
1695extern long int atol (__const char *__nptr)
1696 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1697
1698
1699
1700
1701
1702__extension__ extern long long int atoll (__const char *__nptr)
1703 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1704
1705
1706
1707
1708
1709extern double strtod (__const char *__restrict __nptr,
1710 char **__restrict __endptr)
1711 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1712
1713
1714
1715
1716
1717extern float strtof (__const char *__restrict __nptr,
1718 char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1719
1720extern long double strtold (__const char *__restrict __nptr,
1721 char **__restrict __endptr)
1722 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1723
1724
1725
1726
1727
1728extern long int strtol (__const char *__restrict __nptr,
1729 char **__restrict __endptr, int __base)
1730 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1731
1732extern unsigned long int strtoul (__const char *__restrict __nptr,
1733 char **__restrict __endptr, int __base)
1734 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1735
1736
1737
1738
1739__extension__
1740extern long long int strtoq (__const char *__restrict __nptr,
1741 char **__restrict __endptr, int __base)
1742 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1743
1744__extension__
1745extern unsigned long long int strtouq (__const char *__restrict __nptr,
1746 char **__restrict __endptr, int __base)
1747 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1748
1749
1750
1751
1752
1753__extension__
1754extern long long int strtoll (__const char *__restrict __nptr,
1755 char **__restrict __endptr, int __base)
1756 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1757
1758__extension__
1759extern unsigned long long int strtoull (__const char *__restrict __nptr,
1760 char **__restrict __endptr, int __base)
1761 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1762
1763# 236 "../stdlib/stdlib.h"
1764# 1 "../include/xlocale.h" 1
1765# 1 "../locale/xlocale.h" 1
1766# 28 "../locale/xlocale.h"
1767typedef struct __locale_struct
1768{
1769
1770 struct locale_data *__locales[13];
1771
1772
1773 const unsigned short int *__ctype_b;
1774 const int *__ctype_tolower;
1775 const int *__ctype_toupper;
1776
1777
1778 const char *__names[13];
1779} *__locale_t;
1780# 1 "../include/xlocale.h" 2
1781# 237 "../stdlib/stdlib.h" 2
1782
1783
1784
1785extern long int strtol_l (__const char *__restrict __nptr,
1786 char **__restrict __endptr, int __base,
1787 __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
1788
1789extern unsigned long int strtoul_l (__const char *__restrict __nptr,
1790 char **__restrict __endptr,
1791 int __base, __locale_t __loc)
1792 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
1793
1794__extension__
1795extern long long int strtoll_l (__const char *__restrict __nptr,
1796 char **__restrict __endptr, int __base,
1797 __locale_t __loc)
1798 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
1799
1800__extension__
1801extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
1802 char **__restrict __endptr,
1803 int __base, __locale_t __loc)
1804 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
1805
1806extern double strtod_l (__const char *__restrict __nptr,
1807 char **__restrict __endptr, __locale_t __loc)
1808 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
1809
1810extern float strtof_l (__const char *__restrict __nptr,
1811 char **__restrict __endptr, __locale_t __loc)
1812 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
1813
1814extern long double strtold_l (__const char *__restrict __nptr,
1815 char **__restrict __endptr,
1816 __locale_t __loc)
1817 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
1818
1819
1820
1821
1822
1823
1824extern double __strtod_internal (__const char *__restrict __nptr,
1825 char **__restrict __endptr, int __group)
1826 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1827extern float __strtof_internal (__const char *__restrict __nptr,
1828 char **__restrict __endptr, int __group)
1829 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1830extern long double __strtold_internal (__const char *__restrict __nptr,
1831 char **__restrict __endptr,
1832 int __group)
1833 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1834
1835extern long int __strtol_internal (__const char *__restrict __nptr,
1836 char **__restrict __endptr,
1837 int __base, int __group)
1838 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1839
1840
1841
1842extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
1843 char **__restrict __endptr,
1844 int __base, int __group)
1845 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1846
1847
1848
1849
1850__extension__
1851extern long long int __strtoll_internal (__const char *__restrict __nptr,
1852 char **__restrict __endptr,
1853 int __base, int __group)
1854 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1855
1856
1857
1858__extension__
1859extern unsigned long long int __strtoull_internal (__const char *
1860 __restrict __nptr,
1861 char **__restrict __endptr,
1862 int __base, int __group)
1863 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1864
1865
1866
1867
1868
1869
1870
1871
1872extern __inline double
1873__attribute__ ((__nothrow__)) strtod (__const char *__restrict __nptr, char **__restrict __endptr)
1874{
1875 return __strtod_internal (__nptr, __endptr, 0);
1876}
1877extern __inline long int
1878__attribute__ ((__nothrow__)) strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
1879
1880{
1881 return __strtol_internal (__nptr, __endptr, __base, 0);
1882}
1883extern __inline unsigned long int
1884__attribute__ ((__nothrow__)) strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
1885
1886{
1887 return __strtoul_internal (__nptr, __endptr, __base, 0);
1888}
1889
1890
1891
1892
1893extern __inline float
1894__attribute__ ((__nothrow__)) strtof (__const char *__restrict __nptr, char **__restrict __endptr)
1895{
1896 return __strtof_internal (__nptr, __endptr, 0);
1897}
1898
1899extern __inline long double
1900__attribute__ ((__nothrow__)) strtold (__const char *__restrict __nptr, char **__restrict __endptr)
1901{
1902 return __strtold_internal (__nptr, __endptr, 0);
1903}
1904
1905
1906
1907
1908
1909__extension__ extern __inline long long int
1910__attribute__ ((__nothrow__)) strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
1911
1912{
1913 return __strtoll_internal (__nptr, __endptr, __base, 0);
1914}
1915__extension__ extern __inline unsigned long long int
1916__attribute__ ((__nothrow__)) strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
1917
1918{
1919 return __strtoull_internal (__nptr, __endptr, __base, 0);
1920}
1921
1922
1923
1924
1925__extension__ extern __inline long long int
1926__attribute__ ((__nothrow__)) strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
1927
1928{
1929 return __strtoll_internal (__nptr, __endptr, __base, 0);
1930}
1931__extension__ extern __inline unsigned long long int
1932__attribute__ ((__nothrow__)) strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base)
1933
1934{
1935 return __strtoull_internal (__nptr, __endptr, __base, 0);
1936}
1937
1938
1939
1940
1941extern __inline double
1942__attribute__ ((__nothrow__)) atof (__const char *__nptr)
1943{
1944 return strtod (__nptr, (char **) ((void *)0));
1945}
1946extern __inline int
1947__attribute__ ((__nothrow__)) atoi (__const char *__nptr)
1948{
1949 return (int) strtol (__nptr, (char **) ((void *)0), 10);
1950}
1951extern __inline long int
1952__attribute__ ((__nothrow__)) atol (__const char *__nptr)
1953{
1954 return strtol (__nptr, (char **) ((void *)0), 10);
1955}
1956
1957
1958
1959
1960__extension__ extern __inline long long int
1961__attribute__ ((__nothrow__)) atoll (__const char *__nptr)
1962{
1963 return strtoll (__nptr, (char **) ((void *)0), 10);
1964}
1965
1966# 429 "../stdlib/stdlib.h"
1967extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;
1968
1969
1970extern long int a64l (__const char *__s)
1971 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1972
1973
1974
1975
1976# 1 "../include/sys/types.h" 1
1977# 439 "../stdlib/stdlib.h" 2
1978
1979
1980
1981
1982
1983
1984extern long int random (void) __attribute__ ((__nothrow__));
1985
1986
1987extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
1988
1989
1990
1991
1992
1993extern char *initstate (unsigned int __seed, char *__statebuf,
1994 size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1995
1996
1997
1998extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1999
2000
2001
2002
2003
2004
2005
2006struct random_data
2007 {
2008 int32_t *fptr;
2009 int32_t *rptr;
2010 int32_t *state;
2011 int rand_type;
2012 int rand_deg;
2013 int rand_sep;
2014 int32_t *end_ptr;
2015 };
2016
2017extern int random_r (struct random_data *__restrict __buf,
2018 int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2019
2020extern int srandom_r (unsigned int __seed, struct random_data *__buf)
2021 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2022
2023extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
2024 size_t __statelen,
2025 struct random_data *__restrict __buf)
2026 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
2027
2028extern int setstate_r (char *__restrict __statebuf,
2029 struct random_data *__restrict __buf)
2030 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2031
2032
2033
2034
2035
2036
2037extern int rand (void) __attribute__ ((__nothrow__));
2038
2039extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
2040
2041
2042
2043
2044extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
2045
2046
2047
2048
2049
2050
2051
2052extern double drand48 (void) __attribute__ ((__nothrow__));
2053extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2054
2055
2056extern long int lrand48 (void) __attribute__ ((__nothrow__));
2057extern long int nrand48 (unsigned short int __xsubi[3])
2058 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2059
2060
2061extern long int mrand48 (void) __attribute__ ((__nothrow__));
2062extern long int jrand48 (unsigned short int __xsubi[3])
2063 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2064
2065
2066extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
2067extern unsigned short int *seed48 (unsigned short int __seed16v[3])
2068 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2069extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2070
2071
2072
2073
2074
2075struct drand48_data
2076 {
2077 unsigned short int __x[3];
2078 unsigned short int __old_x[3];
2079 unsigned short int __c;
2080 unsigned short int __init;
2081 unsigned long long int __a;
2082 };
2083
2084
2085extern int drand48_r (struct drand48_data *__restrict __buffer,
2086 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2087extern int erand48_r (unsigned short int __xsubi[3],
2088 struct drand48_data *__restrict __buffer,
2089 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2090
2091
2092extern int lrand48_r (struct drand48_data *__restrict __buffer,
2093 long int *__restrict __result)
2094 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2095extern int nrand48_r (unsigned short int __xsubi[3],
2096 struct drand48_data *__restrict __buffer,
2097 long int *__restrict __result)
2098 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2099
2100
2101extern int mrand48_r (struct drand48_data *__restrict __buffer,
2102 long int *__restrict __result)
2103 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2104extern int jrand48_r (unsigned short int __xsubi[3],
2105 struct drand48_data *__restrict __buffer,
2106 long int *__restrict __result)
2107 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2108
2109
2110extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
2111 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2112
2113extern int seed48_r (unsigned short int __seed16v[3],
2114 struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2115
2116extern int lcong48_r (unsigned short int __param[7],
2117 struct drand48_data *__buffer)
2118 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
2129
2130extern void *calloc (size_t __nmemb, size_t __size)
2131 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
2132
2133
2134
2135
2136
2137
2138
2139extern void *realloc (void *__ptr, size_t __size)
2140 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2141
2142extern void free (void *__ptr) __attribute__ ((__nothrow__));
2143
2144
2145
2146
2147extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
2148
2149
2150
2151# 1 "../include/alloca.h" 1
2152
2153
2154# 1 "../stdlib/alloca.h" 1
2155# 25 "../stdlib/alloca.h"
2156# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
2157# 26 "../stdlib/alloca.h" 2
2158
2159
2160
2161
2162
2163
2164
2165extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
2166
2167
2168
2169
2170
2171
2172# 4 "../include/alloca.h" 2
2173# 1 "../sysdeps/s390/stackinfo.h" 1
2174# 5 "../include/alloca.h" 2
2175
2176
2177
2178
2179extern void *__alloca (size_t __size);
2180
2181
2182
2183
2184
2185extern int __libc_use_alloca (size_t size) __attribute__ ((const));
2186extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
2187
2188
2189
2190# 1 "../nptl/sysdeps/pthread/allocalim.h" 1
2191# 20 "../nptl/sysdeps/pthread/allocalim.h"
2192# 1 "../include/alloca.h" 1
2193# 21 "../nptl/sysdeps/pthread/allocalim.h" 2
2194# 1 "../include/limits.h" 1
2195# 125 "../include/limits.h"
2196# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/limits.h" 1 3 4
2197# 126 "../include/limits.h" 2
2198# 145 "../include/limits.h"
2199# 1 "../include/bits/posix1_lim.h" 1
2200# 1 "../posix/bits/posix1_lim.h" 1
2201# 153 "../posix/bits/posix1_lim.h"
2202# 1 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h" 1
2203# 36 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h"
2204# 1 "/usr/include/linux/limits.h" 1 3 4
2205# 37 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h" 2
2206# 154 "../posix/bits/posix1_lim.h" 2
2207# 1 "../include/bits/posix1_lim.h" 2
2208# 146 "../include/limits.h" 2
2209
2210
2211
2212# 1 "../include/bits/posix2_lim.h" 1
2213# 1 "../posix/bits/posix2_lim.h" 1
2214# 1 "../include/bits/posix2_lim.h" 2
2215# 150 "../include/limits.h" 2
2216
2217
2218
2219# 1 "../include/bits/xopen_lim.h" 1
2220# 34 "../include/bits/xopen_lim.h"
2221# 1 "/var/tmp/portage/sys-libs/glibc-2.4-r4/work/build-default-s390x-ibm-linux-gnu-nptl/bits/stdio_lim.h" 1
2222# 35 "../include/bits/xopen_lim.h" 2
2223# 154 "../include/limits.h" 2
2224# 22 "../nptl/sysdeps/pthread/allocalim.h" 2
2225
2226
2227extern inline int
2228__libc_use_alloca (size_t size)
2229{
2230 return (__builtin_expect (size <= 16384 / 4, 1)
2231 || __libc_alloca_cutoff (size));
2232}
2233# 21 "../include/alloca.h" 2
2234# 613 "../stdlib/stdlib.h" 2
2235
2236
2237
2238
2239extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
2240
2241
2242
2243
2244extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
2245 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2246
2247
2248
2249
2250extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2251
2252
2253
2254extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2255
2256
2257
2258
2259
2260extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
2261 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2262
2263
2264
2265
2266
2267
2268extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2269
2270
2271
2272
2273
2274
2275extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2276
2277
2278
2279
2280
2281
2282extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2283
2284
2285
2286
2287extern char *__secure_getenv (__const char *__name)
2288 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2289
2290
2291
2292
2293
2294extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2295
2296
2297
2298
2299
2300extern int setenv (__const char *__name, __const char *__value, int __replace)
2301 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2302
2303
2304extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
2305
2306
2307
2308
2309
2310
2311extern int clearenv (void) __attribute__ ((__nothrow__));
2312# 698 "../stdlib/stdlib.h"
2313extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2314# 709 "../stdlib/stdlib.h"
2315extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
2316# 719 "../stdlib/stdlib.h"
2317extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
2318# 729 "../stdlib/stdlib.h"
2319extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2320
2321
2322
2323
2324
2325
2326
2327
2328extern int system (__const char *__command) ;
2329
2330
2331
2332
2333
2334
2335
2336extern char *canonicalize_file_name (__const char *__name)
2337 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2338# 757 "../stdlib/stdlib.h"
2339extern char *realpath (__const char *__restrict __name,
2340 char *__restrict __resolved) __attribute__ ((__nothrow__)) ;
2341
2342
2343
2344
2345
2346
2347typedef int (*__compar_fn_t) (__const void *, __const void *);
2348
2349
2350typedef __compar_fn_t comparison_fn_t;
2351
2352
2353
2354
2355
2356
2357extern void *bsearch (__const void *__key, __const void *__base,
2358 size_t __nmemb, size_t __size, __compar_fn_t __compar)
2359 __attribute__ ((__nonnull__ (1, 2, 5))) ;
2360
2361
2362
2363extern void qsort (void *__base, size_t __nmemb, size_t __size,
2364 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
2365
2366
2367
2368extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
2369extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
2370
2371
2372
2373__extension__ extern long long int llabs (long long int __x)
2374 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
2375
2376
2377
2378
2379
2380
2381
2382extern div_t div (int __numer, int __denom)
2383 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
2384extern ldiv_t ldiv (long int __numer, long int __denom)
2385 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
2386
2387
2388
2389
2390__extension__ extern lldiv_t lldiv (long long int __numer,
2391 long long int __denom)
2392 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
2393
2394# 822 "../stdlib/stdlib.h"
2395extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
2396 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
2397
2398
2399
2400
2401extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
2402 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
2403
2404
2405
2406
2407extern char *gcvt (double __value, int __ndigit, char *__buf)
2408 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
2409
2410
2411
2412
2413extern char *qecvt (long double __value, int __ndigit,
2414 int *__restrict __decpt, int *__restrict __sign)
2415 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
2416extern char *qfcvt (long double __value, int __ndigit,
2417 int *__restrict __decpt, int *__restrict __sign)
2418 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
2419extern char *qgcvt (long double __value, int __ndigit, char *__buf)
2420 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
2421
2422
2423
2424
2425extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
2426 int *__restrict __sign, char *__restrict __buf,
2427 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
2428extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
2429 int *__restrict __sign, char *__restrict __buf,
2430 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
2431
2432extern int qecvt_r (long double __value, int __ndigit,
2433 int *__restrict __decpt, int *__restrict __sign,
2434 char *__restrict __buf, size_t __len)
2435 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
2436extern int qfcvt_r (long double __value, int __ndigit,
2437 int *__restrict __decpt, int *__restrict __sign,
2438 char *__restrict __buf, size_t __len)
2439 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
2440
2441
2442
2443
2444
2445
2446
2447extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ;
2448
2449
2450extern int mbtowc (wchar_t *__restrict __pwc,
2451 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;
2452
2453
2454extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;
2455
2456
2457
2458extern size_t mbstowcs (wchar_t *__restrict __pwcs,
2459 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
2460
2461extern size_t wcstombs (char *__restrict __s,
2462 __const wchar_t *__restrict __pwcs, size_t __n)
2463 __attribute__ ((__nothrow__));
2464
2465
2466
2467
2468
2469
2470
2471
2472extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2473# 910 "../stdlib/stdlib.h"
2474extern int getsubopt (char **__restrict __optionp,
2475 char *__const *__restrict __tokens,
2476 char **__restrict __valuep)
2477 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
2478
2479
2480
2481
2482
2483extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2484
2485
2486
2487
2488
2489
2490
2491extern int posix_openpt (int __oflag) ;
2492
2493
2494
2495
2496
2497
2498
2499extern int grantpt (int __fd) __attribute__ ((__nothrow__));
2500
2501
2502
2503extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
2504
2505
2506
2507
2508extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) ;
2509
2510
2511
2512
2513
2514
2515extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
2516 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2517
2518
2519extern int getpt (void);
2520
2521
2522
2523
2524
2525
2526extern int getloadavg (double __loadavg[], int __nelem)
2527 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2528# 978 "../stdlib/stdlib.h"
2529
2530# 9 "../include/stdlib.h" 2
2531
2532
2533
2534
2535
2536
2537extern __typeof (strtol_l) __strtol_l;
2538extern __typeof (strtoul_l) __strtoul_l;
2539extern __typeof (strtoll_l) __strtoll_l;
2540extern __typeof (strtoull_l) __strtoull_l;
2541extern __typeof (strtod_l) __strtod_l;
2542extern __typeof (strtof_l) __strtof_l;
2543extern __typeof (strtold_l) __strtold_l;
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561extern long int __random (void);
2562extern void __srandom (unsigned int __seed);
2563extern char *__initstate (unsigned int __seed, char *__statebuf,
2564 size_t __statelen);
2565extern char *__setstate (char *__statebuf);
2566extern int __random_r (struct random_data *__buf, int32_t *__result);
2567extern int __srandom_r (unsigned int __seed, struct random_data *__buf);
2568extern int __initstate_r (unsigned int __seed, char *__statebuf,
2569 size_t __statelen, struct random_data *__buf);
2570extern int __setstate_r (char *__statebuf, struct random_data *__buf);
2571extern int __rand_r (unsigned int *__seed);
2572extern int __erand48_r (unsigned short int __xsubi[3],
2573 struct drand48_data *__buffer, double *__result);
2574extern int __nrand48_r (unsigned short int __xsubi[3],
2575 struct drand48_data *__buffer,
2576 long int *__result);
2577extern int __jrand48_r (unsigned short int __xsubi[3],
2578 struct drand48_data *__buffer,
2579 long int *__result);
2580extern int __srand48_r (long int __seedval,
2581 struct drand48_data *__buffer);
2582extern int __seed48_r (unsigned short int __seed16v[3],
2583 struct drand48_data *__buffer);
2584extern int __lcong48_r (unsigned short int __param[7],
2585 struct drand48_data *__buffer);
2586
2587
2588extern int __drand48_iterate (unsigned short int __xsubi[3],
2589 struct drand48_data *__buffer);
2590
2591
2592extern struct drand48_data __libc_drand48_data __attribute__ ((visibility ("hidden")));
2593
2594extern int __setenv (__const char *__name, __const char *__value,
2595 int __replace);
2596extern int __unsetenv (__const char *__name);
2597extern int __clearenv (void);
2598extern char *__canonicalize_file_name (__const char *__name);
2599extern char *__realpath (__const char *__name, char *__resolved);
2600extern int __ptsname_r (int __fd, char *__buf, size_t __buflen);
2601extern int __getpt (void);
2602extern int __posix_openpt (int __oflag);
2603
2604extern int __add_to_environ (const char *name, const char *value,
2605 const char *combines, int replace);
2606
2607extern void _quicksort (void *const pbase, size_t total_elems,
2608 size_t size, __compar_fn_t cmp);
2609
2610extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg);
2611
2612extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);
2613extern int __cxa_atexit_internal (void (*func) (void *), void *arg, void *d)
2614 __attribute__ ((visibility ("hidden")));
2615
2616extern void __cxa_finalize (void *d);
2617
2618extern int __posix_memalign (void **memptr, size_t alignment, size_t size);
2619
2620extern void *__libc_memalign (size_t alignment, size_t size)
2621 __attribute__ ((__malloc__));
2622
2623extern int __libc_system (const char *line);
2624
2625extern double ____strtod_l_internal (__const char *__restrict __nptr,
2626 char **__restrict __endptr, int __group,
2627 __locale_t __loc);
2628extern float ____strtof_l_internal (__const char *__restrict __nptr,
2629 char **__restrict __endptr, int __group,
2630 __locale_t __loc);
2631extern long double ____strtold_l_internal (__const char *__restrict __nptr,
2632 char **__restrict __endptr,
2633 int __group, __locale_t __loc);
2634extern long int ____strtol_l_internal (__const char *__restrict __nptr,
2635 char **__restrict __endptr,
2636 int __base, int __group,
2637 __locale_t __loc);
2638extern unsigned long int ____strtoul_l_internal (__const char *
2639 __restrict __nptr,
2640 char **__restrict __endptr,
2641 int __base, int __group,
2642 __locale_t __loc);
2643__extension__
2644extern long long int ____strtoll_l_internal (__const char *__restrict __nptr,
2645 char **__restrict __endptr,
2646 int __base, int __group,
2647 __locale_t __loc);
2648__extension__
2649extern unsigned long long int ____strtoull_l_internal (__const char *
2650 __restrict __nptr,
2651 char **
2652 __restrict __endptr,
2653 int __base, int __group,
2654 __locale_t __loc);
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664extern __inline double
2665__attribute__ ((__nothrow__)) __strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc)
2666
2667{
2668 return ____strtod_l_internal (__nptr, __endptr, 0, __loc);
2669}
2670extern __inline long int
2671__attribute__ ((__nothrow__)) __strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc)
2672
2673{
2674 return ____strtol_l_internal (__nptr, __endptr, __base, 0, __loc);
2675}
2676extern __inline unsigned long int
2677__attribute__ ((__nothrow__)) __strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc)
2678
2679{
2680 return ____strtoul_l_internal (__nptr, __endptr, __base, 0, __loc);
2681}
2682extern __inline float
2683__attribute__ ((__nothrow__)) __strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc)
2684
2685{
2686 return ____strtof_l_internal (__nptr, __endptr, 0, __loc);
2687}
2688extern __inline long double
2689__attribute__ ((__nothrow__)) __strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc)
2690
2691{
2692 return ____strtold_l_internal (__nptr, __endptr, 0, __loc);
2693}
2694__extension__ extern __inline long long int
2695__attribute__ ((__nothrow__)) __strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc)
2696
2697{
2698 return ____strtoll_l_internal (__nptr, __endptr, __base, 0, __loc);
2699}
2700__extension__ extern __inline unsigned long long int
2701__attribute__ ((__nothrow__)) __strtoull_l (__const char * __restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc)
2702
2703{
2704 return ____strtoull_l_internal (__nptr, __endptr, __base, 0, __loc);
2705}
2706
2707extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt,
2708 int *__restrict __sign);
2709extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt,
2710 int *__restrict __sign);
2711extern char *__gcvt (double __value, int __ndigit, char *__buf);
2712extern int __ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
2713 int *__restrict __sign, char *__restrict __buf,
2714 size_t __len);
2715extern int __fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
2716 int *__restrict __sign, char *__restrict __buf,
2717 size_t __len);
2718extern char *__qecvt (long double __value, int __ndigit,
2719 int *__restrict __decpt, int *__restrict __sign);
2720extern char *__qfcvt (long double __value, int __ndigit,
2721 int *__restrict __decpt, int *__restrict __sign);
2722extern char *__qgcvt (long double __value, int __ndigit, char *__buf);
2723extern int __qecvt_r (long double __value, int __ndigit,
2724 int *__restrict __decpt, int *__restrict __sign,
2725 char *__restrict __buf, size_t __len);
2726extern int __qfcvt_r (long double __value, int __ndigit,
2727 int *__restrict __decpt, int *__restrict __sign,
2728 char *__restrict __buf, size_t __len);
2729# 217 "../include/stdlib.h"
2730extern void *__default_morecore (ptrdiff_t) __attribute__ ((__nothrow__));
2731
2732
2733
2734# 29 "../nptl/sysdeps/s390/tls.h" 2
2735# 1 "../nptl/sysdeps/pthread/list.h" 1
2736# 29 "../nptl/sysdeps/pthread/list.h"
2737typedef struct list_head
2738{
2739 struct list_head *next;
2740 struct list_head *prev;
2741} list_t;
2742# 46 "../nptl/sysdeps/pthread/list.h"
2743static inline void
2744list_add (list_t *newp, list_t *head)
2745{
2746 head->next->prev = newp;
2747 newp->next = head->next;
2748 newp->prev = head;
2749 head->next = newp;
2750}
2751
2752
2753
2754static inline void
2755list_add_tail (list_t *newp, list_t *head)
2756{
2757 head->prev->next = newp;
2758 newp->next = head;
2759 newp->prev = head->prev;
2760 head->prev = newp;
2761}
2762
2763
2764
2765static inline void
2766list_del (list_t *elem)
2767{
2768 elem->next->prev = elem->prev;
2769 elem->prev->next = elem->next;
2770}
2771
2772
2773
2774static inline void
2775list_splice (list_t *add, list_t *head)
2776{
2777
2778 if (add != add->next)
2779 {
2780 add->next->prev = head;
2781 add->prev->next = head->next;
2782 head->next->prev = add->prev;
2783 head->next = add->next;
2784 }
2785}
2786# 30 "../nptl/sysdeps/s390/tls.h" 2
2787
2788
2789
2790typedef union dtv
2791{
2792 size_t counter;
2793 struct
2794 {
2795 void *val;
2796 _Bool is_static;
2797 } pointer;
2798} dtv_t;
2799
2800
2801typedef struct
2802{
2803 void *tcb;
2804
2805 dtv_t *dtv;
2806 void *self;
2807 int multiple_threads;
2808 uintptr_t sysinfo;
2809 uintptr_t stack_guard;
2810} tcbhead_t;
2811# 78 "../nptl/sysdeps/s390/tls.h"
2812# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 1
2813# 25 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h"
2814# 1 "../sysdeps/s390/s390-64/sysdep.h" 1
2815# 21 "../sysdeps/s390/s390-64/sysdep.h"
2816# 1 "../sysdeps/generic/sysdep.h" 1
2817# 22 "../sysdeps/s390/s390-64/sysdep.h" 2
2818# 26 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
2819# 1 "../sysdeps/unix/sysdep.h" 1
2820# 19 "../sysdeps/unix/sysdep.h"
2821# 1 "../sysdeps/generic/sysdep.h" 1
2822# 20 "../sysdeps/unix/sysdep.h" 2
2823
2824# 1 "../sysdeps/unix/sysv/linux/sys/syscall.h" 1
2825# 25 "../sysdeps/unix/sysv/linux/sys/syscall.h"
2826# 1 "/usr/include/asm/unistd.h" 1 3 4
2827# 26 "../sysdeps/unix/sysv/linux/sys/syscall.h" 2
2828# 22 "../sysdeps/unix/sysdep.h" 2
2829# 27 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
2830# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
2831# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
2832# 1 "../sysdeps/generic/dl-sysdep.h" 1
2833# 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
2834# 28 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
2835# 1 "../include/tls.h" 1
2836# 29 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
2837# 79 "../nptl/sysdeps/s390/tls.h" 2
2838
2839
2840# 1 "../nptl/descr.h" 1
2841# 23 "../nptl/descr.h"
2842# 1 "../include/limits.h" 1
2843# 145 "../include/limits.h"
2844# 1 "../include/bits/posix1_lim.h" 1
2845# 146 "../include/limits.h" 2
2846
2847
2848
2849# 1 "../include/bits/posix2_lim.h" 1
2850# 150 "../include/limits.h" 2
2851# 24 "../nptl/descr.h" 2
2852# 1 "../include/sched.h" 1
2853
2854# 1 "../posix/sched.h" 1
2855# 29 "../posix/sched.h"
2856# 1 "../include/time.h" 1
2857
2858
2859# 1 "../time/time.h" 1
2860# 4 "../include/time.h" 2
2861# 30 "../posix/sched.h" 2
2862
2863
2864# 1 "../sysdeps/unix/sysv/linux/bits/sched.h" 1
2865# 65 "../sysdeps/unix/sysv/linux/bits/sched.h"
2866struct sched_param
2867 {
2868 int __sched_priority;
2869 };
2870
2871
2872
2873
2874
2875extern int clone (int (*__fn) (void *__arg), void *__child_stack,
2876 int __flags, void *__arg, ...) __attribute__ ((__nothrow__));
2877
2878
2879extern int unshare (int __flags) __attribute__ ((__nothrow__));
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890struct __sched_param
2891 {
2892 int __sched_priority;
2893 };
2894# 104 "../sysdeps/unix/sysv/linux/bits/sched.h"
2895typedef unsigned long int __cpu_mask;
2896
2897
2898
2899
2900
2901
2902typedef struct
2903{
2904 __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
2905} cpu_set_t;
2906# 33 "../posix/sched.h" 2
2907
2908
2909
2910
2911
2912
2913
2914extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
2915 __attribute__ ((__nothrow__));
2916
2917
2918extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__));
2919
2920
2921extern int sched_setscheduler (__pid_t __pid, int __policy,
2922 __const struct sched_param *__param) __attribute__ ((__nothrow__));
2923
2924
2925extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__));
2926
2927
2928extern int sched_yield (void) __attribute__ ((__nothrow__));
2929
2930
2931extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__));
2932
2933
2934extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__));
2935
2936
2937extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__));
2938# 76 "../posix/sched.h"
2939extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
2940 __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
2941
2942
2943extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
2944 cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
2945
2946
2947
2948# 3 "../include/sched.h" 2
2949
2950
2951extern int __sched_setparam (__pid_t __pid,
2952 __const struct sched_param *__param);
2953extern int __sched_getparam (__pid_t __pid, struct sched_param *__param);
2954extern int __sched_setscheduler (__pid_t __pid, int __policy,
2955 __const struct sched_param *__param);
2956
2957extern int __sched_getscheduler (__pid_t __pid);
2958extern int __sched_yield (void);
2959
2960extern int __sched_get_priority_max (int __algorithm);
2961extern int __sched_get_priority_min (int __algorithm);
2962extern int __sched_rr_get_interval (__pid_t __pid, struct timespec *__t);
2963
2964
2965extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
2966 int __flags, void *__arg, ...);
2967extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
2968 size_t __child_stack_size, int __flags, void *__arg, ...);
2969# 25 "../nptl/descr.h" 2
2970# 1 "../include/setjmp.h" 1
2971
2972# 1 "../setjmp/setjmp.h" 1
2973# 28 "../setjmp/setjmp.h"
2974
2975
2976# 1 "../sysdeps/s390/bits/setjmp.h" 1
2977# 28 "../sysdeps/s390/bits/setjmp.h"
2978# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
2979# 29 "../sysdeps/s390/bits/setjmp.h" 2
2980
2981
2982
2983typedef struct __s390_jmp_buf
2984{
2985
2986 long int __gregs[10];
2987
2988
2989
2990 long __fpregs[8];
2991
2992
2993
2994
2995} __jmp_buf[1];
2996# 31 "../setjmp/setjmp.h" 2
2997# 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1
2998# 32 "../setjmp/setjmp.h" 2
2999
3000
3001
3002
3003typedef struct __jmp_buf_tag
3004 {
3005
3006
3007
3008
3009 __jmp_buf __jmpbuf;
3010 int __mask_was_saved;
3011 __sigset_t __saved_mask;
3012 } jmp_buf[1];
3013
3014
3015
3016
3017extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__));
3018
3019
3020
3021
3022
3023
3024
3025extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__));
3026
3027
3028
3029
3030extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__));
3031# 76 "../setjmp/setjmp.h"
3032
3033
3034
3035
3036extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
3037 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
3038
3039
3040
3041
3042
3043
3044
3045extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
3046 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
3047
3048
3049
3050
3051
3052
3053
3054typedef struct __jmp_buf_tag sigjmp_buf[1];
3055# 108 "../setjmp/setjmp.h"
3056extern void siglongjmp (sigjmp_buf __env, int __val)
3057 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
3058
3059
3060
3061# 3 "../include/setjmp.h" 2
3062
3063
3064
3065
3066extern void __longjmp (__jmp_buf __env, int __val)
3067 __attribute__ ((__noreturn__));
3068
3069
3070
3071
3072
3073extern int __sigjmp_save (jmp_buf __env, int __savemask);
3074
3075extern void _longjmp_unwind (jmp_buf env, int val);
3076
3077extern void __libc_siglongjmp (sigjmp_buf env, int val)
3078 __attribute__ ((noreturn));
3079extern void __libc_longjmp (sigjmp_buf env, int val)
3080 __attribute__ ((noreturn));
3081
3082
3083
3084
3085# 26 "../nptl/descr.h" 2
3086
3087# 1 "../include/sys/types.h" 1
3088# 28 "../nptl/descr.h" 2
3089# 1 "../sysdeps/generic/hp-timing.h" 1
3090# 71 "../sysdeps/generic/hp-timing.h"
3091typedef int hp_timing_t;
3092# 29 "../nptl/descr.h" 2
3093
3094# 1 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" 1
3095# 23 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h"
3096# 1 "../include/time.h" 1
3097
3098
3099
3100
3101# 1 "../time/time.h" 1
3102# 31 "../time/time.h"
3103
3104
3105
3106
3107
3108
3109
3110
3111# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
3112# 40 "../time/time.h" 2
3113
3114
3115
3116# 1 "../bits/time.h" 1
3117# 44 "../time/time.h" 2
3118# 132 "../time/time.h"
3119
3120
3121struct tm
3122{
3123 int tm_sec;
3124 int tm_min;
3125 int tm_hour;
3126 int tm_mday;
3127 int tm_mon;
3128 int tm_year;
3129 int tm_wday;
3130 int tm_yday;
3131 int tm_isdst;
3132
3133
3134 long int tm_gmtoff;
3135 __const char *tm_zone;
3136
3137
3138
3139
3140};
3141
3142
3143
3144
3145
3146
3147
3148
3149struct itimerspec
3150 {
3151 struct timespec it_interval;
3152 struct timespec it_value;
3153 };
3154
3155
3156struct sigevent;
3157# 181 "../time/time.h"
3158
3159
3160
3161extern clock_t clock (void) __attribute__ ((__nothrow__));
3162
3163
3164extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
3165
3166
3167extern double difftime (time_t __time1, time_t __time0)
3168 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3169
3170
3171extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
3172
3173
3174
3175
3176
3177extern size_t strftime (char *__restrict __s, size_t __maxsize,
3178 __const char *__restrict __format,
3179 __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3180
3181
3182
3183
3184
3185extern char *strptime (__const char *__restrict __s,
3186 __const char *__restrict __fmt, struct tm *__tp)
3187 __attribute__ ((__nothrow__));
3188
3189
3190
3191
3192
3193# 1 "../include/xlocale.h" 1
3194# 217 "../time/time.h" 2
3195
3196extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
3197 __const char *__restrict __format,
3198 __const struct tm *__restrict __tp,
3199 __locale_t __loc) __attribute__ ((__nothrow__));
3200
3201extern char *strptime_l (__const char *__restrict __s,
3202 __const char *__restrict __fmt, struct tm *__tp,
3203 __locale_t __loc) __attribute__ ((__nothrow__));
3204
3205
3206
3207
3208
3209
3210extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
3211
3212
3213
3214extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
3215
3216
3217
3218
3219
3220extern struct tm *gmtime_r (__const time_t *__restrict __timer,
3221 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3222
3223
3224
3225extern struct tm *localtime_r (__const time_t *__restrict __timer,
3226 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3227
3228
3229
3230
3231
3232extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
3233
3234
3235extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
3236
3237
3238
3239
3240
3241
3242
3243extern char *asctime_r (__const struct tm *__restrict __tp,
3244 char *__restrict __buf) __attribute__ ((__nothrow__));
3245
3246
3247extern char *ctime_r (__const time_t *__restrict __timer,
3248 char *__restrict __buf) __attribute__ ((__nothrow__));
3249
3250
3251
3252
3253extern char *__tzname[2];
3254extern int __daylight;
3255extern long int __timezone;
3256
3257
3258
3259
3260extern char *tzname[2];
3261
3262
3263
3264extern void tzset (void) __attribute__ ((__nothrow__));
3265
3266
3267
3268extern int daylight;
3269extern long int timezone;
3270
3271
3272
3273
3274
3275extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
3276# 312 "../time/time.h"
3277extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
3278
3279
3280extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
3281
3282
3283extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3284# 327 "../time/time.h"
3285extern int nanosleep (__const struct timespec *__requested_time,
3286 struct timespec *__remaining);
3287
3288
3289
3290extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
3291
3292
3293extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
3294
3295
3296extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
3297 __attribute__ ((__nothrow__));
3298
3299
3300
3301
3302
3303
3304extern int clock_nanosleep (clockid_t __clock_id, int __flags,
3305 __const struct timespec *__req,
3306 struct timespec *__rem);
3307
3308
3309extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
3310
3311
3312
3313
3314extern int timer_create (clockid_t __clock_id,
3315 struct sigevent *__restrict __evp,
3316 timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
3317
3318
3319extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
3320
3321
3322extern int timer_settime (timer_t __timerid, int __flags,
3323 __const struct itimerspec *__restrict __value,
3324 struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
3325
3326
3327extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
3328 __attribute__ ((__nothrow__));
3329
3330
3331extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
3332# 389 "../time/time.h"
3333extern int getdate_err;
3334# 398 "../time/time.h"
3335extern struct tm *getdate (__const char *__string);
3336# 412 "../time/time.h"
3337extern int getdate_r (__const char *__restrict __string,
3338 struct tm *__restrict __resbufp);
3339
3340
3341
3342# 6 "../include/time.h" 2
3343# 1 "../include/xlocale.h" 1
3344# 7 "../include/time.h" 2
3345
3346
3347
3348extern __typeof (strftime_l) __strftime_l;
3349
3350extern __typeof (strptime_l) __strptime_l;
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363struct tm;
3364
3365
3366extern const unsigned short int __mon_yday[2][13] __attribute__ ((visibility ("hidden")));
3367
3368
3369extern struct tm _tmbuf __attribute__ ((visibility ("hidden")));
3370
3371
3372extern char *__tzstring (const char *string);
3373
3374
3375extern size_t __tzname_cur_max __attribute__ ((visibility ("hidden")));
3376
3377
3378extern int __use_tzfile __attribute__ ((visibility ("hidden")));
3379
3380extern void __tzfile_read (const char *file, size_t extra,
3381 char **extrap);
3382extern void __tzfile_compute (time_t timer, int use_localtime,
3383 long int *leap_correct, int *leap_hit,
3384 struct tm *tp);
3385extern void __tzfile_default (const char *std, const char *dst,
3386 long int stdoff, long int dstoff);
3387
3388
3389
3390
3391extern time_t __mktime_internal (struct tm *__tp,
3392 struct tm *(*__func) (const time_t *,
3393 struct tm *),
3394 time_t *__offset);
3395extern struct tm *__localtime_r (__const time_t *__timer,
3396 struct tm *__tp) __attribute__ ((visibility ("hidden")));
3397
3398extern struct tm *__gmtime_r (__const time_t *__restrict __timer,
3399 struct tm *__restrict __tp);
3400
3401
3402
3403
3404
3405
3406extern int __offtime (__const time_t *__timer,
3407 long int __offset,
3408 struct tm *__tp);
3409
3410extern char *__asctime_r (__const struct tm *__tp, char *__buf);
3411extern void __tzset (void);
3412
3413
3414extern struct tm *__tz_convert (const time_t *timer, int use_localtime, struct tm *tp);
3415
3416
3417
3418extern long int __tzname_max (void);
3419
3420extern int __nanosleep (__const struct timespec *__requested_time,
3421 struct timespec *__remaining);
3422
3423extern int __getdate_r (__const char *__string, struct tm *__resbufp);
3424
3425
3426
3427extern int __getclktck (void);
3428
3429
3430
3431
3432
3433
3434enum ptime_locale_status { not, loc, raw };
3435
3436extern char * __strptime_internal (const char *rp, const char *fmt,
3437 struct tm *tm,
3438 enum ptime_locale_status *decided,
3439 int era_cnt, __locale_t locparam)
3440 ;
3441
3442
3443extern double __difftime (time_t time1, time_t time0);
3444# 114 "../include/time.h"
3445
3446# 24 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" 2
3447# 1 "../sysdeps/unix/sysv/linux/sys/param.h" 1
3448# 22 "../sysdeps/unix/sysv/linux/sys/param.h"
3449# 1 "../include/limits.h" 1
3450# 145 "../include/limits.h"
3451# 1 "../include/bits/posix1_lim.h" 1
3452# 146 "../include/limits.h" 2
3453
3454
3455
3456# 1 "../include/bits/posix2_lim.h" 1
3457# 150 "../include/limits.h" 2
3458# 23 "../sysdeps/unix/sysv/linux/sys/param.h" 2
3459
3460# 1 "/usr/include/linux/param.h" 1 3 4
3461
3462
3463
3464# 1 "/usr/include/asm/param.h" 1 3 4
3465# 5 "/usr/include/linux/param.h" 2 3 4
3466# 25 "../sysdeps/unix/sysv/linux/sys/param.h" 2
3467# 42 "../sysdeps/unix/sysv/linux/sys/param.h"
3468# 1 "../include/sys/types.h" 1
3469# 43 "../sysdeps/unix/sysv/linux/sys/param.h" 2
3470# 25 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" 2
3471
3472# 1 "../include/atomic.h" 1
3473# 26 "../include/atomic.h"
3474# 1 "../sysdeps/s390/bits/atomic.h" 1
3475# 22 "../sysdeps/s390/bits/atomic.h"
3476typedef int8_t atomic8_t;
3477typedef uint8_t uatomic8_t;
3478typedef int_fast8_t atomic_fast8_t;
3479typedef uint_fast8_t uatomic_fast8_t;
3480
3481typedef int16_t atomic16_t;
3482typedef uint16_t uatomic16_t;
3483typedef int_fast16_t atomic_fast16_t;
3484typedef uint_fast16_t uatomic_fast16_t;
3485
3486typedef int32_t atomic32_t;
3487typedef uint32_t uatomic32_t;
3488typedef int_fast32_t atomic_fast32_t;
3489typedef uint_fast32_t uatomic_fast32_t;
3490
3491typedef int64_t atomic64_t;
3492typedef uint64_t uatomic64_t;
3493typedef int_fast64_t atomic_fast64_t;
3494typedef uint_fast64_t uatomic_fast64_t;
3495
3496typedef intptr_t atomicptr_t;
3497typedef uintptr_t uatomicptr_t;
3498typedef intmax_t atomic_max_t;
3499typedef uintmax_t uatomic_max_t;
3500# 27 "../include/atomic.h" 2
3501# 27 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" 2
3502# 153 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h"
3503static inline int
3504__attribute__ ((always_inline))
3505__lll_mutex_trylock (int *futex)
3506{
3507 unsigned int old;
3508
3509 __asm __volatile ("cs %0,%3,%1"
3510 : "=d" (old), "=Q" (*futex)
3511 : "0" (0), "d" (1), "m" (*futex) : "cc", "memory" );
3512 return old != 0;
3513}
3514
3515
3516
3517static inline int
3518__attribute__ ((always_inline))
3519__lll_mutex_cond_trylock (int *futex)
3520{
3521 unsigned int old;
3522
3523 __asm __volatile ("cs %0,%3,%1"
3524 : "=d" (old), "=Q" (*futex)
3525 : "0" (0), "d" (2), "m" (*futex) : "cc", "memory" );
3526 return old != 0;
3527}
3528
3529
3530
3531static inline int
3532__attribute__ ((always_inline))
3533__lll_robust_mutex_trylock (int *futex, int id)
3534{
3535 unsigned int old;
3536
3537 __asm __volatile ("cs %0,%3,%1"
3538 : "=d" (old), "=Q" (*futex)
3539 : "0" (0), "d" (id), "m" (*futex) : "cc", "memory" );
3540 return old != 0;
3541}
3542
3543
3544
3545
3546extern void __lll_lock_wait (int *futex) __attribute__ ((visibility ("hidden")));
3547extern int __lll_robust_lock_wait (int *futex) __attribute__ ((visibility ("hidden")));
3548
3549static inline void
3550__attribute__ ((always_inline))
3551__lll_mutex_lock (int *futex)
3552{
3553 if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (1), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (1)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0)
3554 __lll_lock_wait (futex);
3555}
3556
3557
3558static inline int
3559__attribute__ ((always_inline))
3560__lll_robust_mutex_lock (int *futex, int id)
3561{
3562 int result = 0;
3563 if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (id), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (id)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0)
3564 result = __lll_robust_lock_wait (futex);
3565 return result;
3566}
3567
3568
3569static inline void
3570__attribute__ ((always_inline))
3571__lll_mutex_cond_lock (int *futex)
3572{
3573 if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (2), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (2)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0)
3574 __lll_lock_wait (futex);
3575}
3576
3577
3578
3579
3580
3581extern int __lll_timedlock_wait
3582 (int *futex, const struct timespec *) __attribute__ ((visibility ("hidden")));
3583extern int __lll_robust_timedlock_wait
3584 (int *futex, const struct timespec *) __attribute__ ((visibility ("hidden")));
3585
3586static inline int
3587__attribute__ ((always_inline))
3588__lll_mutex_timedlock (int *futex, const struct timespec *abstime)
3589{
3590 int result = 0;
3591 if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (1), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (1)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0)
3592 result = __lll_timedlock_wait (futex, abstime);
3593 return result;
3594}
3595
3596
3597
3598static inline int
3599__attribute__ ((always_inline))
3600__lll_robust_mutex_timedlock (int *futex, const struct timespec *abstime,
3601 int id)
3602{
3603 int result = 0;
3604 if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (id), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (id)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0)
3605 result = __lll_robust_timedlock_wait (futex, abstime);
3606 return result;
3607}
3608
3609
3610
3611
3612static inline void
3613__attribute__ ((always_inline))
3614__lll_mutex_unlock (int *futex)
3615{
3616 int oldval;
3617 int newval = 0;
3618
3619 do { __typeof (futex) __futex = (futex); __asm __volatile (" l %1,%0\n" "0: " "slr %2,%2" "\n" " cs %1,%2,%0\n" " jl 0b\n" "1:" : "=Q" (*__futex), "=&d" (oldval), "=&d" (newval) : "m" (*__futex) : "cc", "memory" ); } while (0);
3620 if (oldval > 1)
3621 ({ register unsigned long int __r2 asm ("2") = (unsigned long int) (futex); register unsigned long int __r3 asm ("3") = 1; register unsigned long int __r4 asm ("4") = (unsigned long int) (1); register unsigned long int __result asm ("2"); __asm __volatile ("svc %b1" : "=d" (__result) : "i" (238), "0" (__r2), "d" (__r3), "d" (__r4) : "cc", "memory" ); __result; });
3622}
3623
3624
3625
3626
3627static inline void
3628__attribute__ ((always_inline))
3629__lll_robust_mutex_unlock (int *futex, int mask)
3630{
3631 int oldval;
3632 int newval = 0;
3633
3634 do { __typeof (futex) __futex = (futex); __asm __volatile (" l %1,%0\n" "0: " "slr %2,%2" "\n" " cs %1,%2,%0\n" " jl 0b\n" "1:" : "=Q" (*__futex), "=&d" (oldval), "=&d" (newval) : "m" (*__futex) : "cc", "memory" ); } while (0);
3635 if (oldval & mask)
3636 ({ register unsigned long int __r2 asm ("2") = (unsigned long int) (futex); register unsigned long int __r3 asm ("3") = 1; register unsigned long int __r4 asm ("4") = (unsigned long int) (1); register unsigned long int __result asm ("2"); __asm __volatile ("svc %b1" : "=d" (__result) : "i" (238), "0" (__r2), "d" (__r3), "d" (__r4) : "cc", "memory" ); __result; });
3637}
3638
3639
3640
3641
3642static inline void
3643__attribute__ ((always_inline))
3644__lll_mutex_unlock_force (int *futex)
3645{
3646 *futex = 0;
3647 ({ register unsigned long int __r2 asm ("2") = (unsigned long int) (futex); register unsigned long int __r3 asm ("3") = 1; register unsigned long int __r4 asm ("4") = (unsigned long int) (1); register unsigned long int __result asm ("2"); __asm __volatile ("svc %b1" : "=d" (__result) : "i" (238), "0" (__r2), "d" (__r3), "d" (__r4) : "cc", "memory" ); __result; });
3648}
3649# 310 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h"
3650typedef int lll_lock_t;
3651# 321 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h"
3652extern int lll_unlock_wake_cb (int *__futex) __attribute__ ((visibility ("hidden")));
3653# 333 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h"
3654static inline void
3655__attribute__ ((always_inline))
3656__lll_wait_tid (int *ptid)
3657{
3658 int tid;
3659
3660 while ((tid = *ptid) != 0)
3661 ({ register unsigned long int __r2 asm ("2") = (unsigned long int) (ptid); register unsigned long int __r3 asm ("3") = 0; register unsigned long int __r4 asm ("4") = (unsigned long int) (tid); register unsigned long int __r5 asm ("5") = 0ul; register unsigned long __result asm ("2"); __asm __volatile ("svc %b1" : "=d" (__result) : "i" (238), "0" (__r2), "d" (__r3), "d" (__r4), "d" (__r5) : "cc", "memory" ); __result; });
3662}
3663
3664
3665extern int __lll_timedwait_tid (int *, const struct timespec *)
3666 __attribute__ ((visibility ("hidden")));
3667# 357 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h"
3668extern void __lll_cond_wait (pthread_cond_t *cond)
3669 __attribute__ ((visibility ("hidden")));
3670extern int __lll_cond_timedwait (pthread_cond_t *cond,
3671 const struct timespec *abstime)
3672 __attribute__ ((visibility ("hidden")));
3673extern void __lll_cond_wake (pthread_cond_t *cond)
3674 __attribute__ ((visibility ("hidden")));
3675extern void __lll_cond_broadcast (pthread_cond_t *cond)
3676 __attribute__ ((visibility ("hidden")));
3677# 31 "../nptl/descr.h" 2
3678# 1 "../nptl/sysdeps/s390/pthreaddef.h" 1
3679# 32 "../nptl/descr.h" 2
3680# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
3681# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
3682# 1 "../sysdeps/generic/dl-sysdep.h" 1
3683# 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
3684# 33 "../nptl/descr.h" 2
3685# 1 "../nptl/../nptl_db/thread_db.h" 1
3686# 26 "../nptl/../nptl_db/thread_db.h"
3687# 1 "../include/pthread.h" 1
3688# 1 "../nptl/sysdeps/pthread/pthread.h" 1
3689# 27 "../nptl/sysdeps/pthread/pthread.h"
3690# 1 "../include/signal.h" 1
3691
3692
3693# 1 "../signal/signal.h" 1
3694# 31 "../signal/signal.h"
3695
3696
3697# 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1
3698# 34 "../signal/signal.h" 2
3699# 400 "../signal/signal.h"
3700
3701# 4 "../include/signal.h" 2
3702# 28 "../nptl/sysdeps/pthread/pthread.h" 2
3703
3704
3705# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
3706# 31 "../nptl/sysdeps/pthread/pthread.h" 2
3707
3708
3709
3710enum
3711{
3712 PTHREAD_CREATE_JOINABLE,
3713
3714 PTHREAD_CREATE_DETACHED
3715
3716};
3717
3718
3719
3720enum
3721{
3722 PTHREAD_MUTEX_TIMED_NP,
3723 PTHREAD_MUTEX_RECURSIVE_NP,
3724 PTHREAD_MUTEX_ERRORCHECK_NP,
3725 PTHREAD_MUTEX_ADAPTIVE_NP
3726
3727 ,
3728 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
3729 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
3730 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
3731 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
3732
3733
3734
3735 , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
3736
3737};
3738
3739
3740
3741
3742enum
3743{
3744 PTHREAD_MUTEX_STALLED_NP,
3745 PTHREAD_MUTEX_ROBUST_NP
3746};
3747
3748
3749
3750
3751
3752enum
3753{
3754 PTHREAD_PRIO_NONE,
3755 PTHREAD_PRIO_INHERIT,
3756 PTHREAD_PRIO_PROTECT
3757};
3758# 113 "../nptl/sysdeps/pthread/pthread.h"
3759enum
3760{
3761 PTHREAD_RWLOCK_PREFER_READER_NP,
3762 PTHREAD_RWLOCK_PREFER_WRITER_NP,
3763 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
3764 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
3765};
3766# 143 "../nptl/sysdeps/pthread/pthread.h"
3767enum
3768{
3769 PTHREAD_INHERIT_SCHED,
3770
3771 PTHREAD_EXPLICIT_SCHED
3772
3773};
3774
3775
3776
3777enum
3778{
3779 PTHREAD_SCOPE_SYSTEM,
3780
3781 PTHREAD_SCOPE_PROCESS
3782
3783};
3784
3785
3786
3787enum
3788{
3789 PTHREAD_PROCESS_PRIVATE,
3790
3791 PTHREAD_PROCESS_SHARED
3792
3793};
3794# 178 "../nptl/sysdeps/pthread/pthread.h"
3795struct _pthread_cleanup_buffer
3796{
3797 void (*__routine) (void *);
3798 void *__arg;
3799 int __canceltype;
3800 struct _pthread_cleanup_buffer *__prev;
3801};
3802
3803
3804enum
3805{
3806 PTHREAD_CANCEL_ENABLE,
3807
3808 PTHREAD_CANCEL_DISABLE
3809
3810};
3811enum
3812{
3813 PTHREAD_CANCEL_DEFERRED,
3814
3815 PTHREAD_CANCEL_ASYNCHRONOUS
3816
3817};
3818# 216 "../nptl/sysdeps/pthread/pthread.h"
3819
3820
3821
3822
3823
3824extern int pthread_create (pthread_t *__restrict __newthread,
3825 __const pthread_attr_t *__restrict __attr,
3826 void *(*__start_routine) (void *),
3827 void *__restrict __arg) __attribute__ ((__nothrow__));
3828
3829
3830
3831
3832
3833extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
3834
3835
3836
3837
3838
3839
3840
3841extern int pthread_join (pthread_t __th, void **__thread_return);
3842
3843
3844
3845
3846extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__));
3847
3848
3849
3850
3851
3852
3853
3854extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
3855 __const struct timespec *__abstime);
3856
3857
3858
3859
3860
3861
3862extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__));
3863
3864
3865
3866extern pthread_t pthread_self (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3867
3868
3869extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__));
3870
3871
3872
3873
3874
3875
3876
3877extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__));
3878
3879
3880extern int pthread_attr_destroy (pthread_attr_t *__attr) __attribute__ ((__nothrow__));
3881
3882
3883extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
3884 int *__detachstate) __attribute__ ((__nothrow__));
3885
3886
3887extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
3888 int __detachstate) __attribute__ ((__nothrow__));
3889
3890
3891
3892extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
3893 size_t *__guardsize) __attribute__ ((__nothrow__));
3894
3895
3896extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
3897 size_t __guardsize) __attribute__ ((__nothrow__));
3898
3899
3900
3901extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
3902 __attr,
3903 struct sched_param *__restrict __param)
3904 __attribute__ ((__nothrow__));
3905
3906
3907extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
3908 __const struct sched_param *__restrict
3909 __param) __attribute__ ((__nothrow__));
3910
3911
3912extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
3913 __attr, int *__restrict __policy)
3914 __attribute__ ((__nothrow__));
3915
3916
3917extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
3918 __attribute__ ((__nothrow__));
3919
3920
3921extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
3922 __attr, int *__restrict __inherit)
3923 __attribute__ ((__nothrow__));
3924
3925
3926extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
3927 int __inherit) __attribute__ ((__nothrow__));
3928
3929
3930
3931extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
3932 int *__restrict __scope) __attribute__ ((__nothrow__));
3933
3934
3935extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
3936 __attribute__ ((__nothrow__));
3937
3938
3939extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
3940 __attr, void **__restrict __stackaddr)
3941 __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
3942
3943
3944
3945
3946
3947extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
3948 void *__stackaddr)
3949 __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
3950
3951
3952extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
3953 __attr, size_t *__restrict __stacksize)
3954 __attribute__ ((__nothrow__));
3955
3956
3957
3958
3959extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
3960 size_t __stacksize) __attribute__ ((__nothrow__));
3961
3962
3963
3964extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
3965 void **__restrict __stackaddr,
3966 size_t *__restrict __stacksize) __attribute__ ((__nothrow__));
3967
3968
3969
3970
3971extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
3972 size_t __stacksize) __attribute__ ((__nothrow__));
3973
3974
3975
3976
3977
3978extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
3979 size_t __cpusetsize,
3980 __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
3981
3982
3983
3984extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
3985 size_t __cpusetsize,
3986 cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
3987
3988
3989
3990
3991
3992extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) __attribute__ ((__nothrow__));
3993
3994
3995
3996
3997
3998
3999
4000extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
4001 __const struct sched_param *__param)
4002 __attribute__ ((__nothrow__));
4003
4004
4005extern int pthread_getschedparam (pthread_t __target_thread,
4006 int *__restrict __policy,
4007 struct sched_param *__restrict __param)
4008 __attribute__ ((__nothrow__));
4009
4010
4011extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
4012 __attribute__ ((__nothrow__));
4013
4014
4015
4016
4017extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__));
4018
4019
4020extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__));
4021
4022
4023
4024
4025
4026
4027
4028extern int pthread_yield (void) __attribute__ ((__nothrow__));
4029
4030
4031
4032
4033extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
4034 __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
4035
4036
4037extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
4038 cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
4039# 448 "../nptl/sysdeps/pthread/pthread.h"
4040extern int pthread_once (pthread_once_t *__once_control,
4041 void (*__init_routine) (void));
4042# 460 "../nptl/sysdeps/pthread/pthread.h"
4043extern int pthread_setcancelstate (int __state, int *__oldstate);
4044
4045
4046
4047extern int pthread_setcanceltype (int __type, int *__oldtype);
4048
4049
4050extern int pthread_cancel (pthread_t __th);
4051
4052
4053
4054
4055extern void pthread_testcancel (void);
4056
4057
4058
4059
4060typedef struct
4061{
4062 struct
4063 {
4064 __jmp_buf __cancel_jmp_buf;
4065 int __mask_was_saved;
4066 } __cancel_jmp_buf[1];
4067 void *__pad[4];
4068} __pthread_unwind_buf_t __attribute__ ((__aligned__));
4069# 494 "../nptl/sysdeps/pthread/pthread.h"
4070struct __pthread_cleanup_frame
4071{
4072 void (*__cancel_routine) (void *);
4073 void *__cancel_arg;
4074 int __do_it;
4075 int __cancel_type;
4076};
4077# 634 "../nptl/sysdeps/pthread/pthread.h"
4078extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
4079 ;
4080# 645 "../nptl/sysdeps/pthread/pthread.h"
4081extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
4082 ;
4083# 668 "../nptl/sysdeps/pthread/pthread.h"
4084extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
4085 ;
4086# 680 "../nptl/sysdeps/pthread/pthread.h"
4087extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
4088 ;
4089
4090
4091
4092extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
4093 __attribute__ ((__noreturn__))
4094
4095
4096
4097 ;
4098
4099
4100
4101struct __jmp_buf_tag;
4102extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__));
4103
4104
4105
4106
4107
4108extern int pthread_mutex_init (pthread_mutex_t *__mutex,
4109 __const pthread_mutexattr_t *__mutexattr)
4110 __attribute__ ((__nothrow__));
4111
4112
4113extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__));
4114
4115
4116extern int pthread_mutex_trylock (pthread_mutex_t *_mutex) __attribute__ ((__nothrow__));
4117
4118
4119extern int pthread_mutex_lock (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__));
4120
4121
4122
4123extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
4124 __const struct timespec *__restrict
4125 __abstime) __attribute__ ((__nothrow__));
4126
4127
4128
4129extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__));
4130
4131
4132
4133
4134extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
4135 __restrict __mutex,
4136 int *__restrict __prioceiling)
4137 __attribute__ ((__nothrow__));
4138
4139
4140
4141extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
4142 int __prioceiling,
4143 int *__restrict __old_ceiling)
4144 __attribute__ ((__nothrow__));
4145
4146
4147
4148
4149
4150extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__));
4151
4152
4153
4154
4155
4156
4157
4158extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) __attribute__ ((__nothrow__));
4159
4160
4161extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __attribute__ ((__nothrow__));
4162
4163
4164extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
4165 __restrict __attr,
4166 int *__restrict __pshared) __attribute__ ((__nothrow__));
4167
4168
4169extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
4170 int __pshared) __attribute__ ((__nothrow__));
4171
4172
4173
4174extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
4175 __attr, int *__restrict __kind) __attribute__ ((__nothrow__));
4176
4177
4178
4179
4180extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
4181 __attribute__ ((__nothrow__));
4182
4183
4184extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
4185 __restrict __attr,
4186 int *__restrict __protocol) __attribute__ ((__nothrow__));
4187
4188
4189
4190extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
4191 int __protocol) __attribute__ ((__nothrow__));
4192
4193
4194extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
4195 __restrict __attr,
4196 int *__restrict __prioceiling)
4197 __attribute__ ((__nothrow__));
4198
4199
4200extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
4201 int __prioceiling) __attribute__ ((__nothrow__));
4202
4203
4204
4205
4206extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
4207 int *__robustness) __attribute__ ((__nothrow__));
4208
4209
4210extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
4211 int __robustness) __attribute__ ((__nothrow__));
4212# 813 "../nptl/sysdeps/pthread/pthread.h"
4213extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
4214 __const pthread_rwlockattr_t *__restrict
4215 __attr) __attribute__ ((__nothrow__));
4216
4217
4218extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));
4219
4220
4221extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));
4222
4223
4224extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));
4225
4226
4227
4228extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
4229 __const struct timespec *__restrict
4230 __abstime) __attribute__ ((__nothrow__));
4231
4232
4233
4234extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));
4235
4236
4237extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));
4238
4239
4240
4241extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
4242 __const struct timespec *__restrict
4243 __abstime) __attribute__ ((__nothrow__));
4244
4245
4246
4247extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));
4248
4249
4250
4251
4252
4253extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) __attribute__ ((__nothrow__));
4254
4255
4256extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __attribute__ ((__nothrow__));
4257
4258
4259extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
4260 __restrict __attr,
4261 int *__restrict __pshared) __attribute__ ((__nothrow__));
4262
4263
4264extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
4265 int __pshared) __attribute__ ((__nothrow__));
4266
4267
4268extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
4269 __restrict __attr,
4270 int *__restrict __pref) __attribute__ ((__nothrow__));
4271
4272
4273extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
4274 int __pref) __attribute__ ((__nothrow__));
4275
4276
4277
4278
4279
4280
4281
4282extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
4283 __const pthread_condattr_t *__restrict
4284 __cond_attr) __attribute__ ((__nothrow__));
4285
4286
4287extern int pthread_cond_destroy (pthread_cond_t *__cond) __attribute__ ((__nothrow__));
4288
4289
4290extern int pthread_cond_signal (pthread_cond_t *__cond) __attribute__ ((__nothrow__));
4291
4292
4293extern int pthread_cond_broadcast (pthread_cond_t *__cond) __attribute__ ((__nothrow__));
4294
4295
4296
4297
4298
4299
4300extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
4301 pthread_mutex_t *__restrict __mutex);
4302# 910 "../nptl/sysdeps/pthread/pthread.h"
4303extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
4304 pthread_mutex_t *__restrict __mutex,
4305 __const struct timespec *__restrict
4306 __abstime);
4307
4308
4309
4310
4311extern int pthread_condattr_init (pthread_condattr_t *__attr) __attribute__ ((__nothrow__));
4312
4313
4314extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __attribute__ ((__nothrow__));
4315
4316
4317extern int pthread_condattr_getpshared (__const pthread_condattr_t *
4318 __restrict __attr,
4319 int *__restrict __pshared) __attribute__ ((__nothrow__));
4320
4321
4322extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
4323 int __pshared) __attribute__ ((__nothrow__));
4324
4325
4326
4327extern int pthread_condattr_getclock (__const pthread_condattr_t *
4328 __restrict __attr,
4329 __clockid_t *__restrict __clock_id)
4330 __attribute__ ((__nothrow__));
4331
4332
4333extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
4334 __clockid_t __clock_id) __attribute__ ((__nothrow__));
4335# 951 "../nptl/sysdeps/pthread/pthread.h"
4336extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
4337 __attribute__ ((__nothrow__));
4338
4339
4340extern int pthread_spin_destroy (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__));
4341
4342
4343extern int pthread_spin_lock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__));
4344
4345
4346extern int pthread_spin_trylock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__));
4347
4348
4349extern int pthread_spin_unlock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__));
4350
4351
4352
4353
4354
4355
4356extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
4357 __const pthread_barrierattr_t *__restrict
4358 __attr, unsigned int __count) __attribute__ ((__nothrow__));
4359
4360
4361extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __attribute__ ((__nothrow__));
4362
4363
4364extern int pthread_barrier_wait (pthread_barrier_t *__barrier) __attribute__ ((__nothrow__));
4365
4366
4367
4368extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) __attribute__ ((__nothrow__));
4369
4370
4371extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __attribute__ ((__nothrow__));
4372
4373
4374extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
4375 __restrict __attr,
4376 int *__restrict __pshared) __attribute__ ((__nothrow__));
4377
4378
4379extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
4380 int __pshared) __attribute__ ((__nothrow__));
4381# 1007 "../nptl/sysdeps/pthread/pthread.h"
4382extern int pthread_key_create (pthread_key_t *__key,
4383 void (*__destr_function) (void *)) __attribute__ ((__nothrow__));
4384
4385
4386extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__));
4387
4388
4389extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__));
4390
4391
4392extern int pthread_setspecific (pthread_key_t __key,
4393 __const void *__pointer) __attribute__ ((__nothrow__));
4394
4395
4396
4397
4398extern int pthread_getcpuclockid (pthread_t __thread_id,
4399 __clockid_t *__clock_id) __attribute__ ((__nothrow__));
4400# 1039 "../nptl/sysdeps/pthread/pthread.h"
4401extern int pthread_atfork (void (*__prepare) (void),
4402 void (*__parent) (void),
4403 void (*__child) (void)) __attribute__ ((__nothrow__));
4404
4405
4406# 2 "../include/pthread.h" 2
4407
4408
4409extern void __pthread_initialize (void) __attribute__ ((weak));
4410# 27 "../nptl/../nptl_db/thread_db.h" 2
4411
4412# 1 "../include/sys/types.h" 1
4413# 29 "../nptl/../nptl_db/thread_db.h" 2
4414# 1 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 1
4415# 32 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h"
4416# 1 "../include/sys/time.h" 1
4417
4418# 1 "../time/sys/time.h" 1
4419# 29 "../time/sys/time.h"
4420# 1 "../bits/time.h" 1
4421# 30 "../time/sys/time.h" 2
4422# 39 "../time/sys/time.h"
4423
4424# 57 "../time/sys/time.h"
4425struct timezone
4426 {
4427 int tz_minuteswest;
4428 int tz_dsttime;
4429 };
4430
4431typedef struct timezone *__restrict __timezone_ptr_t;
4432# 73 "../time/sys/time.h"
4433extern int gettimeofday (struct timeval *__restrict __tv,
4434 __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4435
4436
4437
4438
4439extern int settimeofday (__const struct timeval *__tv,
4440 __const struct timezone *__tz)
4441 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4442
4443
4444
4445
4446
4447extern int adjtime (__const struct timeval *__delta,
4448 struct timeval *__olddelta) __attribute__ ((__nothrow__));
4449
4450
4451
4452
4453enum __itimer_which
4454 {
4455
4456 ITIMER_REAL = 0,
4457
4458
4459 ITIMER_VIRTUAL = 1,
4460
4461
4462
4463 ITIMER_PROF = 2
4464
4465 };
4466
4467
4468
4469struct itimerval
4470 {
4471
4472 struct timeval it_interval;
4473
4474 struct timeval it_value;
4475 };
4476
4477
4478
4479
4480typedef enum __itimer_which __itimer_which_t;
4481
4482
4483
4484
4485
4486
4487extern int getitimer (__itimer_which_t __which,
4488 struct itimerval *__value) __attribute__ ((__nothrow__));
4489
4490
4491
4492
4493extern int setitimer (__itimer_which_t __which,
4494 __const struct itimerval *__restrict __new,
4495 struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
4496
4497
4498
4499
4500extern int utimes (__const char *__file, __const struct timeval __tvp[2])
4501 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4502
4503
4504
4505extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
4506 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4507
4508
4509extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
4510
4511
4512
4513
4514
4515
4516extern int futimesat (int __fd, __const char *__file,
4517 __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
4518# 191 "../time/sys/time.h"
4519
4520# 3 "../include/sys/time.h" 2
4521
4522
4523extern int __gettimeofday (struct timeval *__tv,
4524 struct timezone *__tz);
4525extern int __gettimeofday_internal (struct timeval *__tv,
4526 struct timezone *__tz)
4527 __attribute__ ((visibility ("hidden")));
4528extern int __settimeofday (__const struct timeval *__tv,
4529 __const struct timezone *__tz)
4530 __attribute__ ((visibility ("hidden")));
4531extern int __adjtime (__const struct timeval *__delta,
4532 struct timeval *__olddelta);
4533extern int __getitimer (enum __itimer_which __which,
4534 struct itimerval *__value);
4535extern int __setitimer (enum __itimer_which __which,
4536 __const struct itimerval *__restrict __new,
4537 struct itimerval *__restrict __old)
4538 __attribute__ ((visibility ("hidden")));
4539extern int __utimes (__const char *__file, const struct timeval __tvp[2])
4540 __attribute__ ((visibility ("hidden")));
4541extern int __futimes (int fd, __const struct timeval tvp[2]) __attribute__ ((visibility ("hidden")));
4542# 33 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 2
4543# 1 "../include/sys/types.h" 1
4544# 34 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 2
4545# 1 "../sysdeps/unix/sysv/linux/s390/sys/user.h" 1
4546# 26 "../sysdeps/unix/sysv/linux/s390/sys/user.h"
4547struct _user_psw_struct
4548{
4549 unsigned long mask;
4550 unsigned long addr;
4551};
4552
4553struct _user_fpregs_struct
4554{
4555 unsigned int fpc;
4556 double fprs[16];
4557};
4558
4559struct _user_per_struct
4560{
4561 unsigned long control_regs[3];
4562 unsigned single_step : 1;
4563 unsigned instruction_fetch : 1;
4564 unsigned : 30;
4565 unsigned long starting_addr;
4566 unsigned long ending_addr;
4567 unsigned short perc_atmid;
4568 unsigned long address;
4569 unsigned char access_id;
4570};
4571
4572struct _user_regs_struct
4573{
4574 struct _user_psw_struct psw;
4575 unsigned long gprs[16];
4576 unsigned int acrs[16];
4577 unsigned long orig_gpr2;
4578 struct _user_fpregs_struct fp_regs;
4579 struct _user_per_struct per_info;
4580 unsigned long ieee_instruction_pointer;
4581};
4582
4583struct user {
4584 struct _user_regs_struct regs;
4585 unsigned long int u_tsize;
4586 unsigned long int u_dsize;
4587 unsigned long int u_ssize;
4588 unsigned long start_code;
4589 unsigned long start_stack;
4590 long int signal;
4591 struct _user_regs_struct *u_ar0;
4592 unsigned long magic;
4593 char u_comm[32];
4594};
4595# 35 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 2
4596# 1 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 1
4597# 23 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h"
4598struct ucontext;
4599typedef struct ucontext ucontext_t;
4600
4601# 1 "../include/signal.h" 1
4602
4603
4604
4605
4606# 1 "../signal/signal.h" 1
4607# 31 "../signal/signal.h"
4608
4609
4610# 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1
4611# 103 "../sysdeps/unix/sysv/linux/bits/sigset.h"
4612extern int __sigismember (__const __sigset_t *, int);
4613extern int __sigaddset (__sigset_t *, int);
4614extern int __sigdelset (__sigset_t *, int);
4615# 117 "../sysdeps/unix/sysv/linux/bits/sigset.h"
4616extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; }
4617extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); }
4618extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); }
4619# 34 "../signal/signal.h" 2
4620
4621
4622
4623
4624
4625
4626
4627typedef __sig_atomic_t sig_atomic_t;
4628
4629# 58 "../signal/signal.h"
4630# 1 "../sysdeps/unix/sysv/linux/bits/signum.h" 1
4631# 59 "../signal/signal.h" 2
4632# 75 "../signal/signal.h"
4633typedef void (*__sighandler_t) (int);
4634
4635
4636
4637
4638extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
4639 __attribute__ ((__nothrow__));
4640
4641extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler)
4642 __attribute__ ((__nothrow__));
4643
4644
4645
4646
4647
4648
4649
4650extern __sighandler_t signal (int __sig, __sighandler_t __handler)
4651 __attribute__ ((__nothrow__));
4652# 104 "../signal/signal.h"
4653
4654
4655
4656
4657
4658extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler)
4659 __attribute__ ((__nothrow__));
4660
4661
4662
4663
4664
4665
4666extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__));
4667
4668
4669
4670
4671
4672
4673extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__));
4674
4675
4676
4677
4678extern int raise (int __sig) __attribute__ ((__nothrow__));
4679
4680
4681
4682
4683extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
4684 __attribute__ ((__nothrow__));
4685extern int gsignal (int __sig) __attribute__ ((__nothrow__));
4686
4687
4688
4689
4690extern void psignal (int __sig, __const char *__s);
4691# 153 "../signal/signal.h"
4692extern int __sigpause (int __sig_or_mask, int __is_sig);
4693# 162 "../signal/signal.h"
4694extern int sigpause (int __sig) __asm__ ("__xpg_sigpause");
4695# 181 "../signal/signal.h"
4696extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
4697
4698
4699extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
4700
4701
4702extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
4703# 196 "../signal/signal.h"
4704typedef __sighandler_t sighandler_t;
4705
4706
4707
4708
4709typedef __sighandler_t sig_t;
4710# 212 "../signal/signal.h"
4711# 1 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h" 1
4712# 25 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h"
4713# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
4714# 26 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h" 2
4715
4716
4717
4718
4719
4720
4721
4722typedef union sigval
4723 {
4724 int sival_int;
4725 void *sival_ptr;
4726 } sigval_t;
4727# 51 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h"
4728typedef struct siginfo
4729 {
4730 int si_signo;
4731 int si_errno;
4732
4733 int si_code;
4734
4735 union
4736 {
4737 int _pad[((128 / sizeof (int)) - 4)];
4738
4739
4740 struct
4741 {
4742 __pid_t si_pid;
4743 __uid_t si_uid;
4744 } _kill;
4745
4746
4747 struct
4748 {
4749 int si_tid;
4750 int si_overrun;
4751 sigval_t si_sigval;
4752 } _timer;
4753
4754
4755 struct
4756 {
4757 __pid_t si_pid;
4758 __uid_t si_uid;
4759 sigval_t si_sigval;
4760 } _rt;
4761
4762
4763 struct
4764 {
4765 __pid_t si_pid;
4766 __uid_t si_uid;
4767 int si_status;
4768 __clock_t si_utime;
4769 __clock_t si_stime;
4770 } _sigchld;
4771
4772
4773 struct
4774 {
4775 void *si_addr;
4776 int si_trapno;
4777 } _sigfault;
4778
4779
4780 struct
4781 {
4782 long int si_band;
4783 int si_fd;
4784 } _sigpoll;
4785 } _sifields;
4786 } siginfo_t;
4787# 131 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h"
4788enum
4789{
4790 SI_ASYNCNL = -60,
4791
4792 SI_TKILL = -6,
4793
4794 SI_SIGIO,
4795
4796 SI_ASYNCIO,
4797
4798 SI_MESGQ,
4799
4800 SI_TIMER,
4801
4802 SI_QUEUE,
4803
4804 SI_USER,
4805
4806 SI_KERNEL = 0x80
4807
4808};
4809
4810
4811
4812enum
4813{
4814 ILL_ILLOPC = 1,
4815
4816 ILL_ILLOPN,
4817
4818 ILL_ILLADR,
4819
4820 ILL_ILLTRP,
4821
4822 ILL_PRVOPC,
4823
4824 ILL_PRVREG,
4825
4826 ILL_COPROC,
4827
4828 ILL_BADSTK
4829
4830};
4831
4832
4833enum
4834{
4835 FPE_INTDIV = 1,
4836
4837 FPE_INTOVF,
4838
4839 FPE_FLTDIV,
4840
4841 FPE_FLTOVF,
4842
4843 FPE_FLTUND,
4844
4845 FPE_FLTRES,
4846
4847 FPE_FLTINV,
4848
4849 FPE_FLTSUB
4850
4851};
4852
4853
4854enum
4855{
4856 SEGV_MAPERR = 1,
4857
4858 SEGV_ACCERR
4859
4860};
4861
4862
4863enum
4864{
4865 BUS_ADRALN = 1,
4866
4867 BUS_ADRERR,
4868
4869 BUS_OBJERR
4870
4871};
4872
4873
4874enum
4875{
4876 TRAP_BRKPT = 1,
4877
4878 TRAP_TRACE
4879
4880};
4881
4882
4883enum
4884{
4885 CLD_EXITED = 1,
4886
4887 CLD_KILLED,
4888
4889 CLD_DUMPED,
4890
4891 CLD_TRAPPED,
4892
4893 CLD_STOPPED,
4894
4895 CLD_CONTINUED
4896
4897};
4898
4899
4900enum
4901{
4902 POLL_IN = 1,
4903
4904 POLL_OUT,
4905
4906 POLL_MSG,
4907
4908 POLL_ERR,
4909
4910 POLL_PRI,
4911
4912 POLL_HUP
4913
4914};
4915# 275 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h"
4916typedef struct sigevent
4917 {
4918 sigval_t sigev_value;
4919 int sigev_signo;
4920 int sigev_notify;
4921
4922 union
4923 {
4924 int _pad[((64 / sizeof (int)) - 4)];
4925
4926 struct
4927 {
4928 void (*_function) (sigval_t);
4929 void *_attribute;
4930 } _sigev_thread;
4931 } _sigev_un;
4932 } sigevent_t;
4933
4934
4935
4936
4937
4938
4939enum
4940{
4941 SIGEV_SIGNAL = 0,
4942
4943 SIGEV_NONE,
4944
4945 SIGEV_THREAD,
4946
4947
4948 SIGEV_THREAD_ID = 4
4949
4950};
4951# 213 "../signal/signal.h" 2
4952
4953
4954
4955extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4956
4957
4958extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4959
4960
4961extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4962
4963
4964extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4965
4966
4967extern int sigismember (__const sigset_t *__set, int __signo)
4968 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4969
4970
4971
4972extern int sigisemptyset (__const sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
4973
4974
4975extern int sigandset (sigset_t *__set, __const sigset_t *__left,
4976 __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3)));
4977
4978
4979extern int sigorset (sigset_t *__set, __const sigset_t *__left,
4980 __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3)));
4981
4982
4983
4984
4985# 1 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" 1
4986# 24 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h"
4987# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
4988# 25 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" 2
4989
4990
4991
4992struct sigaction
4993 {
4994
4995
4996 union
4997 {
4998
4999 __sighandler_t sa_handler;
5000
5001 void (*sa_sigaction) (int, siginfo_t *, void *);
5002 }
5003 __sigaction_handler;
5004
5005
5006
5007
5008
5009
5010
5011 unsigned long int sa_flags;
5012
5013
5014 void (*sa_restorer) (void);
5015
5016
5017 __sigset_t sa_mask;
5018 };
5019# 247 "../signal/signal.h" 2
5020
5021
5022extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
5023 sigset_t *__restrict __oset) __attribute__ ((__nothrow__));
5024
5025
5026
5027
5028
5029
5030extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1)));
5031
5032
5033extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
5034 struct sigaction *__restrict __oact) __attribute__ ((__nothrow__));
5035
5036
5037extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5038
5039
5040
5041
5042
5043
5044extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
5045 __attribute__ ((__nonnull__ (1, 2)));
5046
5047
5048
5049
5050
5051
5052extern int sigwaitinfo (__const sigset_t *__restrict __set,
5053 siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));
5054
5055
5056
5057
5058
5059
5060extern int sigtimedwait (__const sigset_t *__restrict __set,
5061 siginfo_t *__restrict __info,
5062 __const struct timespec *__restrict __timeout)
5063 __attribute__ ((__nonnull__ (1)));
5064
5065
5066
5067extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
5068 __attribute__ ((__nothrow__));
5069# 304 "../signal/signal.h"
5070extern __const char *__const _sys_siglist[65];
5071extern __const char *__const sys_siglist[65];
5072
5073
5074struct sigvec
5075 {
5076 __sighandler_t sv_handler;
5077 int sv_mask;
5078
5079 int sv_flags;
5080
5081 };
5082# 328 "../signal/signal.h"
5083extern int sigvec (int __sig, __const struct sigvec *__vec,
5084 struct sigvec *__ovec) __attribute__ ((__nothrow__));
5085
5086
5087
5088# 1 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 1
5089# 28 "../sysdeps/unix/sysv/linux/bits/sigcontext.h"
5090# 1 "/usr/include/asm/sigcontext.h" 1 3 4
5091# 37 "/usr/include/asm/sigcontext.h" 3 4
5092typedef struct
5093{
5094 unsigned long mask;
5095 unsigned long addr;
5096} __attribute__ ((aligned(8))) _psw_t;
5097
5098typedef struct
5099{
5100 _psw_t psw;
5101 unsigned long gprs[16];
5102 unsigned int acrs[16];
5103} _s390_regs_common;
5104
5105typedef struct
5106{
5107 unsigned int fpc;
5108 double fprs[16];
5109} _s390_fp_regs;
5110
5111typedef struct
5112{
5113 _s390_regs_common regs;
5114 _s390_fp_regs fpregs;
5115} _sigregs;
5116
5117struct sigcontext
5118{
5119 unsigned long oldmask[(64 / 64)];
5120 _sigregs *sregs;
5121};
5122# 29 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 2
5123# 334 "../signal/signal.h" 2
5124
5125
5126extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__));
5127# 346 "../signal/signal.h"
5128extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__));
5129
5130# 1 "../sysdeps/unix/sysv/linux/bits/sigstack.h" 1
5131# 26 "../sysdeps/unix/sysv/linux/bits/sigstack.h"
5132struct sigstack
5133 {
5134 void *ss_sp;
5135 int ss_onstack;
5136 };
5137
5138
5139
5140enum
5141{
5142 SS_ONSTACK = 1,
5143
5144 SS_DISABLE
5145
5146};
5147# 50 "../sysdeps/unix/sysv/linux/bits/sigstack.h"
5148typedef struct sigaltstack
5149 {
5150 void *ss_sp;
5151 int ss_flags;
5152 size_t ss_size;
5153 } stack_t;
5154# 349 "../signal/signal.h" 2
5155
5156
5157# 1 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 1
5158# 352 "../signal/signal.h" 2
5159
5160
5161
5162
5163
5164extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
5165 __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
5166
5167
5168
5169extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
5170 struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__));
5171
5172
5173
5174
5175
5176
5177
5178extern int sighold (int __sig) __attribute__ ((__nothrow__));
5179
5180
5181extern int sigrelse (int __sig) __attribute__ ((__nothrow__));
5182
5183
5184extern int sigignore (int __sig) __attribute__ ((__nothrow__));
5185
5186
5187extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__));
5188
5189
5190
5191
5192
5193
5194# 1 "../nptl/sysdeps/pthread/bits/sigthread.h" 1
5195# 31 "../nptl/sysdeps/pthread/bits/sigthread.h"
5196extern int pthread_sigmask (int __how,
5197 __const __sigset_t *__restrict __newmask,
5198 __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__));
5199
5200
5201extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__));
5202# 388 "../signal/signal.h" 2
5203
5204
5205
5206
5207
5208
5209extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__));
5210
5211extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__));
5212
5213
5214
5215
5216# 6 "../include/signal.h" 2
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler);
5230extern int __kill (__pid_t __pid, int __sig);
5231extern int __sigaction (int __sig, __const struct sigaction *__restrict __act,
5232 struct sigaction *__restrict __oact);
5233
5234extern int __sigblock (int __mask);
5235extern int __sigsetmask (int __mask);
5236extern int __sigprocmask (int __how,
5237 __const sigset_t *__set, sigset_t *__oset);
5238extern int __sigsuspend (__const sigset_t *__set);
5239
5240extern int __sigwait (__const sigset_t *__set, int *__sig);
5241
5242extern int __sigwaitinfo (__const sigset_t *__set, siginfo_t *__info);
5243
5244extern int __sigtimedwait (__const sigset_t *__set, siginfo_t *__info,
5245 __const struct timespec *__timeout);
5246
5247extern int __sigqueue (__pid_t __pid, int __sig,
5248 __const union sigval __val);
5249extern int __sigvec (int __sig, __const struct sigvec *__vec,
5250 struct sigvec *__ovec);
5251extern int __sigreturn (struct sigcontext *__scp);
5252extern int __sigaltstack (__const struct sigaltstack *__ss,
5253 struct sigaltstack *__oss);
5254extern int __libc_sigaction (int sig, const struct sigaction *act,
5255 struct sigaction *oact);
5256
5257
5258extern int __sigpause (int sig_or_mask, int is_sig);
5259extern int __default_sigpause (int mask);
5260extern int __xpg_sigpause (int sig);
5261
5262
5263
5264
5265
5266
5267
5268extern int __libc_allocate_rtsig (int __high);
5269# 27 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 2
5270
5271
5272
5273# 1 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 1
5274# 31 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 2
5275
5276
5277typedef struct
5278{
5279 unsigned long mask;
5280 unsigned long addr;
5281} __attribute__ ((aligned(8))) __psw_t;
5282
5283
5284typedef unsigned long greg_t;
5285# 53 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h"
5286typedef greg_t gregset_t[27] __attribute__ ((aligned(8)));
5287
5288typedef union
5289 {
5290 double d;
5291 float f;
5292 } fpreg_t;
5293
5294
5295typedef struct
5296 {
5297 unsigned int fpc;
5298 fpreg_t fprs[16];
5299 } fpregset_t;
5300
5301
5302typedef struct
5303 {
5304 __psw_t psw;
5305 unsigned long gregs[16];
5306 unsigned int aregs[16];
5307 fpregset_t fpregs;
5308 } mcontext_t;
5309
5310
5311struct ucontext
5312 {
5313 unsigned long int uc_flags;
5314 struct ucontext *uc_link;
5315 stack_t uc_stack;
5316 mcontext_t uc_mcontext;
5317 __sigset_t uc_sigmask;
5318 };
5319# 36 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 2
5320
5321
5322
5323typedef greg_t elf_greg_t;
5324
5325typedef gregset_t elf_gregset_t;
5326typedef fpreg_t elf_fpreg_t;
5327typedef fpregset_t elf_fpregset_t;
5328
5329
5330struct elf_siginfo
5331 {
5332 int si_signo;
5333 int si_code;
5334 int si_errno;
5335 };
5336# 61 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h"
5337struct elf_prstatus
5338 {
5339 struct elf_siginfo pr_info;
5340 short int pr_cursig;
5341 unsigned long int pr_sigpend;
5342 unsigned long int pr_sighold;
5343 __pid_t pr_pid;
5344 __pid_t pr_ppid;
5345 __pid_t pr_pgrp;
5346 __pid_t pr_sid;
5347 struct timeval pr_utime;
5348 struct timeval pr_stime;
5349 struct timeval pr_cutime;
5350 struct timeval pr_cstime;
5351 elf_gregset_t pr_reg;
5352 int pr_fpvalid;
5353 };
5354
5355
5356
5357
5358struct elf_prpsinfo
5359 {
5360 char pr_state;
5361 char pr_sname;
5362 char pr_zomb;
5363 char pr_nice;
5364 unsigned long int pr_flag;
5365
5366 unsigned int pr_uid;
5367 unsigned int pr_gid;
5368
5369
5370
5371
5372 int pr_pid, pr_ppid, pr_pgrp, pr_sid;
5373
5374 char pr_fname[16];
5375 char pr_psargs[(80)];
5376 };
5377
5378
5379
5380
5381
5382
5383typedef void *psaddr_t;
5384
5385
5386typedef elf_gregset_t prgregset_t;
5387typedef elf_fpregset_t prfpregset_t;
5388
5389
5390
5391typedef __pid_t lwpid_t;
5392
5393
5394typedef struct elf_prstatus prstatus_t;
5395typedef struct elf_prpsinfo prpsinfo_t;
5396
5397
5398
5399
5400
5401
5402typedef unsigned int elf_greg_t32;
5403typedef elf_greg_t32 elf_gregset_t32[36];
5404typedef elf_fpregset_t elf_fpregset_t32;
5405
5406struct elf_prstatus32
5407 {
5408 struct elf_siginfo pr_info;
5409 short int pr_cursig;
5410 unsigned int pr_sigpend;
5411 unsigned int pr_sighold;
5412 __pid_t pr_pid;
5413 __pid_t pr_ppid;
5414 __pid_t pr_pgrp;
5415 __pid_t pr_sid;
5416 struct
5417 {
5418 int tv_sec, tv_usec;
5419 } pr_utime,
5420 pr_stime,
5421 pr_cutime,
5422 pr_cstime;
5423 elf_gregset_t32 pr_reg;
5424 int pr_fpvalid;
5425 };
5426
5427struct elf_prpsinfo32
5428 {
5429 char pr_state;
5430 char pr_sname;
5431 char pr_zomb;
5432 char pr_nice;
5433 unsigned int pr_flag;
5434 unsigned short int pr_uid;
5435 unsigned short int pr_gid;
5436 int pr_pid, pr_ppid, pr_pgrp, pr_sid;
5437
5438 char pr_fname[16];
5439 char pr_psargs[(80)];
5440 };
5441
5442typedef elf_gregset_t32 prgregset32_t;
5443typedef elf_fpregset_t32 prfpregset32_t;
5444
5445typedef struct elf_prstatus32 prstatus32_t;
5446typedef struct elf_prpsinfo32 prpsinfo32_t;
5447
5448
5449
5450
5451# 30 "../nptl/../nptl_db/thread_db.h" 2
5452
5453
5454
5455typedef enum
5456{
5457 TD_OK,
5458 TD_ERR,
5459 TD_NOTHR,
5460 TD_NOSV,
5461 TD_NOLWP,
5462 TD_BADPH,
5463 TD_BADTH,
5464 TD_BADSH,
5465 TD_BADTA,
5466 TD_BADKEY,
5467 TD_NOMSG,
5468 TD_NOFPREGS,
5469 TD_NOLIBTHREAD,
5470 TD_NOEVENT,
5471 TD_NOCAPAB,
5472 TD_DBERR,
5473 TD_NOAPLIC,
5474 TD_NOTSD,
5475 TD_MALLOC,
5476 TD_PARTIALREG,
5477 TD_NOXREGS,
5478 TD_TLSDEFER,
5479 TD_NOTALLOC = TD_TLSDEFER,
5480 TD_VERSION,
5481 TD_NOTLS
5482} td_err_e;
5483
5484
5485
5486
5487typedef enum
5488{
5489 TD_THR_ANY_STATE,
5490 TD_THR_UNKNOWN,
5491 TD_THR_STOPPED,
5492 TD_THR_RUN,
5493 TD_THR_ACTIVE,
5494 TD_THR_ZOMBIE,
5495 TD_THR_SLEEP,
5496 TD_THR_STOPPED_ASLEEP
5497} td_thr_state_e;
5498
5499
5500
5501typedef enum
5502{
5503 TD_THR_ANY_TYPE,
5504 TD_THR_USER,
5505 TD_THR_SYSTEM
5506} td_thr_type_e;
5507
5508
5509
5510
5511
5512typedef struct td_thragent td_thragent_t;
5513
5514
5515typedef struct td_thrhandle
5516{
5517 td_thragent_t *th_ta_p;
5518 psaddr_t th_unique;
5519} td_thrhandle_t;
5520
5521
5522
5523struct link_map;
5524# 116 "../nptl/../nptl_db/thread_db.h"
5525typedef struct td_thr_events
5526{
5527 uint32_t event_bits[2];
5528} td_thr_events_t;
5529# 155 "../nptl/../nptl_db/thread_db.h"
5530typedef enum
5531{
5532 TD_ALL_EVENTS,
5533 TD_EVENT_NONE = TD_ALL_EVENTS,
5534 TD_READY,
5535 TD_SLEEP,
5536 TD_SWITCHTO,
5537 TD_SWITCHFROM,
5538 TD_LOCK_TRY,
5539 TD_CATCHSIG,
5540 TD_IDLE,
5541 TD_CREATE,
5542 TD_DEATH,
5543 TD_PREEMPT,
5544 TD_PRI_INHERIT,
5545 TD_REAP,
5546 TD_CONCURRENCY,
5547 TD_TIMEOUT,
5548 TD_MIN_EVENT_NUM = TD_READY,
5549 TD_MAX_EVENT_NUM = TD_TIMEOUT,
5550 TD_EVENTS_ENABLE = 31
5551} td_event_e;
5552
5553
5554typedef enum
5555{
5556 NOTIFY_BPT,
5557 NOTIFY_AUTOBPT,
5558
5559 NOTIFY_SYSCALL
5560} td_notify_e;
5561
5562
5563typedef struct td_notify
5564{
5565 td_notify_e type;
5566 union
5567 {
5568 psaddr_t bptaddr;
5569 int syscallno;
5570 } u;
5571} td_notify_t;
5572
5573
5574typedef struct td_event_msg
5575{
5576 td_event_e event;
5577 const td_thrhandle_t *th_p;
5578 union
5579 {
5580
5581
5582
5583 uintptr_t data;
5584 } msg;
5585} td_event_msg_t;
5586
5587
5588typedef struct
5589{
5590 td_thr_events_t eventmask;
5591 td_event_e eventnum;
5592 void *eventdata;
5593} td_eventbuf_t;
5594
5595
5596
5597typedef struct td_ta_stats
5598{
5599 int nthreads;
5600 int r_concurrency;
5601 int nrunnable_num;
5602 int nrunnable_den;
5603 int a_concurrency_num;
5604 int a_concurrency_den;
5605 int nlwps_num;
5606
5607 int nlwps_den;
5608
5609 int nidle_num;
5610
5611 int nidle_den;
5612
5613} td_ta_stats_t;
5614
5615
5616
5617
5618typedef pthread_t thread_t;
5619typedef pthread_key_t thread_key_t;
5620
5621
5622
5623typedef int td_thr_iter_f (const td_thrhandle_t *, void *);
5624
5625
5626typedef int td_key_iter_f (thread_key_t, void (*) (void *), void *);
5627
5628
5629
5630
5631struct ps_prochandle;
5632
5633
5634
5635typedef struct td_thrinfo
5636{
5637 td_thragent_t *ti_ta_p;
5638 unsigned int ti_user_flags;
5639 thread_t ti_tid;
5640
5641 char *ti_tls;
5642 psaddr_t ti_startfunc;
5643
5644 psaddr_t ti_stkbase;
5645 long int ti_stksize;
5646 psaddr_t ti_ro_area;
5647 int ti_ro_size;
5648 td_thr_state_e ti_state;
5649 unsigned char ti_db_suspended;
5650 td_thr_type_e ti_type;
5651
5652 intptr_t ti_pc;
5653 intptr_t ti_sp;
5654 short int ti_flags;
5655 int ti_pri;
5656 lwpid_t ti_lid;
5657 sigset_t ti_sigmask;
5658 unsigned char ti_traceme;
5659
5660 unsigned char ti_preemptflag;
5661 unsigned char ti_pirecflag;
5662 sigset_t ti_pending;
5663 td_thr_events_t ti_events;
5664} td_thrinfo_t;
5665
5666
5667
5668
5669
5670
5671extern td_err_e td_init (void);
5672
5673
5674extern td_err_e td_log (void);
5675
5676
5677extern const char **td_symbol_list (void);
5678
5679
5680extern td_err_e td_ta_new (struct ps_prochandle *__ps, td_thragent_t **__ta);
5681
5682
5683extern td_err_e td_ta_delete (td_thragent_t *__ta);
5684
5685
5686extern td_err_e td_ta_get_nthreads (const td_thragent_t *__ta, int *__np);
5687
5688
5689
5690extern td_err_e td_ta_get_ph (const td_thragent_t *__ta,
5691 struct ps_prochandle **__ph);
5692
5693
5694
5695extern td_err_e td_ta_map_id2thr (const td_thragent_t *__ta, pthread_t __pt,
5696 td_thrhandle_t *__th);
5697
5698
5699
5700extern td_err_e td_ta_map_lwp2thr (const td_thragent_t *__ta, lwpid_t __lwpid,
5701 td_thrhandle_t *__th);
5702
5703
5704
5705
5706extern td_err_e td_ta_thr_iter (const td_thragent_t *__ta,
5707 td_thr_iter_f *__callback, void *__cbdata_p,
5708 td_thr_state_e __state, int __ti_pri,
5709 sigset_t *__ti_sigmask_p,
5710 unsigned int __ti_user_flags);
5711
5712
5713extern td_err_e td_ta_tsd_iter (const td_thragent_t *__ta, td_key_iter_f *__ki,
5714 void *__p);
5715
5716
5717
5718extern td_err_e td_ta_event_addr (const td_thragent_t *__ta,
5719 td_event_e __event, td_notify_t *__ptr);
5720
5721
5722extern td_err_e td_ta_set_event (const td_thragent_t *__ta,
5723 td_thr_events_t *__event);
5724
5725
5726extern td_err_e td_ta_clear_event (const td_thragent_t *__ta,
5727 td_thr_events_t *__event);
5728
5729
5730extern td_err_e td_ta_event_getmsg (const td_thragent_t *__ta,
5731 td_event_msg_t *__msg);
5732
5733
5734
5735extern td_err_e td_ta_setconcurrency (const td_thragent_t *__ta, int __level);
5736
5737
5738
5739extern td_err_e td_ta_enable_stats (const td_thragent_t *__ta, int __enable);
5740
5741
5742extern td_err_e td_ta_reset_stats (const td_thragent_t *__ta);
5743
5744
5745extern td_err_e td_ta_get_stats (const td_thragent_t *__ta,
5746 td_ta_stats_t *__statsp);
5747
5748
5749
5750extern td_err_e td_thr_validate (const td_thrhandle_t *__th);
5751
5752
5753extern td_err_e td_thr_get_info (const td_thrhandle_t *__th,
5754 td_thrinfo_t *__infop);
5755
5756
5757extern td_err_e td_thr_getfpregs (const td_thrhandle_t *__th,
5758 prfpregset_t *__regset);
5759
5760
5761extern td_err_e td_thr_getgregs (const td_thrhandle_t *__th,
5762 prgregset_t __gregs);
5763
5764
5765extern td_err_e td_thr_getxregs (const td_thrhandle_t *__th, void *__xregs);
5766
5767
5768extern td_err_e td_thr_getxregsize (const td_thrhandle_t *__th, int *__sizep);
5769
5770
5771extern td_err_e td_thr_setfpregs (const td_thrhandle_t *__th,
5772 const prfpregset_t *__fpregs);
5773
5774
5775extern td_err_e td_thr_setgregs (const td_thrhandle_t *__th,
5776 prgregset_t __gregs);
5777
5778
5779extern td_err_e td_thr_setxregs (const td_thrhandle_t *__th,
5780 const void *__addr);
5781
5782
5783
5784extern td_err_e td_thr_tlsbase (const td_thrhandle_t *__th,
5785 unsigned long int __modid,
5786 psaddr_t *__base);
5787
5788
5789extern td_err_e td_thr_tls_get_addr (const td_thrhandle_t *__th,
5790 psaddr_t __map_address, size_t __offset,
5791 psaddr_t *__address);
5792
5793
5794
5795extern td_err_e td_thr_event_enable (const td_thrhandle_t *__th, int __event);
5796
5797
5798extern td_err_e td_thr_set_event (const td_thrhandle_t *__th,
5799 td_thr_events_t *__event);
5800
5801
5802extern td_err_e td_thr_clear_event (const td_thrhandle_t *__th,
5803 td_thr_events_t *__event);
5804
5805
5806extern td_err_e td_thr_event_getmsg (const td_thrhandle_t *__th,
5807 td_event_msg_t *__msg);
5808
5809
5810
5811extern td_err_e td_thr_setprio (const td_thrhandle_t *__th, int __prio);
5812
5813
5814
5815extern td_err_e td_thr_setsigpending (const td_thrhandle_t *__th,
5816 unsigned char __n, const sigset_t *__ss);
5817
5818
5819extern td_err_e td_thr_sigsetmask (const td_thrhandle_t *__th,
5820 const sigset_t *__ss);
5821
5822
5823
5824extern td_err_e td_thr_tsd (const td_thrhandle_t *__th,
5825 const thread_key_t __tk, void **__data);
5826
5827
5828
5829extern td_err_e td_thr_dbsuspend (const td_thrhandle_t *__th);
5830
5831
5832extern td_err_e td_thr_dbresume (const td_thrhandle_t *__th);
5833# 34 "../nptl/descr.h" 2
5834
5835
5836# 1 "../sysdeps/generic/unwind.h" 1
5837# 35 "../sysdeps/generic/unwind.h"
5838typedef unsigned _Unwind_Word __attribute__((__mode__(__word__)));
5839typedef signed _Unwind_Sword __attribute__((__mode__(__word__)));
5840
5841
5842
5843typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__)));
5844
5845typedef unsigned _Unwind_Internal_Ptr __attribute__((__mode__(__pointer__)));
5846
5847
5848
5849
5850
5851typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));
5852
5853
5854
5855typedef enum
5856{
5857 _URC_NO_REASON = 0,
5858 _URC_FOREIGN_EXCEPTION_CAUGHT = 1,
5859 _URC_FATAL_PHASE2_ERROR = 2,
5860 _URC_FATAL_PHASE1_ERROR = 3,
5861 _URC_NORMAL_STOP = 4,
5862 _URC_END_OF_STACK = 5,
5863 _URC_HANDLER_FOUND = 6,
5864 _URC_INSTALL_CONTEXT = 7,
5865 _URC_CONTINUE_UNWIND = 8
5866} _Unwind_Reason_Code;
5867# 72 "../sysdeps/generic/unwind.h"
5868struct _Unwind_Exception;
5869
5870typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code,
5871 struct _Unwind_Exception *);
5872
5873struct _Unwind_Exception
5874{
5875 _Unwind_Exception_Class exception_class;
5876 _Unwind_Exception_Cleanup_Fn exception_cleanup;
5877 _Unwind_Word private_1;
5878 _Unwind_Word private_2;
5879
5880
5881
5882
5883} __attribute__((__aligned__));
5884
5885
5886
5887
5888typedef int _Unwind_Action;
5889# 104 "../sysdeps/generic/unwind.h"
5890struct _Unwind_Context;
5891
5892
5893extern _Unwind_Reason_Code _Unwind_RaiseException (struct _Unwind_Exception *);
5894
5895
5896
5897typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
5898 (int, _Unwind_Action, _Unwind_Exception_Class,
5899 struct _Unwind_Exception *, struct _Unwind_Context *, void *);
5900
5901extern _Unwind_Reason_Code _Unwind_ForcedUnwind (struct _Unwind_Exception *,
5902 _Unwind_Stop_Fn,
5903 void *);
5904
5905
5906extern void _Unwind_DeleteException (struct _Unwind_Exception *);
5907
5908
5909
5910extern void _Unwind_Resume (struct _Unwind_Exception *);
5911
5912
5913
5914
5915typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)
5916 (struct _Unwind_Context *, void *);
5917
5918extern _Unwind_Reason_Code _Unwind_Backtrace (_Unwind_Trace_Fn, void *);
5919
5920
5921
5922
5923
5924
5925extern _Unwind_Word _Unwind_GetGR (struct _Unwind_Context *, int);
5926extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word);
5927
5928extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *);
5929extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr);
5930
5931
5932extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);
5933
5934extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *);
5935
5936extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
5937# 167 "../sysdeps/generic/unwind.h"
5938typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)
5939 (int, _Unwind_Action, _Unwind_Exception_Class,
5940 struct _Unwind_Exception *, struct _Unwind_Context *);
5941
5942
5943
5944
5945struct SjLj_Function_Context;
5946extern void _Unwind_SjLj_Register (struct SjLj_Function_Context *);
5947extern void _Unwind_SjLj_Unregister (struct SjLj_Function_Context *);
5948
5949extern _Unwind_Reason_Code _Unwind_SjLj_RaiseException
5950 (struct _Unwind_Exception *);
5951extern _Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind
5952 (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
5953extern void _Unwind_SjLj_Resume (struct _Unwind_Exception *);
5954# 208 "../sysdeps/generic/unwind.h"
5955extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *);
5956extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *);
5957
5958
5959
5960
5961extern void * _Unwind_FindEnclosingFunction (void *pc);
5962# 37 "../nptl/descr.h" 2
5963
5964
5965# 1 "../include/resolv.h" 1
5966# 12 "../include/resolv.h"
5967# 1 "../resolv/resolv.h" 1
5968# 56 "../resolv/resolv.h"
5969# 1 "../include/sys/types.h" 1
5970# 57 "../resolv/resolv.h" 2
5971# 1 "../include/netinet/in.h" 1
5972
5973
5974# 1 "../inet/netinet/in.h" 1
5975# 24 "../inet/netinet/in.h"
5976# 1 "../include/sys/socket.h" 1
5977
5978# 1 "../socket/sys/socket.h" 1
5979# 25 "../socket/sys/socket.h"
5980
5981
5982# 1 "../include/sys/uio.h" 1
5983
5984# 1 "../misc/sys/uio.h" 1
5985# 24 "../misc/sys/uio.h"
5986# 1 "../include/sys/types.h" 1
5987# 25 "../misc/sys/uio.h" 2
5988
5989
5990
5991
5992# 1 "../sysdeps/unix/sysv/linux/bits/uio.h" 1
5993# 24 "../sysdeps/unix/sysv/linux/bits/uio.h"
5994# 1 "../include/sys/types.h" 1
5995# 25 "../sysdeps/unix/sysv/linux/bits/uio.h" 2
5996# 42 "../sysdeps/unix/sysv/linux/bits/uio.h"
5997struct iovec
5998 {
5999 void *iov_base;
6000 size_t iov_len;
6001 };
6002# 30 "../misc/sys/uio.h" 2
6003# 40 "../misc/sys/uio.h"
6004extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count);
6005# 50 "../misc/sys/uio.h"
6006extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count);
6007
6008
6009# 3 "../include/sys/uio.h" 2
6010
6011
6012extern ssize_t __readv (int __fd, __const struct iovec *__vector,
6013 int __count);
6014extern ssize_t __libc_readv (int __fd, __const struct iovec *__vector,
6015 int __count);
6016extern ssize_t __writev (int __fd, __const struct iovec *__vector,
6017 int __count);
6018extern ssize_t __libc_writev (int __fd, __const struct iovec *__vector,
6019 int __count);
6020# 28 "../socket/sys/socket.h" 2
6021
6022# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
6023# 30 "../socket/sys/socket.h" 2
6024
6025
6026
6027
6028
6029# 1 "../sysdeps/unix/sysv/linux/bits/socket.h" 1
6030# 29 "../sysdeps/unix/sysv/linux/bits/socket.h"
6031# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
6032# 30 "../sysdeps/unix/sysv/linux/bits/socket.h" 2
6033
6034# 1 "../include/limits.h" 1
6035# 145 "../include/limits.h"
6036# 1 "../include/bits/posix1_lim.h" 1
6037# 146 "../include/limits.h" 2
6038
6039
6040
6041# 1 "../include/bits/posix2_lim.h" 1
6042# 150 "../include/limits.h" 2
6043# 32 "../sysdeps/unix/sysv/linux/bits/socket.h" 2
6044# 1 "../include/sys/types.h" 1
6045# 33 "../sysdeps/unix/sysv/linux/bits/socket.h" 2
6046
6047
6048
6049typedef __socklen_t socklen_t;
6050
6051
6052
6053
6054enum __socket_type
6055{
6056 SOCK_STREAM = 1,
6057
6058
6059 SOCK_DGRAM = 2,
6060
6061
6062 SOCK_RAW = 3,
6063
6064 SOCK_RDM = 4,
6065
6066 SOCK_SEQPACKET = 5,
6067
6068
6069 SOCK_PACKET = 10
6070
6071
6072
6073};
6074# 142 "../sysdeps/unix/sysv/linux/bits/socket.h"
6075# 1 "../bits/sockaddr.h" 1
6076# 29 "../bits/sockaddr.h"
6077typedef unsigned short int sa_family_t;
6078# 143 "../sysdeps/unix/sysv/linux/bits/socket.h" 2
6079
6080
6081struct sockaddr
6082 {
6083 sa_family_t sa_family;
6084 char sa_data[14];
6085 };
6086# 162 "../sysdeps/unix/sysv/linux/bits/socket.h"
6087struct sockaddr_storage
6088 {
6089 sa_family_t ss_family;
6090 __uint64_t __ss_align;
6091 char __ss_padding[(128 - (2 * sizeof (__uint64_t)))];
6092 };
6093
6094
6095
6096enum
6097 {
6098 MSG_OOB = 0x01,
6099
6100 MSG_PEEK = 0x02,
6101
6102 MSG_DONTROUTE = 0x04,
6103
6104
6105
6106 MSG_TRYHARD = MSG_DONTROUTE,
6107
6108
6109 MSG_CTRUNC = 0x08,
6110
6111 MSG_PROXY = 0x10,
6112
6113 MSG_TRUNC = 0x20,
6114
6115 MSG_DONTWAIT = 0x40,
6116
6117 MSG_EOR = 0x80,
6118
6119 MSG_WAITALL = 0x100,
6120
6121 MSG_FIN = 0x200,
6122
6123 MSG_SYN = 0x400,
6124
6125 MSG_CONFIRM = 0x800,
6126
6127 MSG_RST = 0x1000,
6128
6129 MSG_ERRQUEUE = 0x2000,
6130
6131 MSG_NOSIGNAL = 0x4000,
6132
6133 MSG_MORE = 0x8000
6134
6135 };
6136
6137
6138
6139
6140struct msghdr
6141 {
6142 void *msg_name;
6143 socklen_t msg_namelen;
6144
6145 struct iovec *msg_iov;
6146 size_t msg_iovlen;
6147
6148 void *msg_control;
6149 size_t msg_controllen;
6150
6151 int msg_flags;
6152 };
6153
6154
6155struct cmsghdr
6156 {
6157 size_t cmsg_len;
6158
6159 int cmsg_level;
6160 int cmsg_type;
6161
6162 __extension__ unsigned char __cmsg_data [];
6163
6164 };
6165# 257 "../sysdeps/unix/sysv/linux/bits/socket.h"
6166extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
6167 struct cmsghdr *__cmsg) __attribute__ ((__nothrow__));
6168
6169
6170
6171
6172extern __inline struct cmsghdr *
6173__attribute__ ((__nothrow__)) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
6174{
6175 if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
6176
6177 return 0;
6178
6179 __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
6180 + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)));
6181 if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
6182 + __mhdr->msg_controllen)
6183 || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
6184 > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
6185
6186 return 0;
6187 return __cmsg;
6188}
6189
6190
6191
6192
6193enum
6194 {
6195 SCM_RIGHTS = 0x01
6196
6197
6198 , SCM_CREDENTIALS = 0x02
6199
6200
6201 };
6202
6203
6204
6205struct ucred
6206{
6207 pid_t pid;
6208 uid_t uid;
6209 gid_t gid;
6210};
6211
6212
6213# 1 "/usr/include/asm/socket.h" 1 3 4
6214# 12 "/usr/include/asm/socket.h" 3 4
6215# 1 "/usr/include/asm/sockios.h" 1 3 4
6216# 13 "/usr/include/asm/socket.h" 2 3 4
6217# 305 "../sysdeps/unix/sysv/linux/bits/socket.h" 2
6218
6219
6220
6221struct linger
6222 {
6223 int l_onoff;
6224 int l_linger;
6225 };
6226# 36 "../socket/sys/socket.h" 2
6227
6228
6229
6230
6231struct osockaddr
6232 {
6233 unsigned short int sa_family;
6234 unsigned char sa_data[14];
6235 };
6236
6237
6238
6239
6240enum
6241{
6242 SHUT_RD = 0,
6243
6244 SHUT_WR,
6245
6246 SHUT_RDWR
6247
6248};
6249# 87 "../socket/sys/socket.h"
6250typedef union { struct sockaddr *__restrict __sockaddr__; struct sockaddr_at *__restrict __sockaddr_at__; struct sockaddr_ax25 *__restrict __sockaddr_ax25__; struct sockaddr_dl *__restrict __sockaddr_dl__; struct sockaddr_eon *__restrict __sockaddr_eon__; struct sockaddr_in *__restrict __sockaddr_in__; struct sockaddr_in6 *__restrict __sockaddr_in6__; struct sockaddr_inarp *__restrict __sockaddr_inarp__; struct sockaddr_ipx *__restrict __sockaddr_ipx__; struct sockaddr_iso *__restrict __sockaddr_iso__; struct sockaddr_ns *__restrict __sockaddr_ns__; struct sockaddr_un *__restrict __sockaddr_un__; struct sockaddr_x25 *__restrict __sockaddr_x25__;
6251 } __SOCKADDR_ARG __attribute__ ((__transparent_union__));
6252
6253
6254typedef union { __const struct sockaddr *__restrict __sockaddr__; __const struct sockaddr_at *__restrict __sockaddr_at__; __const struct sockaddr_ax25 *__restrict __sockaddr_ax25__; __const struct sockaddr_dl *__restrict __sockaddr_dl__; __const struct sockaddr_eon *__restrict __sockaddr_eon__; __const struct sockaddr_in *__restrict __sockaddr_in__; __const struct sockaddr_in6 *__restrict __sockaddr_in6__; __const struct sockaddr_inarp *__restrict __sockaddr_inarp__; __const struct sockaddr_ipx *__restrict __sockaddr_ipx__; __const struct sockaddr_iso *__restrict __sockaddr_iso__; __const struct sockaddr_ns *__restrict __sockaddr_ns__; __const struct sockaddr_un *__restrict __sockaddr_un__; __const struct sockaddr_x25 *__restrict __sockaddr_x25__;
6255 } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
6256
6257
6258
6259
6260
6261
6262
6263extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__));
6264
6265
6266
6267
6268
6269extern int socketpair (int __domain, int __type, int __protocol,
6270 int __fds[2]) __attribute__ ((__nothrow__));
6271
6272
6273extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len)
6274 __attribute__ ((__nothrow__));
6275
6276
6277extern int getsockname (int __fd, __SOCKADDR_ARG __addr,
6278 socklen_t *__restrict __len) __attribute__ ((__nothrow__));
6279# 124 "../socket/sys/socket.h"
6280extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
6281
6282
6283
6284extern int getpeername (int __fd, __SOCKADDR_ARG __addr,
6285 socklen_t *__restrict __len) __attribute__ ((__nothrow__));
6286
6287
6288
6289
6290
6291
6292extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags);
6293
6294
6295
6296
6297
6298
6299extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags);
6300
6301
6302
6303
6304
6305
6306extern ssize_t sendto (int __fd, __const void *__buf, size_t __n,
6307 int __flags, __CONST_SOCKADDR_ARG __addr,
6308 socklen_t __addr_len);
6309# 161 "../socket/sys/socket.h"
6310extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
6311 int __flags, __SOCKADDR_ARG __addr,
6312 socklen_t *__restrict __addr_len);
6313
6314
6315
6316
6317
6318
6319
6320extern ssize_t sendmsg (int __fd, __const struct msghdr *__message,
6321 int __flags);
6322
6323
6324
6325
6326
6327
6328extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
6329
6330
6331
6332
6333
6334extern int getsockopt (int __fd, int __level, int __optname,
6335 void *__restrict __optval,
6336 socklen_t *__restrict __optlen) __attribute__ ((__nothrow__));
6337
6338
6339
6340
6341extern int setsockopt (int __fd, int __level, int __optname,
6342 __const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__));
6343
6344
6345
6346
6347
6348extern int listen (int __fd, int __n) __attribute__ ((__nothrow__));
6349# 209 "../socket/sys/socket.h"
6350extern int accept (int __fd, __SOCKADDR_ARG __addr,
6351 socklen_t *__restrict __addr_len);
6352
6353
6354
6355
6356
6357
6358
6359extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__));
6360
6361
6362
6363
6364extern int sockatmark (int __fd) __attribute__ ((__nothrow__));
6365
6366
6367
6368
6369
6370
6371
6372extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__));
6373# 240 "../socket/sys/socket.h"
6374
6375# 3 "../include/sys/socket.h" 2
6376
6377
6378
6379
6380
6381
6382extern int __socket (int __domain, int __type,
6383 int __protocol) __attribute__ ((visibility ("hidden")));
6384
6385
6386
6387
6388
6389extern int __socketpair (int __domain, int __type, int __protocol,
6390 int __fds[2]) __attribute__ ((visibility ("hidden")));
6391
6392
6393
6394extern int __opensock (void) __attribute__ ((visibility ("hidden")));
6395
6396
6397
6398extern int __getpeername (int __fd, __SOCKADDR_ARG __addr,
6399 socklen_t *__len) __attribute__ ((visibility ("hidden")));
6400
6401
6402extern ssize_t __libc_send (int __fd, __const void *__buf, size_t __n,
6403 int __flags);
6404extern ssize_t __send (int __fd, __const void *__buf, size_t __n, int __flags);
6405
6406
6407
6408
6409extern ssize_t __libc_recv (int __fd, void *__buf, size_t __n, int __flags);
6410
6411
6412
6413extern ssize_t __libc_sendto (int __fd, __const void *__buf, size_t __n,
6414 int __flags, __CONST_SOCKADDR_ARG __addr,
6415 socklen_t __addr_len);
6416
6417
6418
6419
6420
6421extern ssize_t __libc_recvfrom (int __fd, void *__restrict __buf, size_t __n,
6422 int __flags, __SOCKADDR_ARG __addr,
6423 socklen_t *__restrict __addr_len);
6424
6425
6426
6427
6428
6429extern int __libc_connect (int __fd, __CONST_SOCKADDR_ARG __addr,
6430 socklen_t __len);
6431extern int __connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
6432extern int __connect_internal (int __fd, __CONST_SOCKADDR_ARG __addr,
6433 socklen_t __len) __attribute__ ((visibility ("hidden")));
6434
6435
6436
6437
6438
6439
6440extern ssize_t __recv (int __fd, void *__buf, size_t __n, int __flags)
6441 __attribute__ ((visibility ("hidden")));
6442
6443
6444
6445extern ssize_t __libc_sendto (int __fd, __const void *__buf, size_t __n,
6446 int __flags, __CONST_SOCKADDR_ARG __addr,
6447 socklen_t __addr_len);
6448extern ssize_t __sendto (int __fd, __const void *__buf, size_t __n,
6449 int __flags, __CONST_SOCKADDR_ARG __addr,
6450 socklen_t __addr_len) __attribute__ ((visibility ("hidden")));
6451
6452
6453
6454
6455
6456extern ssize_t __recvfrom (int __fd, void *__restrict __buf, size_t __n,
6457 int __flags, __SOCKADDR_ARG __addr,
6458 socklen_t *__restrict __addr_len) __attribute__ ((visibility ("hidden")));
6459
6460
6461
6462extern ssize_t __libc_sendmsg (int __fd, __const struct msghdr *__message,
6463 int __flags);
6464extern ssize_t __sendmsg (int __fd, __const struct msghdr *__message,
6465 int __flags) __attribute__ ((visibility ("hidden")));
6466
6467
6468
6469extern ssize_t __libc_recvmsg (int __fd, struct msghdr *__message,
6470 int __flags);
6471extern ssize_t __recvmsg (int __fd, struct msghdr *__message,
6472 int __flags) __attribute__ ((visibility ("hidden")));
6473
6474
6475
6476
6477extern int __setsockopt (int __fd, int __level, int __optname,
6478 __const void *__optval,
6479 socklen_t __optlen) __attribute__ ((visibility ("hidden")));
6480
6481
6482
6483
6484extern int __getsockopt (int __fd, int __level, int __optname,
6485 void *__restrict __optval,
6486 socklen_t *__restrict __optlen) __attribute__ ((visibility ("hidden")));
6487
6488
6489extern int __getsockname (int __fd, __SOCKADDR_ARG __addr,
6490 socklen_t *__restrict __len) __attribute__ ((visibility ("hidden")));
6491
6492
6493extern int __bind (int __fd, __CONST_SOCKADDR_ARG __addr,
6494 socklen_t __len) __attribute__ ((visibility ("hidden")));
6495
6496
6497
6498
6499extern int __listen (int __fd, int __n) __attribute__ ((visibility ("hidden")));
6500
6501
6502
6503
6504
6505
6506extern int __libc_accept (int __fd, __SOCKADDR_ARG __addr,
6507 socklen_t *__restrict __addr_len)
6508 __attribute__ ((__nothrow__));
6509
6510
6511
6512
6513
6514
6515extern int __libc_sa_len (sa_family_t __af);
6516extern int __libc_sa_len_internal (sa_family_t __af) __attribute__ ((visibility ("hidden")));
6517# 25 "../inet/netinet/in.h" 2
6518
6519
6520
6521
6522
6523
6524enum
6525 {
6526 IPPROTO_IP = 0,
6527
6528 IPPROTO_HOPOPTS = 0,
6529
6530 IPPROTO_ICMP = 1,
6531
6532 IPPROTO_IGMP = 2,
6533
6534 IPPROTO_IPIP = 4,
6535
6536 IPPROTO_TCP = 6,
6537
6538 IPPROTO_EGP = 8,
6539
6540 IPPROTO_PUP = 12,
6541
6542 IPPROTO_UDP = 17,
6543
6544 IPPROTO_IDP = 22,
6545
6546 IPPROTO_TP = 29,
6547
6548 IPPROTO_IPV6 = 41,
6549
6550 IPPROTO_ROUTING = 43,
6551
6552 IPPROTO_FRAGMENT = 44,
6553
6554 IPPROTO_RSVP = 46,
6555
6556 IPPROTO_GRE = 47,
6557
6558 IPPROTO_ESP = 50,
6559
6560 IPPROTO_AH = 51,
6561
6562 IPPROTO_ICMPV6 = 58,
6563
6564 IPPROTO_NONE = 59,
6565
6566 IPPROTO_DSTOPTS = 60,
6567
6568 IPPROTO_MTP = 92,
6569
6570 IPPROTO_ENCAP = 98,
6571
6572 IPPROTO_PIM = 103,
6573
6574 IPPROTO_COMP = 108,
6575
6576 IPPROTO_SCTP = 132,
6577
6578 IPPROTO_RAW = 255,
6579
6580 IPPROTO_MAX
6581 };
6582
6583
6584
6585typedef uint16_t in_port_t;
6586
6587
6588enum
6589 {
6590 IPPORT_ECHO = 7,
6591 IPPORT_DISCARD = 9,
6592 IPPORT_SYSTAT = 11,
6593 IPPORT_DAYTIME = 13,
6594 IPPORT_NETSTAT = 15,
6595 IPPORT_FTP = 21,
6596 IPPORT_TELNET = 23,
6597 IPPORT_SMTP = 25,
6598 IPPORT_TIMESERVER = 37,
6599 IPPORT_NAMESERVER = 42,
6600 IPPORT_WHOIS = 43,
6601 IPPORT_MTP = 57,
6602
6603 IPPORT_TFTP = 69,
6604 IPPORT_RJE = 77,
6605 IPPORT_FINGER = 79,
6606 IPPORT_TTYLINK = 87,
6607 IPPORT_SUPDUP = 95,
6608
6609
6610 IPPORT_EXECSERVER = 512,
6611 IPPORT_LOGINSERVER = 513,
6612 IPPORT_CMDSERVER = 514,
6613 IPPORT_EFSSERVER = 520,
6614
6615
6616 IPPORT_BIFFUDP = 512,
6617 IPPORT_WHOSERVER = 513,
6618 IPPORT_ROUTESERVER = 520,
6619
6620
6621 IPPORT_RESERVED = 1024,
6622
6623
6624 IPPORT_USERRESERVED = 5000
6625 };
6626
6627
6628
6629typedef uint32_t in_addr_t;
6630struct in_addr
6631 {
6632 in_addr_t s_addr;
6633 };
6634# 193 "../inet/netinet/in.h"
6635struct in6_addr
6636 {
6637 union
6638 {
6639 uint8_t u6_addr8[16];
6640 uint16_t u6_addr16[8];
6641 uint32_t u6_addr32[4];
6642 } in6_u;
6643
6644
6645
6646 };
6647
6648extern const struct in6_addr in6addr_any;
6649extern const struct in6_addr in6addr_loopback;
6650# 219 "../inet/netinet/in.h"
6651struct sockaddr_in
6652 {
6653 sa_family_t sin_family;
6654 in_port_t sin_port;
6655 struct in_addr sin_addr;
6656
6657
6658 unsigned char sin_zero[sizeof (struct sockaddr) -
6659 (sizeof (unsigned short int)) -
6660 sizeof (in_port_t) -
6661 sizeof (struct in_addr)];
6662 };
6663
6664
6665struct sockaddr_in6
6666 {
6667 sa_family_t sin6_family;
6668 in_port_t sin6_port;
6669 uint32_t sin6_flowinfo;
6670 struct in6_addr sin6_addr;
6671 uint32_t sin6_scope_id;
6672 };
6673
6674
6675
6676struct ip_mreq
6677 {
6678
6679 struct in_addr imr_multiaddr;
6680
6681
6682 struct in_addr imr_interface;
6683 };
6684
6685struct ip_mreq_source
6686 {
6687
6688 struct in_addr imr_multiaddr;
6689
6690
6691 struct in_addr imr_interface;
6692
6693
6694 struct in_addr imr_sourceaddr;
6695 };
6696
6697
6698struct ipv6_mreq
6699 {
6700
6701 struct in6_addr ipv6mr_multiaddr;
6702
6703
6704 unsigned int ipv6mr_interface;
6705 };
6706
6707
6708
6709struct group_req
6710 {
6711
6712 uint32_t gr_interface;
6713
6714
6715 struct sockaddr_storage gr_group;
6716 };
6717
6718struct group_source_req
6719 {
6720
6721 uint32_t gsr_interface;
6722
6723
6724 struct sockaddr_storage gsr_group;
6725
6726
6727 struct sockaddr_storage gsr_source;
6728 };
6729
6730
6731
6732struct ip_msfilter
6733 {
6734
6735 struct in_addr imsf_multiaddr;
6736
6737
6738 struct in_addr imsf_interface;
6739
6740
6741 uint32_t imsf_fmode;
6742
6743
6744 uint32_t imsf_numsrc;
6745
6746 struct in_addr imsf_slist[1];
6747 };
6748
6749
6750
6751
6752
6753struct group_filter
6754 {
6755
6756 uint32_t gf_interface;
6757
6758
6759 struct sockaddr_storage gf_group;
6760
6761
6762 uint32_t gf_fmode;
6763
6764
6765 uint32_t gf_numsrc;
6766
6767 struct sockaddr_storage gf_slist[1];
6768};
6769# 345 "../inet/netinet/in.h"
6770# 1 "../sysdeps/unix/sysv/linux/bits/in.h" 1
6771# 82 "../sysdeps/unix/sysv/linux/bits/in.h"
6772struct ip_opts
6773 {
6774 struct in_addr ip_dst;
6775 char ip_opts[40];
6776 };
6777
6778
6779struct ip_mreqn
6780 {
6781 struct in_addr imr_multiaddr;
6782 struct in_addr imr_address;
6783 int imr_ifindex;
6784 };
6785
6786
6787struct in_pktinfo
6788 {
6789 int ipi_ifindex;
6790 struct in_addr ipi_spec_dst;
6791 struct in_addr ipi_addr;
6792 };
6793# 346 "../inet/netinet/in.h" 2
6794# 354 "../inet/netinet/in.h"
6795extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6796extern uint16_t ntohs (uint16_t __netshort)
6797 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6798extern uint32_t htonl (uint32_t __hostlong)
6799 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6800extern uint16_t htons (uint16_t __hostshort)
6801 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6802
6803# 1 "../include/endian.h" 1
6804# 363 "../inet/netinet/in.h" 2
6805
6806
6807# 1 "../sysdeps/s390/bits/byteswap.h" 1
6808# 25 "../sysdeps/s390/bits/byteswap.h"
6809# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
6810# 26 "../sysdeps/s390/bits/byteswap.h" 2
6811# 366 "../inet/netinet/in.h" 2
6812# 428 "../inet/netinet/in.h"
6813extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __attribute__ ((__nothrow__));
6814
6815
6816extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
6817 __attribute__ ((__nothrow__));
6818# 456 "../inet/netinet/in.h"
6819struct in6_pktinfo
6820 {
6821 struct in6_addr ipi6_addr;
6822 unsigned int ipi6_ifindex;
6823 };
6824
6825
6826
6827
6828extern int inet6_option_space (int __nbytes) __attribute__ ((__nothrow__));
6829extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
6830 int __type) __attribute__ ((__nothrow__));
6831extern int inet6_option_append (struct cmsghdr *__cmsg,
6832 __const uint8_t *__typep, int __multx,
6833 int __plusy) __attribute__ ((__nothrow__));
6834extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
6835 int __multx, int __plusy) __attribute__ ((__nothrow__));
6836extern int inet6_option_next (__const struct cmsghdr *__cmsg,
6837 uint8_t **__tptrp) __attribute__ ((__nothrow__));
6838extern int inet6_option_find (__const struct cmsghdr *__cmsg,
6839 uint8_t **__tptrp, int __type) __attribute__ ((__nothrow__));
6840
6841
6842
6843
6844
6845extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,
6846 struct in_addr __group, uint32_t *__fmode,
6847 uint32_t *__numsrc, struct in_addr *__slist)
6848 __attribute__ ((__nothrow__));
6849
6850
6851extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
6852 struct in_addr __group, uint32_t __fmode,
6853 uint32_t __numsrc,
6854 __const struct in_addr *__slist)
6855 __attribute__ ((__nothrow__));
6856
6857
6858
6859extern int getsourcefilter (int __s, uint32_t __interface_addr,
6860 __const struct sockaddr *__group,
6861 socklen_t __grouplen, uint32_t *__fmode,
6862 uint32_t *__numsrc,
6863 struct sockaddr_storage *__slist) __attribute__ ((__nothrow__));
6864
6865
6866extern int setsourcefilter (int __s, uint32_t __interface_addr,
6867 __const struct sockaddr *__group,
6868 socklen_t __grouplen, uint32_t __fmode,
6869 uint32_t __numsrc,
6870 __const struct sockaddr_storage *__slist) __attribute__ ((__nothrow__));
6871
6872
6873
6874# 4 "../include/netinet/in.h" 2
6875
6876
6877
6878
6879
6880# 58 "../resolv/resolv.h" 2
6881# 71 "../resolv/resolv.h"
6882typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error }
6883 res_sendhookact;
6884
6885typedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *ns,
6886 const u_char **query,
6887 int *querylen,
6888 u_char *ans,
6889 int anssiz,
6890 int *resplen);
6891
6892typedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *ns,
6893 const u_char *query,
6894 int querylen,
6895 u_char *ans,
6896 int anssiz,
6897 int *resplen);
6898# 104 "../resolv/resolv.h"
6899struct __res_state {
6900 int retrans;
6901 int retry;
6902 u_long options;
6903 int nscount;
6904 struct sockaddr_in
6905 nsaddr_list[3];
6906
6907 u_short id;
6908 char *dnsrch[6 +1];
6909 char defdname[256];
6910 u_long pfcode;
6911 unsigned ndots:4;
6912 unsigned nsort:4;
6913 char unused[3];
6914 struct {
6915 struct in_addr addr;
6916 u_int32_t mask;
6917 } sort_list[10];
6918 res_send_qhook qhook;
6919 res_send_rhook rhook;
6920 int res_h_errno;
6921 int _vcsock;
6922 u_int _flags;
6923 union {
6924 char pad[52];
6925 struct {
6926 u_int16_t nscount;
6927 u_int16_t nsmap[3];
6928 int nssocks[3];
6929 u_int16_t nscount6;
6930 u_int16_t nsinit;
6931 struct sockaddr_in6 *nsaddrs[3];
6932
6933 unsigned long long int initstamp
6934 __attribute__((packed));
6935
6936
6937
6938 } _ext;
6939 } _u;
6940};
6941
6942typedef struct __res_state *res_state;
6943# 13 "../include/resolv.h" 2
6944# 40 "../nptl/descr.h" 2
6945# 65 "../nptl/descr.h"
6946struct pthread_unwind_buf
6947{
6948 struct
6949 {
6950 __jmp_buf jmp_buf;
6951 int mask_was_saved;
6952 } cancel_jmp_buf[1];
6953
6954 union
6955 {
6956
6957 void *pad[4];
6958
6959 struct
6960 {
6961
6962 struct pthread_unwind_buf *prev;
6963
6964
6965
6966
6967 struct _pthread_cleanup_buffer *cleanup;
6968
6969
6970 int canceltype;
6971 } data;
6972 } priv;
6973};
6974
6975
6976
6977
6978struct xid_command
6979{
6980 int syscall_no;
6981 long int id[3];
6982 volatile int cntr;
6983};
6984
6985
6986
6987struct pthread
6988{
6989 union
6990 {
6991
6992
6993 tcbhead_t header;
6994# 124 "../nptl/descr.h"
6995 void *__padding[16];
6996 };
6997
6998
6999 list_t list;
7000
7001
7002
7003 pid_t tid;
7004
7005
7006 pid_t pid;
7007
7008
7009
7010 __pthread_list_t robust_list;
7011# 182 "../nptl/descr.h"
7012 struct _pthread_cleanup_buffer *cleanup;
7013
7014
7015 struct pthread_unwind_buf *cleanup_jmp_buf;
7016
7017
7018
7019 int cancelhandling;
7020# 224 "../nptl/descr.h"
7021 struct pthread_key_data
7022 {
7023
7024
7025
7026 uintptr_t seq;
7027
7028
7029 void *data;
7030 } specific_1stblock[32];
7031
7032
7033 struct pthread_key_data *specific[((1024 + 32 - 1) / 32)];
7034
7035
7036 _Bool specific_used;
7037
7038
7039 _Bool report_events;
7040
7041
7042 _Bool user_stack;
7043
7044
7045 _Bool stopped_start;
7046
7047
7048 lll_lock_t lock;
7049
7050
7051 lll_lock_t setxid_futex;
7052# 267 "../nptl/descr.h"
7053 struct pthread *joinid;
7054
7055
7056
7057
7058 int flags;
7059
7060
7061 void *result;
7062
7063
7064 struct sched_param schedparam;
7065 int schedpolicy;
7066
7067
7068
7069 void *(*start_routine) (void *);
7070 void *arg;
7071
7072
7073 td_eventbuf_t eventbuf;
7074
7075 struct pthread *nextevent;
7076
7077
7078
7079 struct _Unwind_Exception exc;
7080
7081
7082
7083
7084 void *stackblock;
7085 size_t stackblock_size;
7086
7087 size_t guardsize;
7088
7089 size_t reported_guardsize;
7090
7091
7092 struct __res_state res;
7093
7094
7095 char end_padding[];
7096
7097
7098
7099} __attribute ((aligned (16)));
7100# 82 "../nptl/sysdeps/s390/tls.h" 2
7101# 7 "../include/tls.h" 2
7102# 46 "../include/link.h" 2
7103
7104
7105
7106
7107struct libname_list;
7108struct r_found_version;
7109struct r_search_path_elem;
7110
7111
7112struct link_map;
7113
7114
7115
7116struct r_scope_elem
7117{
7118
7119 struct link_map **r_list;
7120
7121 unsigned int r_nlist;
7122};
7123
7124
7125
7126struct r_search_path_struct
7127 {
7128 struct r_search_path_elem **dirs;
7129 int malloced;
7130 };
7131# 85 "../include/link.h"
7132struct link_map
7133 {
7134
7135
7136
7137 Elf64_Addr l_addr;
7138 char *l_name;
7139 Elf64_Dyn *l_ld;
7140 struct link_map *l_next, *l_prev;
7141
7142
7143
7144
7145
7146
7147
7148 struct link_map *l_real;
7149
7150
7151 Lmid_t l_ns;
7152
7153 struct libname_list *l_libname;
7154# 122 "../include/link.h"
7155 Elf64_Dyn *l_info[34 + 0 + 16
7156 + 3 + 12 + 10 + 2];
7157 const Elf64_Phdr *l_phdr;
7158 Elf64_Addr l_entry;
7159 Elf64_Half l_phnum;
7160 Elf64_Half l_ldnum;
7161
7162
7163
7164
7165
7166 struct r_scope_elem l_searchlist;
7167
7168
7169
7170 struct r_scope_elem l_symbolic_searchlist;
7171
7172
7173 struct link_map *l_loader;
7174
7175
7176 Elf_Symndx l_nbuckets;
7177 const Elf_Symndx *l_buckets, *l_chain;
7178
7179 unsigned int l_direct_opencount;
7180 enum
7181 {
7182 lt_executable,
7183 lt_library,
7184 lt_loaded
7185 } l_type:2;
7186 unsigned int l_relocated:1;
7187 unsigned int l_init_called:1;
7188 unsigned int l_global:1;
7189 unsigned int l_reserved:2;
7190 unsigned int l_phdr_allocated:1;
7191
7192 unsigned int l_soname_added:1;
7193
7194 unsigned int l_faked:1;
7195
7196 unsigned int l_need_tls_init:1;
7197
7198
7199 unsigned int l_used:1;
7200 unsigned int l_auditing:1;
7201 unsigned int l_audit_any_plt:1;
7202
7203 unsigned int l_removed:1;
7204
7205
7206
7207 unsigned int l_nversions;
7208 struct r_found_version *l_versions;
7209
7210
7211 struct r_search_path_struct l_rpath_dirs;
7212
7213
7214 struct reloc_result
7215 {
7216 Elf64_Addr addr;
7217 struct link_map *bound;
7218 unsigned int boundndx;
7219 uint32_t enterexit;
7220 unsigned int flags;
7221 } *l_reloc_result;
7222
7223
7224 Elf64_Versym *l_versyms;
7225
7226
7227 const char *l_origin;
7228
7229
7230
7231 Elf64_Addr l_map_start, l_map_end;
7232
7233 Elf64_Addr l_text_end;
7234
7235
7236 struct r_scope_elem *l_scope_mem[4];
7237
7238 size_t l_scope_max;
7239
7240
7241 struct r_scope_elem **l_scope;
7242
7243
7244
7245 struct r_scope_elem *l_local_scope[2];
7246
7247
7248
7249 dev_t l_dev;
7250 ino64_t l_ino;
7251
7252
7253 struct r_search_path_struct l_runpath_dirs;
7254
7255
7256 struct link_map **l_initfini;
7257
7258
7259 unsigned int l_reldepsmax;
7260 unsigned int l_reldepsact;
7261 struct link_map **l_reldeps;
7262
7263
7264 Elf64_Word l_feature_1;
7265 Elf64_Word l_flags_1;
7266 Elf64_Word l_flags;
7267
7268
7269 int l_idx;
7270
7271 struct link_map_machine l_mach;
7272
7273 struct
7274 {
7275 const Elf64_Sym *sym;
7276 int type_class;
7277 struct link_map *value;
7278 const Elf64_Sym *ret;
7279 } l_lookup_cache;
7280
7281
7282
7283
7284
7285 void *l_tls_initimage;
7286
7287 size_t l_tls_initimage_size;
7288
7289 size_t l_tls_blocksize;
7290
7291 size_t l_tls_align;
7292
7293 size_t l_tls_firstbyte_offset;
7294
7295
7296
7297
7298 ptrdiff_t l_tls_offset;
7299
7300 size_t l_tls_modid;
7301
7302
7303
7304
7305 Elf64_Addr l_relro_addr;
7306 size_t l_relro_size;
7307
7308
7309
7310 struct auditstate
7311 {
7312 uintptr_t cookie;
7313 unsigned int bindflags;
7314 } l_audit[0];
7315 };
7316# 293 "../include/link.h"
7317extern int __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
7318 size_t size, void *data),
7319 void *data);
7320# 4 "../include/dlfcn.h" 2
7321# 17 "../include/dlfcn.h"
7322extern int __dlfcn_argc __attribute__ ((visibility ("hidden")));
7323extern char **__dlfcn_argv __attribute__ ((visibility ("hidden")));
7324# 33 "../include/dlfcn.h"
7325extern void *__libc_dlopen_mode (__const char *__name, int __mode);
7326extern void *__libc_dlsym (void *__map, __const char *__name);
7327extern int __libc_dlclose (void *__map);
7328
7329
7330
7331
7332
7333
7334extern int _dl_addr (const void *address, Dl_info *info,
7335 struct link_map **mapp, const Elf64_Sym **symbolp)
7336 ;
7337
7338
7339
7340
7341extern void _dl_close (void *map) __attribute__ ((visibility ("hidden")));
7342
7343
7344
7345
7346extern void *_dl_sym (void *handle, const char *name, void *who)
7347 ;
7348
7349
7350
7351
7352
7353extern void *_dl_vsym (void *handle, const char *name, const char *version,
7354 void *who)
7355 ;
7356# 73 "../include/dlfcn.h"
7357extern int _dl_catch_error (const char **objname, const char **errstring,
7358 _Bool *mallocedp, void (*operate) (void *),
7359 void *args)
7360 ;
7361
7362
7363
7364
7365
7366extern int _dlerror_run (void (*operate) (void *), void *args)
7367 ;
7368# 93 "../include/dlfcn.h"
7369struct dlfcn_hook
7370{
7371 void *(*dlopen) (const char *file, int mode, void *dl_caller);
7372 int (*dlclose) (void *handle);
7373 void *(*dlsym) (void *handle, const char *name, void *dl_caller);
7374 void *(*dlvsym) (void *handle, const char *name, const char *version,
7375 void *dl_caller);
7376 char *(*dlerror) (void);
7377 int (*dladdr) (const void *address, Dl_info *info);
7378 int (*dladdr1) (const void *address, Dl_info *info,
7379 void **extra_info, int flags);
7380 int (*dlinfo) (void *handle, int request, void *arg, void *dl_caller);
7381 void *(*dlmopen) (Lmid_t nsid, const char *file, int mode, void *dl_caller);
7382 void *pad[4];
7383};
7384
7385extern struct dlfcn_hook *_dlfcn_hook;
7386
7387
7388extern void *__dlopen (const char *file, int mode )
7389 __attribute__ ((visibility ("hidden")));
7390extern void *__dlmopen (Lmid_t nsid, const char *file, int mode )
7391 __attribute__ ((visibility ("hidden")));
7392extern int __dlclose (void *handle)
7393 __attribute__ ((visibility ("hidden")));
7394extern void *__dlsym (void *handle, const char *name )
7395 __attribute__ ((visibility ("hidden")));
7396extern void *__dlvsym (void *handle, const char *name, const char *version
7397 )
7398 __attribute__ ((visibility ("hidden")));
7399extern char *__dlerror (void)
7400 __attribute__ ((visibility ("hidden")));
7401extern int __dladdr (const void *address, Dl_info *info)
7402 __attribute__ ((visibility ("hidden")));
7403extern int __dladdr1 (const void *address, Dl_info *info,
7404 void **extra_info, int flags)
7405 __attribute__ ((visibility ("hidden")));
7406extern int __dlinfo (void *handle, int request, void *arg )
7407 __attribute__ ((visibility ("hidden")));
7408# 22 "rtld.c" 2
7409# 1 "../include/fcntl.h" 1
7410
7411# 1 "../io/fcntl.h" 1
7412# 30 "../io/fcntl.h"
7413
7414
7415
7416
7417# 1 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h" 1
7418# 24 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h"
7419# 1 "../include/sys/types.h" 1
7420# 25 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h" 2
7421# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
7422# 26 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h" 2
7423# 152 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h"
7424struct flock
7425 {
7426 short int l_type;
7427 short int l_whence;
7428
7429 __off_t l_start;
7430 __off_t l_len;
7431
7432
7433
7434
7435 __pid_t l_pid;
7436 };
7437
7438
7439struct flock64
7440 {
7441 short int l_type;
7442 short int l_whence;
7443 __off64_t l_start;
7444 __off64_t l_len;
7445 __pid_t l_pid;
7446 };
7447# 202 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h"
7448
7449
7450
7451extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
7452 __attribute__ ((__nothrow__));
7453
7454
7455# 35 "../io/fcntl.h" 2
7456
7457
7458
7459# 1 "../include/sys/stat.h" 1
7460
7461# 1 "../io/sys/stat.h" 1
7462# 103 "../io/sys/stat.h"
7463
7464
7465# 1 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" 1
7466# 23 "../sysdeps/unix/sysv/linux/s390/bits/stat.h"
7467# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
7468# 24 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" 2
7469# 48 "../sysdeps/unix/sysv/linux/s390/bits/stat.h"
7470struct stat
7471 {
7472 __dev_t st_dev;
7473 __ino_t st_ino;
7474 __nlink_t st_nlink;
7475 __mode_t st_mode;
7476 __uid_t st_uid;
7477 __gid_t st_gid;
7478 int pad0;
7479 __dev_t st_rdev;
7480 __off_t st_size;
7481
7482
7483
7484
7485
7486
7487
7488 struct timespec st_atim;
7489 struct timespec st_mtim;
7490 struct timespec st_ctim;
7491# 80 "../sysdeps/unix/sysv/linux/s390/bits/stat.h"
7492 __blksize_t st_blksize;
7493 __blkcnt_t st_blocks;
7494 long int __unused[3];
7495 };
7496# 145 "../sysdeps/unix/sysv/linux/s390/bits/stat.h"
7497struct stat64
7498 {
7499 __dev_t st_dev;
7500 __ino64_t st_ino;
7501 __nlink_t st_nlink;
7502 __mode_t st_mode;
7503 __uid_t st_uid;
7504 __gid_t st_gid;
7505 int pad0;
7506 __dev_t st_rdev;
7507 __off_t st_size;
7508
7509
7510
7511
7512
7513
7514
7515 struct timespec st_atim;
7516 struct timespec st_mtim;
7517 struct timespec st_ctim;
7518# 177 "../sysdeps/unix/sysv/linux/s390/bits/stat.h"
7519 __blksize_t st_blksize;
7520 __blkcnt64_t st_blocks;
7521 long int __unused[3];
7522 };
7523# 106 "../io/sys/stat.h" 2
7524# 207 "../io/sys/stat.h"
7525extern int stat (__const char *__restrict __file,
7526 struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7527
7528
7529
7530extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7531# 226 "../io/sys/stat.h"
7532extern int stat64 (__const char *__restrict __file,
7533 struct stat64 *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7534extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7535
7536
7537
7538
7539
7540
7541
7542extern int fstatat (int __fd, __const char *__restrict __file,
7543 struct stat *__restrict __buf, int __flag)
7544 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
7545# 250 "../io/sys/stat.h"
7546extern int fstatat64 (int __fd, __const char *__restrict __file,
7547 struct stat64 *__restrict __buf, int __flag)
7548 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
7549
7550
7551
7552
7553
7554
7555extern int lstat (__const char *__restrict __file,
7556 struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7557# 272 "../io/sys/stat.h"
7558extern int lstat64 (__const char *__restrict __file,
7559 struct stat64 *__restrict __buf)
7560 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7561
7562
7563
7564
7565
7566extern int chmod (__const char *__file, __mode_t __mode)
7567 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7568
7569
7570
7571
7572
7573extern int lchmod (__const char *__file, __mode_t __mode)
7574 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7575
7576
7577
7578
7579extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__));
7580
7581
7582
7583
7584
7585extern int fchmodat (int __fd, __const char *__file, __mode_t mode, int __flag)
7586 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
7587
7588
7589
7590
7591
7592
7593extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__));
7594
7595
7596
7597
7598extern __mode_t getumask (void) __attribute__ ((__nothrow__));
7599
7600
7601
7602extern int mkdir (__const char *__path, __mode_t __mode)
7603 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7604
7605
7606
7607
7608
7609extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
7610 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7611
7612
7613
7614
7615
7616
7617extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
7618 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7619
7620
7621
7622
7623
7624
7625extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
7626 __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7627
7628
7629
7630
7631extern int mkfifo (__const char *__path, __mode_t __mode)
7632 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7633
7634
7635
7636
7637
7638extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
7639 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7640# 380 "../io/sys/stat.h"
7641extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)
7642 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
7643extern int __xstat (int __ver, __const char *__filename,
7644 struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
7645extern int __lxstat (int __ver, __const char *__filename,
7646 struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
7647extern int __fxstatat (int __ver, int __fildes, __const char *__filename,
7648 struct stat *__stat_buf, int __flag)
7649 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
7650# 413 "../io/sys/stat.h"
7651extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf)
7652 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
7653extern int __xstat64 (int __ver, __const char *__filename,
7654 struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
7655extern int __lxstat64 (int __ver, __const char *__filename,
7656 struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
7657extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename,
7658 struct stat64 *__stat_buf, int __flag)
7659 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
7660
7661extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
7662 __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
7663
7664extern int __xmknodat (int __ver, int __fd, __const char *__path,
7665 __mode_t __mode, __dev_t *__dev)
7666 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 5)));
7667
7668
7669
7670
7671extern __inline__ int
7672__attribute__ ((__nothrow__)) stat (__const char *__path, struct stat *__statbuf)
7673{
7674 return __xstat (1, __path, __statbuf);
7675}
7676
7677
7678extern __inline__ int
7679__attribute__ ((__nothrow__)) lstat (__const char *__path, struct stat *__statbuf)
7680{
7681 return __lxstat (1, __path, __statbuf);
7682}
7683
7684
7685extern __inline__ int
7686__attribute__ ((__nothrow__)) fstat (int __fd, struct stat *__statbuf)
7687{
7688 return __fxstat (1, __fd, __statbuf);
7689}
7690
7691
7692extern __inline__ int
7693__attribute__ ((__nothrow__)) fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag)
7694
7695{
7696 return __fxstatat (1, __fd, __filename, __statbuf, __flag);
7697}
7698
7699
7700
7701extern __inline__ int
7702__attribute__ ((__nothrow__)) mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
7703{
7704 return __xmknod (0, __path, __mode, &__dev);
7705}
7706
7707
7708
7709extern __inline__ int
7710__attribute__ ((__nothrow__)) mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev)
7711
7712{
7713 return __xmknodat (0, __fd, __path, __mode, &__dev);
7714}
7715
7716
7717
7718
7719
7720extern __inline__ int
7721__attribute__ ((__nothrow__)) stat64 (__const char *__path, struct stat64 *__statbuf)
7722{
7723 return __xstat64 (1, __path, __statbuf);
7724}
7725
7726
7727extern __inline__ int
7728__attribute__ ((__nothrow__)) lstat64 (__const char *__path, struct stat64 *__statbuf)
7729{
7730 return __lxstat64 (1, __path, __statbuf);
7731}
7732
7733
7734extern __inline__ int
7735__attribute__ ((__nothrow__)) fstat64 (int __fd, struct stat64 *__statbuf)
7736{
7737 return __fxstat64 (1, __fd, __statbuf);
7738}
7739
7740
7741extern __inline__ int
7742__attribute__ ((__nothrow__)) fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag)
7743
7744{
7745 return __fxstatat64 (1, __fd, __filename, __statbuf, __flag);
7746}
7747
7748
7749
7750
7751
7752
7753
7754# 3 "../include/sys/stat.h" 2
7755
7756
7757extern int __stat (__const char *__file, struct stat *__buf);
7758extern int __fstat (int __fd, struct stat *__buf);
7759extern int __lstat (__const char *__file, struct stat *__buf);
7760extern int __chmod (__const char *__file, __mode_t __mode);
7761extern int __fchmod (int __fd, __mode_t __mode);
7762extern __mode_t __umask (__mode_t __mask);
7763extern int __mkdir (__const char *__path, __mode_t __mode);
7764extern int __mknod (__const char *__path,
7765 __mode_t __mode, __dev_t __dev);
7766
7767extern __typeof (__fxstat) __fxstat __asm__ ("" "__GI___fxstat") __attribute__ ((visibility ("hidden")));
7768extern __typeof (__fxstat64) __fxstat64 __asm__ ("" "__GI___fxstat64") __attribute__ ((visibility ("hidden")));
7769extern __typeof (__lxstat) __lxstat __asm__ ("" "__GI___lxstat") __attribute__ ((visibility ("hidden")));
7770extern __typeof (__lxstat64) __lxstat64 __asm__ ("" "__GI___lxstat64") __attribute__ ((visibility ("hidden")));
7771extern __typeof (__xstat) __xstat __asm__ ("" "__GI___xstat") __attribute__ ((visibility ("hidden")));
7772extern __typeof (__xstat64) __xstat64 __asm__ ("" "__GI___xstat64") __attribute__ ((visibility ("hidden")));
7773
7774extern __inline__ int __stat (__const char *__path, struct stat *__statbuf)
7775{
7776 return __xstat (1, __path, __statbuf);
7777}
7778
7779extern __inline__ int __mknod (__const char *__path, __mode_t __mode,
7780 __dev_t __dev)
7781{
7782 return __xmknod (0, __path, __mode, &__dev);
7783}
7784
7785
7786
7787
7788# 39 "../io/fcntl.h" 2
7789# 76 "../io/fcntl.h"
7790extern int fcntl (int __fd, int __cmd, ...);
7791# 85 "../io/fcntl.h"
7792extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
7793# 95 "../io/fcntl.h"
7794extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
7795# 109 "../io/fcntl.h"
7796extern int openat (int __fd, __const char *__file, int __oflag, ...)
7797 __attribute__ ((__nonnull__ (2)));
7798# 120 "../io/fcntl.h"
7799extern int openat64 (int __fd, __const char *__file, int __oflag, ...)
7800 __attribute__ ((__nonnull__ (2)));
7801# 130 "../io/fcntl.h"
7802extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1)));
7803# 140 "../io/fcntl.h"
7804extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1)));
7805# 159 "../io/fcntl.h"
7806extern int lockf (int __fd, int __cmd, __off_t __len);
7807# 168 "../io/fcntl.h"
7808extern int lockf64 (int __fd, int __cmd, __off64_t __len);
7809
7810
7811
7812
7813
7814
7815
7816extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len,
7817 int __advise) __attribute__ ((__nothrow__));
7818# 188 "../io/fcntl.h"
7819extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len,
7820 int __advise) __attribute__ ((__nothrow__));
7821# 198 "../io/fcntl.h"
7822extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len);
7823# 209 "../io/fcntl.h"
7824extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len);
7825
7826
7827
7828
7829# 3 "../include/fcntl.h" 2
7830
7831
7832extern int __open64 (__const char *__file, int __oflag, ...);
7833
7834extern int __libc_open64 (const char *file, int oflag, ...);
7835extern int __libc_open (const char *file, int oflag, ...);
7836
7837extern int __libc_creat (const char *file, mode_t mode);
7838extern int __libc_fcntl (int fd, int cmd, ...);
7839
7840extern int __fcntl_nocancel (int fd, int cmd, ...) __attribute__ ((visibility ("hidden")));
7841
7842
7843extern int __open (__const char *__file, int __oflag, ...);
7844
7845extern int __fcntl (int __fd, int __cmd, ...);
7846
7847extern int __openat (int __fd, __const char *__file, int __oflag, ...)
7848 __attribute__ ((__nonnull__ (2)));
7849
7850extern int __openat64 (int __fd, __const char *__file, int __oflag, ...)
7851 __attribute__ ((__nonnull__ (2)));
7852
7853
7854
7855
7856extern void __atfct_seterrno (int errval, int fd, const char *buf)
7857 __attribute__ ((visibility ("hidden")));
7858extern void __atfct_seterrno_2 (int errval, int fd1, const char *buf1,
7859 int fd2, const char *buf2)
7860 __attribute__ ((visibility ("hidden")));
7861
7862
7863
7864extern int __have_atfcts __attribute__ ((visibility ("hidden")));
7865# 23 "rtld.c" 2
7866
7867
7868# 1 "../include/string.h" 1
7869
7870
7871# 1 "../include/sys/types.h" 1
7872# 4 "../include/string.h" 2
7873
7874extern void *__memccpy (void *__dest, __const void *__src,
7875 int __c, size_t __n);
7876
7877extern size_t __strnlen (__const char *__string, size_t __maxlen)
7878 __attribute__ ((__pure__));
7879
7880extern char *__strsep (char **__stringp, __const char *__delim);
7881
7882extern int __strverscmp (__const char *__s1, __const char *__s2)
7883 __attribute__ ((__pure__));
7884
7885extern int __strncasecmp (__const char *__s1, __const char *__s2,
7886 size_t __n)
7887 __attribute__ ((__pure__));
7888
7889extern int __strcasecmp (__const char *__s1, __const char *__s2)
7890 __attribute__ ((__pure__));
7891
7892extern char *__strcasestr (__const char *__haystack, __const char *__needle)
7893 __attribute__ ((__pure__));
7894
7895extern char *__strdup (__const char *__string)
7896 __attribute__ ((__malloc__));
7897extern char *__strndup (__const char *__string, size_t __n)
7898 __attribute__ ((__malloc__));
7899
7900extern void *__rawmemchr (__const void *__s, int __c)
7901 __attribute__ ((__pure__));
7902
7903extern char *__strchrnul (__const char *__s, int __c)
7904 __attribute__ ((__pure__));
7905
7906extern void *__memrchr (__const void *__s, int __c, size_t __n)
7907 __attribute__ ((__pure__));
7908
7909extern void *__memchr (__const void *__s, int __c, size_t __n)
7910 __attribute__ ((__pure__));
7911
7912extern int __ffs (int __i) __attribute__ ((const));
7913
7914extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);
7915
7916
7917
7918# 1 "../string/string.h" 1
7919# 28 "../string/string.h"
7920
7921
7922
7923
7924
7925# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
7926# 34 "../string/string.h" 2
7927
7928
7929
7930
7931extern void *memcpy (void *__restrict __dest,
7932 __const void *__restrict __src, size_t __n)
7933 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7934
7935
7936extern void *memmove (void *__dest, __const void *__src, size_t __n)
7937 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7938
7939
7940
7941
7942
7943
7944extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
7945 int __c, size_t __n)
7946 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7947
7948
7949
7950
7951
7952extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7953
7954
7955extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
7956 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
7957
7958
7959extern void *memchr (__const void *__s, int __c, size_t __n)
7960 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7961
7962
7963
7964
7965
7966extern void *rawmemchr (__const void *__s, int __c)
7967 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7968
7969
7970extern void *memrchr (__const void *__s, int __c, size_t __n)
7971 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7972
7973
7974
7975
7976
7977extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
7978 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7979
7980extern char *strncpy (char *__restrict __dest,
7981 __const char *__restrict __src, size_t __n)
7982 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7983
7984
7985extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
7986 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7987
7988extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
7989 size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7990
7991
7992extern int strcmp (__const char *__s1, __const char *__s2)
7993 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
7994
7995extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
7996 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
7997
7998
7999extern int strcoll (__const char *__s1, __const char *__s2)
8000 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8001
8002extern size_t strxfrm (char *__restrict __dest,
8003 __const char *__restrict __src, size_t __n)
8004 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
8005
8006
8007
8008
8009
8010
8011# 1 "../include/xlocale.h" 1
8012# 119 "../string/string.h" 2
8013
8014
8015extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
8016 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
8017
8018extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
8019 __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
8020
8021
8022
8023
8024extern char *strdup (__const char *__s)
8025 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
8026
8027
8028
8029
8030
8031
8032extern char *strndup (__const char *__string, size_t __n)
8033 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
8034# 165 "../string/string.h"
8035
8036
8037extern char *strchr (__const char *__s, int __c)
8038 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
8039
8040extern char *strrchr (__const char *__s, int __c)
8041 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
8042
8043
8044
8045
8046
8047extern char *strchrnul (__const char *__s, int __c)
8048 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
8049
8050
8051
8052
8053
8054extern size_t strcspn (__const char *__s, __const char *__reject)
8055 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8056
8057
8058extern size_t strspn (__const char *__s, __const char *__accept)
8059 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8060
8061extern char *strpbrk (__const char *__s, __const char *__accept)
8062 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8063
8064extern char *strstr (__const char *__haystack, __const char *__needle)
8065 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8066
8067
8068
8069extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
8070 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
8071
8072
8073
8074
8075extern char *__strtok_r (char *__restrict __s,
8076 __const char *__restrict __delim,
8077 char **__restrict __save_ptr)
8078 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
8079
8080extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
8081 char **__restrict __save_ptr)
8082 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
8083
8084
8085
8086
8087extern char *strcasestr (__const char *__haystack, __const char *__needle)
8088 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8089
8090
8091
8092
8093
8094
8095extern void *memmem (__const void *__haystack, size_t __haystacklen,
8096 __const void *__needle, size_t __needlelen)
8097 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
8098
8099
8100
8101extern void *__mempcpy (void *__restrict __dest,
8102 __const void *__restrict __src, size_t __n)
8103 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
8104extern void *mempcpy (void *__restrict __dest,
8105 __const void *__restrict __src, size_t __n)
8106 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
8107
8108
8109
8110
8111
8112extern size_t strlen (__const char *__s)
8113 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
8114
8115
8116
8117
8118
8119extern size_t strnlen (__const char *__string, size_t __maxlen)
8120 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
8121
8122
8123
8124
8125
8126extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
8127
8128# 281 "../string/string.h"
8129extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
8130 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
8131
8132
8133
8134
8135
8136extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8137
8138
8139
8140extern void bcopy (__const void *__src, void *__dest, size_t __n)
8141 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
8142
8143
8144extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8145
8146
8147extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
8148 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8149
8150
8151extern char *index (__const char *__s, int __c)
8152 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
8153
8154
8155extern char *rindex (__const char *__s, int __c)
8156 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
8157
8158
8159
8160extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
8161
8162
8163
8164
8165extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
8166
8167__extension__ extern int ffsll (long long int __ll)
8168 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
8169
8170
8171
8172
8173extern int strcasecmp (__const char *__s1, __const char *__s2)
8174 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8175
8176
8177extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
8178 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8179
8180
8181
8182
8183
8184extern int strcasecmp_l (__const char *__s1, __const char *__s2,
8185 __locale_t __loc)
8186 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
8187
8188extern int strncasecmp_l (__const char *__s1, __const char *__s2,
8189 size_t __n, __locale_t __loc)
8190 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
8191
8192
8193
8194
8195
8196extern char *strsep (char **__restrict __stringp,
8197 __const char *__restrict __delim)
8198 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
8199
8200
8201
8202
8203extern int strverscmp (__const char *__s1, __const char *__s2)
8204 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
8205
8206
8207extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
8208
8209
8210extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
8211 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
8212extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
8213 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
8214
8215
8216
8217extern char *__stpncpy (char *__restrict __dest,
8218 __const char *__restrict __src, size_t __n)
8219 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
8220extern char *stpncpy (char *__restrict __dest,
8221 __const char *__restrict __src, size_t __n)
8222 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
8223
8224
8225extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8226
8227
8228extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8229
8230
8231
8232
8233
8234
8235extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8236# 414 "../string/string.h"
8237# 1 "../sysdeps/s390/bits/string.h" 1
8238# 415 "../string/string.h" 2
8239
8240
8241# 1 "../include/bits/string2.h" 1
8242# 1 "../string/bits/string2.h" 1
8243# 52 "../string/bits/string2.h"
8244# 1 "../include/endian.h" 1
8245# 53 "../string/bits/string2.h" 2
8246# 394 "../string/bits/string2.h"
8247extern void *__rawmemchr (const void *__s, int __c);
8248# 969 "../string/bits/string2.h"
8249extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
8250extern __inline size_t
8251__strcspn_c1 (__const char *__s, int __reject)
8252{
8253 register size_t __result = 0;
8254 while (__s[__result] != '\0' && __s[__result] != __reject)
8255 ++__result;
8256 return __result;
8257}
8258
8259extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
8260 int __reject2);
8261extern __inline size_t
8262__strcspn_c2 (__const char *__s, int __reject1, int __reject2)
8263{
8264 register size_t __result = 0;
8265 while (__s[__result] != '\0' && __s[__result] != __reject1
8266 && __s[__result] != __reject2)
8267 ++__result;
8268 return __result;
8269}
8270
8271extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
8272 int __reject2, int __reject3);
8273extern __inline size_t
8274__strcspn_c3 (__const char *__s, int __reject1, int __reject2,
8275 int __reject3)
8276{
8277 register size_t __result = 0;
8278 while (__s[__result] != '\0' && __s[__result] != __reject1
8279 && __s[__result] != __reject2 && __s[__result] != __reject3)
8280 ++__result;
8281 return __result;
8282}
8283# 1045 "../string/bits/string2.h"
8284extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
8285extern __inline size_t
8286__strspn_c1 (__const char *__s, int __accept)
8287{
8288 register size_t __result = 0;
8289
8290 while (__s[__result] == __accept)
8291 ++__result;
8292 return __result;
8293}
8294
8295extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
8296 int __accept2);
8297extern __inline size_t
8298__strspn_c2 (__const char *__s, int __accept1, int __accept2)
8299{
8300 register size_t __result = 0;
8301
8302 while (__s[__result] == __accept1 || __s[__result] == __accept2)
8303 ++__result;
8304 return __result;
8305}
8306
8307extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
8308 int __accept2, int __accept3);
8309extern __inline size_t
8310__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
8311{
8312 register size_t __result = 0;
8313
8314 while (__s[__result] == __accept1 || __s[__result] == __accept2
8315 || __s[__result] == __accept3)
8316 ++__result;
8317 return __result;
8318}
8319# 1121 "../string/bits/string2.h"
8320extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
8321 int __accept2);
8322extern __inline char *
8323__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
8324{
8325
8326 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
8327 ++__s;
8328 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
8329}
8330
8331extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
8332 int __accept2, int __accept3);
8333extern __inline char *
8334__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
8335 int __accept3)
8336{
8337
8338 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
8339 && *__s != __accept3)
8340 ++__s;
8341 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
8342}
8343# 1173 "../string/bits/string2.h"
8344extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
8345extern __inline char *
8346__strtok_r_1c (char *__s, char __sep, char **__nextp)
8347{
8348 char *__result;
8349 if (__s == ((void *)0))
8350 __s = *__nextp;
8351 while (*__s == __sep)
8352 ++__s;
8353 __result = ((void *)0);
8354 if (*__s != '\0')
8355 {
8356 __result = __s++;
8357 while (*__s != '\0')
8358 if (*__s++ == __sep)
8359 {
8360 __s[-1] = '\0';
8361 break;
8362 }
8363 *__nextp = __s;
8364 }
8365 return __result;
8366}
8367# 1205 "../string/bits/string2.h"
8368extern char *__strsep_g (char **__stringp, __const char *__delim);
8369# 1223 "../string/bits/string2.h"
8370extern __inline char *__strsep_1c (char **__s, char __reject);
8371extern __inline char *
8372__strsep_1c (char **__s, char __reject)
8373{
8374 register char *__retval = *__s;
8375 if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
8376 *(*__s)++ = '\0';
8377 return __retval;
8378}
8379
8380extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
8381extern __inline char *
8382__strsep_2c (char **__s, char __reject1, char __reject2)
8383{
8384 register char *__retval = *__s;
8385 if (__retval != ((void *)0))
8386 {
8387 register char *__cp = __retval;
8388 while (1)
8389 {
8390 if (*__cp == '\0')
8391 {
8392 __cp = ((void *)0);
8393 break;
8394 }
8395 if (*__cp == __reject1 || *__cp == __reject2)
8396 {
8397 *__cp++ = '\0';
8398 break;
8399 }
8400 ++__cp;
8401 }
8402 *__s = __cp;
8403 }
8404 return __retval;
8405}
8406
8407extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
8408 char __reject3);
8409extern __inline char *
8410__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
8411{
8412 register char *__retval = *__s;
8413 if (__retval != ((void *)0))
8414 {
8415 register char *__cp = __retval;
8416 while (1)
8417 {
8418 if (*__cp == '\0')
8419 {
8420 __cp = ((void *)0);
8421 break;
8422 }
8423 if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
8424 {
8425 *__cp++ = '\0';
8426 break;
8427 }
8428 ++__cp;
8429 }
8430 *__s = __cp;
8431 }
8432 return __retval;
8433}
8434# 1304 "../string/bits/string2.h"
8435extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
8436# 1323 "../string/bits/string2.h"
8437extern char *__strndup (__const char *__string, size_t __n)
8438 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
8439# 1 "../include/bits/string2.h" 2
8440# 418 "../string/string.h" 2
8441# 426 "../string/string.h"
8442
8443# 50 "../include/string.h" 2
8444
8445extern __typeof (strcoll_l) __strcoll_l;
8446extern __typeof (strxfrm_l) __strxfrm_l;
8447extern __typeof (strcasecmp_l) __strcasecmp_l;
8448extern __typeof (strncasecmp_l) __strncasecmp_l;
8449# 68 "../include/string.h"
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466extern char *__strsep_g (char **__stringp, __const char *__delim);
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490# 118 "../include/string.h"
8491extern void *__memcpy_chk (void *__restrict __dest,
8492 const void *__restrict __src, size_t __len,
8493 size_t __destlen) __attribute__ ((__nothrow__));
8494extern void *__memmove_chk (void *__dest, const void *__src, size_t __len,
8495 size_t __destlen) __attribute__ ((__nothrow__));
8496extern void *__mempcpy_chk (void *__restrict __dest,
8497 const void *__restrict __src, size_t __len,
8498 size_t __destlen) __attribute__ ((__nothrow__));
8499extern void *__memset_chk (void *__dest, int __ch, size_t __len,
8500 size_t __destlen) __attribute__ ((__nothrow__));
8501extern char *__strcpy_chk (char *__restrict __dest,
8502 const char *__restrict __src,
8503 size_t __destlen) __attribute__ ((__nothrow__));
8504extern char *__stpcpy_chk (char *__restrict __dest,
8505 const char *__restrict __src,
8506 size_t __destlen) __attribute__ ((__nothrow__));
8507extern char *__strncpy_chk (char *__restrict __dest,
8508 const char *__restrict __src,
8509 size_t __len, size_t __destlen) __attribute__ ((__nothrow__));
8510extern char *__strcat_chk (char *__restrict __dest,
8511 const char *__restrict __src,
8512 size_t __destlen) __attribute__ ((__nothrow__));
8513extern char *__strncat_chk (char *__restrict __dest,
8514 const char *__restrict __src,
8515 size_t __len, size_t __destlen) __attribute__ ((__nothrow__));
8516# 26 "rtld.c" 2
8517# 1 "../include/unistd.h" 1
8518
8519# 1 "../posix/unistd.h" 1
8520# 28 "../posix/unistd.h"
8521
8522# 171 "../posix/unistd.h"
8523# 1 "../nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h" 1
8524# 172 "../posix/unistd.h" 2
8525
8526
8527
8528# 1 "../sysdeps/unix/sysv/linux/s390/bits/environments.h" 1
8529# 23 "../sysdeps/unix/sysv/linux/s390/bits/environments.h"
8530# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
8531# 24 "../sysdeps/unix/sysv/linux/s390/bits/environments.h" 2
8532# 176 "../posix/unistd.h" 2
8533# 195 "../posix/unistd.h"
8534# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
8535# 196 "../posix/unistd.h" 2
8536# 256 "../posix/unistd.h"
8537extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8538
8539
8540
8541
8542extern int euidaccess (__const char *__name, int __type)
8543 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8544
8545
8546extern int eaccess (__const char *__name, int __type)
8547 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8548
8549
8550
8551
8552
8553
8554extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
8555 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
8556# 299 "../posix/unistd.h"
8557extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
8558# 310 "../posix/unistd.h"
8559extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
8560 __attribute__ ((__nothrow__));
8561
8562
8563
8564
8565
8566
8567extern int close (int __fd);
8568
8569
8570
8571
8572
8573
8574extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
8575
8576
8577
8578
8579
8580extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
8581# 341 "../posix/unistd.h"
8582extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
8583 __off_t __offset) ;
8584
8585
8586
8587
8588
8589
8590extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
8591 __off_t __offset) ;
8592# 369 "../posix/unistd.h"
8593extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
8594 __off64_t __offset) ;
8595
8596
8597extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
8598 __off64_t __offset) ;
8599
8600
8601
8602
8603
8604
8605
8606extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ;
8607# 391 "../posix/unistd.h"
8608extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
8609# 403 "../posix/unistd.h"
8610extern unsigned int sleep (unsigned int __seconds);
8611
8612
8613
8614
8615
8616
8617extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
8618 __attribute__ ((__nothrow__));
8619
8620
8621
8622
8623
8624
8625extern int usleep (__useconds_t __useconds);
8626# 427 "../posix/unistd.h"
8627extern int pause (void);
8628
8629
8630
8631extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
8632 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
8633
8634
8635
8636extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ;
8637
8638
8639
8640
8641extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
8642 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
8643
8644
8645
8646
8647
8648
8649extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
8650 __gid_t __group, int __flag)
8651 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
8652
8653
8654
8655extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
8656
8657
8658
8659extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ;
8660# 469 "../posix/unistd.h"
8661extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ;
8662
8663
8664
8665
8666
8667extern char *get_current_dir_name (void) __attribute__ ((__nothrow__));
8668
8669
8670
8671
8672
8673
8674extern char *getwd (char *__buf)
8675 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
8676
8677
8678
8679
8680extern int dup (int __fd) __attribute__ ((__nothrow__)) ;
8681
8682
8683extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
8684
8685
8686extern char **__environ;
8687
8688extern char **environ;
8689
8690
8691
8692
8693
8694extern int execve (__const char *__path, char *__const __argv[],
8695 char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8696
8697
8698
8699
8700extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
8701 __attribute__ ((__nothrow__));
8702
8703
8704
8705
8706extern int execv (__const char *__path, char *__const __argv[])
8707 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8708
8709
8710
8711extern int execle (__const char *__path, __const char *__arg, ...)
8712 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8713
8714
8715
8716extern int execl (__const char *__path, __const char *__arg, ...)
8717 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8718
8719
8720
8721extern int execvp (__const char *__file, char *__const __argv[])
8722 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8723
8724
8725
8726
8727extern int execlp (__const char *__file, __const char *__arg, ...)
8728 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
8729
8730
8731
8732
8733extern int nice (int __inc) __attribute__ ((__nothrow__)) ;
8734
8735
8736
8737
8738extern void _exit (int __status) __attribute__ ((__noreturn__));
8739
8740
8741
8742
8743
8744# 1 "../bits/confname.h" 1
8745# 26 "../bits/confname.h"
8746enum
8747 {
8748 _PC_LINK_MAX,
8749
8750 _PC_MAX_CANON,
8751
8752 _PC_MAX_INPUT,
8753
8754 _PC_NAME_MAX,
8755
8756 _PC_PATH_MAX,
8757
8758 _PC_PIPE_BUF,
8759
8760 _PC_CHOWN_RESTRICTED,
8761
8762 _PC_NO_TRUNC,
8763
8764 _PC_VDISABLE,
8765
8766 _PC_SYNC_IO,
8767
8768 _PC_ASYNC_IO,
8769
8770 _PC_PRIO_IO,
8771
8772 _PC_SOCK_MAXBUF,
8773
8774 _PC_FILESIZEBITS,
8775
8776 _PC_REC_INCR_XFER_SIZE,
8777
8778 _PC_REC_MAX_XFER_SIZE,
8779
8780 _PC_REC_MIN_XFER_SIZE,
8781
8782 _PC_REC_XFER_ALIGN,
8783
8784 _PC_ALLOC_SIZE_MIN,
8785
8786 _PC_SYMLINK_MAX,
8787
8788 _PC_2_SYMLINKS
8789
8790 };
8791
8792
8793enum
8794 {
8795 _SC_ARG_MAX,
8796
8797 _SC_CHILD_MAX,
8798
8799 _SC_CLK_TCK,
8800
8801 _SC_NGROUPS_MAX,
8802
8803 _SC_OPEN_MAX,
8804
8805 _SC_STREAM_MAX,
8806
8807 _SC_TZNAME_MAX,
8808
8809 _SC_JOB_CONTROL,
8810
8811 _SC_SAVED_IDS,
8812
8813 _SC_REALTIME_SIGNALS,
8814
8815 _SC_PRIORITY_SCHEDULING,
8816
8817 _SC_TIMERS,
8818
8819 _SC_ASYNCHRONOUS_IO,
8820
8821 _SC_PRIORITIZED_IO,
8822
8823 _SC_SYNCHRONIZED_IO,
8824
8825 _SC_FSYNC,
8826
8827 _SC_MAPPED_FILES,
8828
8829 _SC_MEMLOCK,
8830
8831 _SC_MEMLOCK_RANGE,
8832
8833 _SC_MEMORY_PROTECTION,
8834
8835 _SC_MESSAGE_PASSING,
8836
8837 _SC_SEMAPHORES,
8838
8839 _SC_SHARED_MEMORY_OBJECTS,
8840
8841 _SC_AIO_LISTIO_MAX,
8842
8843 _SC_AIO_MAX,
8844
8845 _SC_AIO_PRIO_DELTA_MAX,
8846
8847 _SC_DELAYTIMER_MAX,
8848
8849 _SC_MQ_OPEN_MAX,
8850
8851 _SC_MQ_PRIO_MAX,
8852
8853 _SC_VERSION,
8854
8855 _SC_PAGESIZE,
8856
8857
8858 _SC_RTSIG_MAX,
8859
8860 _SC_SEM_NSEMS_MAX,
8861
8862 _SC_SEM_VALUE_MAX,
8863
8864 _SC_SIGQUEUE_MAX,
8865
8866 _SC_TIMER_MAX,
8867
8868
8869
8870
8871 _SC_BC_BASE_MAX,
8872
8873 _SC_BC_DIM_MAX,
8874
8875 _SC_BC_SCALE_MAX,
8876
8877 _SC_BC_STRING_MAX,
8878
8879 _SC_COLL_WEIGHTS_MAX,
8880
8881 _SC_EQUIV_CLASS_MAX,
8882
8883 _SC_EXPR_NEST_MAX,
8884
8885 _SC_LINE_MAX,
8886
8887 _SC_RE_DUP_MAX,
8888
8889 _SC_CHARCLASS_NAME_MAX,
8890
8891
8892 _SC_2_VERSION,
8893
8894 _SC_2_C_BIND,
8895
8896 _SC_2_C_DEV,
8897
8898 _SC_2_FORT_DEV,
8899
8900 _SC_2_FORT_RUN,
8901
8902 _SC_2_SW_DEV,
8903
8904 _SC_2_LOCALEDEF,
8905
8906
8907 _SC_PII,
8908
8909 _SC_PII_XTI,
8910
8911 _SC_PII_SOCKET,
8912
8913 _SC_PII_INTERNET,
8914
8915 _SC_PII_OSI,
8916
8917 _SC_POLL,
8918
8919 _SC_SELECT,
8920
8921 _SC_UIO_MAXIOV,
8922
8923 _SC_IOV_MAX = _SC_UIO_MAXIOV,
8924
8925 _SC_PII_INTERNET_STREAM,
8926
8927 _SC_PII_INTERNET_DGRAM,
8928
8929 _SC_PII_OSI_COTS,
8930
8931 _SC_PII_OSI_CLTS,
8932
8933 _SC_PII_OSI_M,
8934
8935 _SC_T_IOV_MAX,
8936
8937
8938
8939 _SC_THREADS,
8940
8941 _SC_THREAD_SAFE_FUNCTIONS,
8942
8943 _SC_GETGR_R_SIZE_MAX,
8944
8945 _SC_GETPW_R_SIZE_MAX,
8946
8947 _SC_LOGIN_NAME_MAX,
8948
8949 _SC_TTY_NAME_MAX,
8950
8951 _SC_THREAD_DESTRUCTOR_ITERATIONS,
8952
8953 _SC_THREAD_KEYS_MAX,
8954
8955 _SC_THREAD_STACK_MIN,
8956
8957 _SC_THREAD_THREADS_MAX,
8958
8959 _SC_THREAD_ATTR_STACKADDR,
8960
8961 _SC_THREAD_ATTR_STACKSIZE,
8962
8963 _SC_THREAD_PRIORITY_SCHEDULING,
8964
8965 _SC_THREAD_PRIO_INHERIT,
8966
8967 _SC_THREAD_PRIO_PROTECT,
8968
8969 _SC_THREAD_PROCESS_SHARED,
8970
8971
8972 _SC_NPROCESSORS_CONF,
8973
8974 _SC_NPROCESSORS_ONLN,
8975
8976 _SC_PHYS_PAGES,
8977
8978 _SC_AVPHYS_PAGES,
8979
8980 _SC_ATEXIT_MAX,
8981
8982 _SC_PASS_MAX,
8983
8984
8985 _SC_XOPEN_VERSION,
8986
8987 _SC_XOPEN_XCU_VERSION,
8988
8989 _SC_XOPEN_UNIX,
8990
8991 _SC_XOPEN_CRYPT,
8992
8993 _SC_XOPEN_ENH_I18N,
8994
8995 _SC_XOPEN_SHM,
8996
8997
8998 _SC_2_CHAR_TERM,
8999
9000 _SC_2_C_VERSION,
9001
9002 _SC_2_UPE,
9003
9004
9005 _SC_XOPEN_XPG2,
9006
9007 _SC_XOPEN_XPG3,
9008
9009 _SC_XOPEN_XPG4,
9010
9011
9012 _SC_CHAR_BIT,
9013
9014 _SC_CHAR_MAX,
9015
9016 _SC_CHAR_MIN,
9017
9018 _SC_INT_MAX,
9019
9020 _SC_INT_MIN,
9021
9022 _SC_LONG_BIT,
9023
9024 _SC_WORD_BIT,
9025
9026 _SC_MB_LEN_MAX,
9027
9028 _SC_NZERO,
9029
9030 _SC_SSIZE_MAX,
9031
9032 _SC_SCHAR_MAX,
9033
9034 _SC_SCHAR_MIN,
9035
9036 _SC_SHRT_MAX,
9037
9038 _SC_SHRT_MIN,
9039
9040 _SC_UCHAR_MAX,
9041
9042 _SC_UINT_MAX,
9043
9044 _SC_ULONG_MAX,
9045
9046 _SC_USHRT_MAX,
9047
9048
9049 _SC_NL_ARGMAX,
9050
9051 _SC_NL_LANGMAX,
9052
9053 _SC_NL_MSGMAX,
9054
9055 _SC_NL_NMAX,
9056
9057 _SC_NL_SETMAX,
9058
9059 _SC_NL_TEXTMAX,
9060
9061
9062 _SC_XBS5_ILP32_OFF32,
9063
9064 _SC_XBS5_ILP32_OFFBIG,
9065
9066 _SC_XBS5_LP64_OFF64,
9067
9068 _SC_XBS5_LPBIG_OFFBIG,
9069
9070
9071 _SC_XOPEN_LEGACY,
9072
9073 _SC_XOPEN_REALTIME,
9074
9075 _SC_XOPEN_REALTIME_THREADS,
9076
9077
9078 _SC_ADVISORY_INFO,
9079
9080 _SC_BARRIERS,
9081
9082 _SC_BASE,
9083
9084 _SC_C_LANG_SUPPORT,
9085
9086 _SC_C_LANG_SUPPORT_R,
9087
9088 _SC_CLOCK_SELECTION,
9089
9090 _SC_CPUTIME,
9091
9092 _SC_THREAD_CPUTIME,
9093
9094 _SC_DEVICE_IO,
9095
9096 _SC_DEVICE_SPECIFIC,
9097
9098 _SC_DEVICE_SPECIFIC_R,
9099
9100 _SC_FD_MGMT,
9101
9102 _SC_FIFO,
9103
9104 _SC_PIPE,
9105
9106 _SC_FILE_ATTRIBUTES,
9107
9108 _SC_FILE_LOCKING,
9109
9110 _SC_FILE_SYSTEM,
9111
9112 _SC_MONOTONIC_CLOCK,
9113
9114 _SC_MULTI_PROCESS,
9115
9116 _SC_SINGLE_PROCESS,
9117
9118 _SC_NETWORKING,
9119
9120 _SC_READER_WRITER_LOCKS,
9121
9122 _SC_SPIN_LOCKS,
9123
9124 _SC_REGEXP,
9125
9126 _SC_REGEX_VERSION,
9127
9128 _SC_SHELL,
9129
9130 _SC_SIGNALS,
9131
9132 _SC_SPAWN,
9133
9134 _SC_SPORADIC_SERVER,
9135
9136 _SC_THREAD_SPORADIC_SERVER,
9137
9138 _SC_SYSTEM_DATABASE,
9139
9140 _SC_SYSTEM_DATABASE_R,
9141
9142 _SC_TIMEOUTS,
9143
9144 _SC_TYPED_MEMORY_OBJECTS,
9145
9146 _SC_USER_GROUPS,
9147
9148 _SC_USER_GROUPS_R,
9149
9150 _SC_2_PBS,
9151
9152 _SC_2_PBS_ACCOUNTING,
9153
9154 _SC_2_PBS_LOCATE,
9155
9156 _SC_2_PBS_MESSAGE,
9157
9158 _SC_2_PBS_TRACK,
9159
9160 _SC_SYMLOOP_MAX,
9161
9162 _SC_STREAMS,
9163
9164 _SC_2_PBS_CHECKPOINT,
9165
9166
9167 _SC_V6_ILP32_OFF32,
9168
9169 _SC_V6_ILP32_OFFBIG,
9170
9171 _SC_V6_LP64_OFF64,
9172
9173 _SC_V6_LPBIG_OFFBIG,
9174
9175
9176 _SC_HOST_NAME_MAX,
9177
9178 _SC_TRACE,
9179
9180 _SC_TRACE_EVENT_FILTER,
9181
9182 _SC_TRACE_INHERIT,
9183
9184 _SC_TRACE_LOG,
9185
9186
9187 _SC_LEVEL1_ICACHE_SIZE,
9188
9189 _SC_LEVEL1_ICACHE_ASSOC,
9190
9191 _SC_LEVEL1_ICACHE_LINESIZE,
9192
9193 _SC_LEVEL1_DCACHE_SIZE,
9194
9195 _SC_LEVEL1_DCACHE_ASSOC,
9196
9197 _SC_LEVEL1_DCACHE_LINESIZE,
9198
9199 _SC_LEVEL2_CACHE_SIZE,
9200
9201 _SC_LEVEL2_CACHE_ASSOC,
9202
9203 _SC_LEVEL2_CACHE_LINESIZE,
9204
9205 _SC_LEVEL3_CACHE_SIZE,
9206
9207 _SC_LEVEL3_CACHE_ASSOC,
9208
9209 _SC_LEVEL3_CACHE_LINESIZE,
9210
9211 _SC_LEVEL4_CACHE_SIZE,
9212
9213 _SC_LEVEL4_CACHE_ASSOC,
9214
9215 _SC_LEVEL4_CACHE_LINESIZE,
9216
9217
9218
9219 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
9220
9221 _SC_RAW_SOCKETS
9222
9223 };
9224
9225
9226enum
9227 {
9228 _CS_PATH,
9229
9230
9231 _CS_V6_WIDTH_RESTRICTED_ENVS,
9232
9233
9234 _CS_GNU_LIBC_VERSION,
9235
9236 _CS_GNU_LIBPTHREAD_VERSION,
9237
9238
9239 _CS_LFS_CFLAGS = 1000,
9240
9241 _CS_LFS_LDFLAGS,
9242
9243 _CS_LFS_LIBS,
9244
9245 _CS_LFS_LINTFLAGS,
9246
9247 _CS_LFS64_CFLAGS,
9248
9249 _CS_LFS64_LDFLAGS,
9250
9251 _CS_LFS64_LIBS,
9252
9253 _CS_LFS64_LINTFLAGS,
9254
9255
9256 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
9257
9258 _CS_XBS5_ILP32_OFF32_LDFLAGS,
9259
9260 _CS_XBS5_ILP32_OFF32_LIBS,
9261
9262 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
9263
9264 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
9265
9266 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
9267
9268 _CS_XBS5_ILP32_OFFBIG_LIBS,
9269
9270 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
9271
9272 _CS_XBS5_LP64_OFF64_CFLAGS,
9273
9274 _CS_XBS5_LP64_OFF64_LDFLAGS,
9275
9276 _CS_XBS5_LP64_OFF64_LIBS,
9277
9278 _CS_XBS5_LP64_OFF64_LINTFLAGS,
9279
9280 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
9281
9282 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
9283
9284 _CS_XBS5_LPBIG_OFFBIG_LIBS,
9285
9286 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
9287
9288
9289 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
9290
9291 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
9292
9293 _CS_POSIX_V6_ILP32_OFF32_LIBS,
9294
9295 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
9296
9297 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
9298
9299 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
9300
9301 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
9302
9303 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
9304
9305 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
9306
9307 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
9308
9309 _CS_POSIX_V6_LP64_OFF64_LIBS,
9310
9311 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
9312
9313 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
9314
9315 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
9316
9317 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
9318
9319 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
9320
9321 };
9322# 553 "../posix/unistd.h" 2
9323
9324
9325extern long int pathconf (__const char *__path, int __name)
9326 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9327
9328
9329extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
9330
9331
9332extern long int sysconf (int __name) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
9333
9334
9335
9336extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
9337
9338
9339
9340
9341extern __pid_t getpid (void) __attribute__ ((__nothrow__));
9342
9343
9344extern __pid_t getppid (void) __attribute__ ((__nothrow__));
9345
9346
9347
9348
9349extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
9350# 589 "../posix/unistd.h"
9351extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
9352
9353extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
9354
9355
9356
9357
9358
9359
9360extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
9361# 615 "../posix/unistd.h"
9362extern int setpgrp (void) __attribute__ ((__nothrow__));
9363# 632 "../posix/unistd.h"
9364extern __pid_t setsid (void) __attribute__ ((__nothrow__));
9365
9366
9367
9368extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));
9369
9370
9371
9372extern __uid_t getuid (void) __attribute__ ((__nothrow__));
9373
9374
9375extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
9376
9377
9378extern __gid_t getgid (void) __attribute__ ((__nothrow__));
9379
9380
9381extern __gid_t getegid (void) __attribute__ ((__nothrow__));
9382
9383
9384
9385
9386extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) ;
9387
9388
9389
9390extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__));
9391
9392
9393
9394
9395
9396
9397extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
9398
9399
9400
9401
9402extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
9403
9404
9405
9406
9407extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
9408
9409
9410
9411
9412
9413
9414extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
9415
9416
9417
9418
9419extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
9420
9421
9422
9423
9424extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
9425
9426
9427
9428
9429
9430extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
9431 __attribute__ ((__nothrow__));
9432
9433
9434
9435extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
9436 __attribute__ ((__nothrow__));
9437
9438
9439
9440extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
9441 __attribute__ ((__nothrow__));
9442
9443
9444
9445extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
9446 __attribute__ ((__nothrow__));
9447
9448
9449
9450
9451
9452
9453extern __pid_t fork (void) __attribute__ ((__nothrow__));
9454
9455
9456
9457
9458
9459
9460extern __pid_t vfork (void) __attribute__ ((__nothrow__));
9461
9462
9463
9464
9465
9466extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
9467
9468
9469
9470extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
9471 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
9472
9473
9474
9475extern int isatty (int __fd) __attribute__ ((__nothrow__));
9476
9477
9478
9479
9480
9481extern int ttyslot (void) __attribute__ ((__nothrow__));
9482
9483
9484
9485
9486extern int link (__const char *__from, __const char *__to)
9487 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
9488
9489
9490
9491
9492extern int linkat (int __fromfd, __const char *__from, int __tofd,
9493 __const char *__to, int __flags)
9494 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) ;
9495
9496
9497
9498
9499extern int symlink (__const char *__from, __const char *__to)
9500 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
9501
9502
9503
9504
9505extern int readlink (__const char *__restrict __path, char *__restrict __buf,
9506 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
9507
9508
9509
9510
9511extern int symlinkat (__const char *__from, int __tofd,
9512 __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
9513
9514
9515extern int readlinkat (int __fd, __const char *__restrict __path,
9516 char *__restrict __buf, size_t __len)
9517 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) ;
9518
9519
9520
9521extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9522
9523
9524
9525extern int unlinkat (int __fd, __const char *__name, int __flag)
9526 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
9527
9528
9529
9530extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9531
9532
9533
9534extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
9535
9536
9537extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
9538
9539
9540
9541
9542
9543
9544extern char *getlogin (void);
9545
9546
9547
9548
9549
9550
9551
9552extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
9553
9554
9555
9556
9557extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9558# 834 "../posix/unistd.h"
9559# 1 "../include/getopt.h" 1
9560
9561
9562
9563# 1 "../posix/getopt.h" 1
9564# 59 "../posix/getopt.h"
9565extern char *optarg;
9566# 73 "../posix/getopt.h"
9567extern int optind;
9568
9569
9570
9571
9572extern int opterr;
9573
9574
9575
9576extern int optopt;
9577# 152 "../posix/getopt.h"
9578extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
9579 __attribute__ ((__nothrow__));
9580# 5 "../include/getopt.h" 2
9581# 835 "../posix/unistd.h" 2
9582
9583
9584
9585
9586
9587
9588
9589extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9590
9591
9592
9593
9594
9595
9596extern int sethostname (__const char *__name, size_t __len)
9597 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
9598
9599
9600
9601extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ;
9602
9603
9604
9605
9606
9607extern int getdomainname (char *__name, size_t __len)
9608 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
9609extern int setdomainname (__const char *__name, size_t __len)
9610 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
9611
9612
9613
9614
9615
9616extern int vhangup (void) __attribute__ ((__nothrow__));
9617
9618
9619extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
9620
9621
9622
9623
9624
9625
9626
9627extern int profil (unsigned short int *__sample_buffer, size_t __size,
9628 size_t __offset, unsigned int __scale)
9629 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9630
9631
9632
9633
9634
9635extern int acct (__const char *__name) __attribute__ ((__nothrow__));
9636
9637
9638
9639extern char *getusershell (void) __attribute__ ((__nothrow__));
9640extern void endusershell (void) __attribute__ ((__nothrow__));
9641extern void setusershell (void) __attribute__ ((__nothrow__));
9642
9643
9644
9645
9646
9647extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) ;
9648
9649
9650
9651
9652
9653
9654extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
9655
9656
9657
9658extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
9659# 920 "../posix/unistd.h"
9660extern int fsync (int __fd);
9661
9662
9663
9664
9665
9666
9667extern long int gethostid (void);
9668
9669
9670extern void sync (void) __attribute__ ((__nothrow__));
9671
9672
9673
9674
9675extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
9676
9677
9678
9679
9680extern int getdtablesize (void) __attribute__ ((__nothrow__));
9681
9682
9683
9684
9685extern int truncate (__const char *__file, __off_t __length)
9686 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
9687# 957 "../posix/unistd.h"
9688extern int truncate64 (__const char *__file, __off64_t __length)
9689 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
9690# 967 "../posix/unistd.h"
9691extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ;
9692# 977 "../posix/unistd.h"
9693extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)) ;
9694# 987 "../posix/unistd.h"
9695extern int brk (void *__addr) __attribute__ ((__nothrow__)) ;
9696
9697
9698
9699
9700
9701extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
9702# 1008 "../posix/unistd.h"
9703extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
9704# 1062 "../posix/unistd.h"
9705extern int fdatasync (int __fildes) __attribute__ ((__nothrow__));
9706
9707
9708
9709
9710
9711
9712
9713extern char *crypt (__const char *__key, __const char *__salt)
9714 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9715
9716
9717
9718extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9719
9720
9721
9722
9723
9724
9725extern void swab (__const void *__restrict __from, void *__restrict __to,
9726 ssize_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9727
9728
9729
9730
9731
9732
9733
9734extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
9735# 1100 "../posix/unistd.h"
9736
9737# 3 "../include/unistd.h" 2
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755extern int __access (__const char *__name, int __type);
9756extern int __euidaccess (__const char *__name, int __type);
9757extern __off64_t __lseek64 (int __fd, __off64_t __offset, int __whence);
9758extern __off_t __lseek (int __fd, __off_t __offset, int __whence);
9759
9760extern __off_t __libc_lseek (int __fd, __off_t __offset, int __whence);
9761extern __off64_t __libc_lseek64 (int __fd, __off64_t __offset, int __whence);
9762extern ssize_t __pread (int __fd, void *__buf, size_t __nbytes,
9763 __off_t __offset);
9764extern ssize_t __libc_pread (int __fd, void *__buf, size_t __nbytes,
9765 __off_t __offset);
9766extern ssize_t __pread64 (int __fd, void *__buf, size_t __nbytes,
9767 __off64_t __offset);
9768extern ssize_t __libc_pread64 (int __fd, void *__buf, size_t __nbytes,
9769 __off64_t __offset);
9770extern ssize_t __pwrite (int __fd, __const void *__buf, size_t __n,
9771 __off_t __offset);
9772extern ssize_t __libc_pwrite (int __fd, __const void *__buf, size_t __n,
9773 __off_t __offset);
9774extern ssize_t __pwrite64 (int __fd, __const void *__buf, size_t __n,
9775 __off64_t __offset);
9776
9777extern ssize_t __libc_pwrite64 (int __fd, __const void *__buf, size_t __n,
9778 __off64_t __offset);
9779extern ssize_t __libc_read (int __fd, void *__buf, size_t __n);
9780
9781extern ssize_t __libc_write (int __fd, __const void *__buf, size_t __n);
9782
9783extern int __pipe (int __pipedes[2]);
9784
9785extern unsigned int __sleep (unsigned int __seconds);
9786extern int __chown (__const char *__file,
9787 __uid_t __owner, __gid_t __group);
9788
9789extern int __fchown (int __fd,
9790 __uid_t __owner, __gid_t __group);
9791extern int __lchown (__const char *__file, __uid_t __owner,
9792 __gid_t __group);
9793extern int __chdir (__const char *__path);
9794extern int __fchdir (int __fd);
9795extern char *__getcwd (char *__buf, size_t __size);
9796extern int __rmdir (const char *__path);
9797
9798
9799
9800
9801
9802
9803
9804char *__canonicalize_directory_name_internal (__const char *__thisdir,
9805 char *__buf,
9806 size_t __size) __attribute__ ((visibility ("hidden")));
9807
9808extern int __dup (int __fd);
9809extern int __dup2 (int __fd, int __fd2);
9810
9811extern int __execve (__const char *__path, char *__const __argv[],
9812 char *__const __envp[]);
9813extern long int __pathconf (__const char *__path, int __name);
9814extern long int __fpathconf (int __fd, int __name);
9815extern long int __sysconf (int __name);
9816
9817extern __pid_t __getpid (void);
9818
9819extern __pid_t __getppid (void);
9820extern __pid_t __setsid (void);
9821extern __uid_t __getuid (void);
9822extern __uid_t __geteuid (void);
9823extern __gid_t __getgid (void);
9824extern __gid_t __getegid (void);
9825extern int __getgroups (int __size, __gid_t __list[]);
9826
9827extern int __group_member (__gid_t __gid);
9828extern int __setuid (__uid_t __uid);
9829extern int __setreuid (__uid_t __ruid, __uid_t __euid);
9830extern int __setgid (__gid_t __gid);
9831extern int __setpgid (__pid_t __pid, __pid_t __pgid);
9832
9833extern int __setregid (__gid_t __rgid, __gid_t __egid);
9834extern int __getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid);
9835extern int __getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid);
9836extern int __setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid);
9837extern int __setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid);
9838
9839
9840
9841
9842extern __pid_t __vfork (void);
9843
9844extern int __ttyname_r (int __fd, char *__buf, size_t __buflen);
9845extern int __isatty (int __fd);
9846extern int __link (__const char *__from, __const char *__to);
9847extern int __symlink (__const char *__from, __const char *__to);
9848extern int __readlink (__const char *__path, char *__buf, size_t __len);
9849extern int __unlink (__const char *__name);
9850extern int __gethostname (char *__name, size_t __len);
9851extern int __profil (unsigned short int *__sample_buffer, size_t __size,
9852 size_t __offset, unsigned int __scale);
9853extern int __getdtablesize (void);
9854extern int __brk (void *__addr);
9855extern int __close (int __fd);
9856
9857extern int __libc_close (int __fd);
9858extern ssize_t __read (int __fd, void *__buf, size_t __nbytes);
9859
9860extern ssize_t __write (int __fd, __const void *__buf, size_t __n);
9861
9862extern __pid_t __fork (void);
9863
9864extern int __getpagesize (void) __attribute__ ((__const__));
9865
9866extern int __ftruncate (int __fd, __off_t __length);
9867extern int __ftruncate64 (int __fd, __off64_t __length);
9868extern int __truncate (const char *path, __off_t __length);
9869extern void *__sbrk (intptr_t __delta);
9870
9871
9872
9873
9874
9875
9876
9877
9878extern int __libc_enable_secure __attribute__ ((section (".data.rel.ro")));
9879extern int __libc_enable_secure_decided;
9880
9881
9882extern int __libc_enable_secure_internal __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden")));
9883
9884
9885
9886
9887extern void __libc_check_standard_fds (void);
9888
9889
9890
9891extern void __exit_thread (int val) __attribute__ ((noreturn));
9892
9893
9894extern __pid_t __libc_fork (void);
9895
9896
9897
9898extern int __libc_pause (void);
9899# 27 "rtld.c" 2
9900# 1 "../include/sys/mman.h" 1
9901
9902# 1 "../misc/sys/mman.h" 1
9903# 26 "../misc/sys/mman.h"
9904# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
9905# 27 "../misc/sys/mman.h" 2
9906# 42 "../misc/sys/mman.h"
9907# 1 "../sysdeps/unix/sysv/linux/s390/bits/mman.h" 1
9908# 43 "../misc/sys/mman.h" 2
9909
9910
9911
9912
9913
9914# 58 "../misc/sys/mman.h"
9915extern void *mmap (void *__addr, size_t __len, int __prot,
9916 int __flags, int __fd, __off_t __offset) __attribute__ ((__nothrow__));
9917# 71 "../misc/sys/mman.h"
9918extern void *mmap64 (void *__addr, size_t __len, int __prot,
9919 int __flags, int __fd, __off64_t __offset) __attribute__ ((__nothrow__));
9920
9921
9922
9923
9924extern int munmap (void *__addr, size_t __len) __attribute__ ((__nothrow__));
9925
9926
9927
9928
9929extern int mprotect (void *__addr, size_t __len, int __prot) __attribute__ ((__nothrow__));
9930
9931
9932
9933
9934
9935
9936
9937extern int msync (void *__addr, size_t __len, int __flags);
9938
9939
9940
9941
9942extern int madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__));
9943
9944
9945
9946extern int posix_madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__));
9947
9948
9949
9950
9951extern int mlock (__const void *__addr, size_t __len) __attribute__ ((__nothrow__));
9952
9953
9954extern int munlock (__const void *__addr, size_t __len) __attribute__ ((__nothrow__));
9955
9956
9957
9958
9959extern int mlockall (int __flags) __attribute__ ((__nothrow__));
9960
9961
9962
9963extern int munlockall (void) __attribute__ ((__nothrow__));
9964
9965
9966
9967
9968
9969
9970
9971extern void *mremap (void *__addr, size_t __old_len, size_t __new_len,
9972 int __flags, ...) __attribute__ ((__nothrow__));
9973
9974
9975
9976
9977
9978
9979extern int mincore (void *__start, size_t __len, unsigned char *__vec)
9980 __attribute__ ((__nothrow__));
9981
9982
9983
9984extern int remap_file_pages (void *__start, size_t __size, int __prot,
9985 size_t __pgoff, int __flags) __attribute__ ((__nothrow__));
9986
9987
9988
9989
9990extern int shm_open (__const char *__name, int __oflag, mode_t __mode);
9991
9992
9993extern int shm_unlink (__const char *__name);
9994
9995
9996# 3 "../include/sys/mman.h" 2
9997
9998
9999extern void *__mmap (void *__addr, size_t __len, int __prot,
10000 int __flags, int __fd, __off_t __offset);
10001extern void *__mmap64 (void *__addr, size_t __len, int __prot,
10002 int __flags, int __fd, __off64_t __offset);
10003extern int __munmap (void *__addr, size_t __len);
10004extern int __mprotect (void *__addr, size_t __len, int __prot);
10005
10006
10007extern void *__mremap (void *__addr, size_t __old_len,
10008 size_t __new_len, int __flags, ...);
10009# 28 "rtld.c" 2
10010
10011
10012# 1 "../sysdeps/unix/sysv/linux/ldsodefs.h" 1
10013# 22 "../sysdeps/unix/sysv/linux/ldsodefs.h"
10014# 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1
10015# 23 "../sysdeps/unix/sysv/linux/ldsodefs.h" 2
10016
10017
10018# 1 "../sysdeps/generic/ldsodefs.h" 1
10019# 28 "../sysdeps/generic/ldsodefs.h"
10020# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
10021# 29 "../sysdeps/generic/ldsodefs.h" 2
10022
10023
10024
10025
10026# 1 "../include/fpu_control.h" 1
10027# 1 "../sysdeps/s390/fpu/fpu_control.h" 1
10028# 35 "../sysdeps/s390/fpu/fpu_control.h"
10029typedef unsigned int fpu_control_t;
10030
10031
10032
10033
10034
10035
10036extern fpu_control_t __fpu_control;
10037# 2 "../include/fpu_control.h" 2
10038
10039
10040extern void __setfpucw (fpu_control_t);
10041# 34 "../sysdeps/generic/ldsodefs.h" 2
10042
10043
10044# 1 "../sysdeps/generic/dl-lookupcfg.h" 1
10045# 37 "../sysdeps/generic/ldsodefs.h" 2
10046# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
10047# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
10048# 1 "../sysdeps/generic/dl-sysdep.h" 1
10049# 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
10050# 38 "../sysdeps/generic/ldsodefs.h" 2
10051# 1 "../nptl/sysdeps/pthread/bits/libc-lock.h" 1
10052# 23 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10053# 1 "../include/pthread.h" 1
10054
10055
10056
10057extern void __pthread_initialize (void) __attribute__ ((weak));
10058# 24 "../nptl/sysdeps/pthread/bits/libc-lock.h" 2
10059
10060# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
10061# 26 "../nptl/sysdeps/pthread/bits/libc-lock.h" 2
10062# 37 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10063# 1 "../nptl/sysdeps/pthread/pthread-functions.h" 1
10064# 23 "../nptl/sysdeps/pthread/pthread-functions.h"
10065# 1 "../include/pthread.h" 1
10066
10067
10068
10069extern void __pthread_initialize (void) __attribute__ ((weak));
10070# 24 "../nptl/sysdeps/pthread/pthread-functions.h" 2
10071
10072# 1 "../nptl/sysdeps/unix/sysv/linux/internaltypes.h" 1
10073# 26 "../nptl/sysdeps/unix/sysv/linux/internaltypes.h"
10074struct pthread_attr
10075{
10076
10077 struct sched_param schedparam;
10078 int schedpolicy;
10079
10080 int flags;
10081
10082 size_t guardsize;
10083
10084 void *stackaddr;
10085 size_t stacksize;
10086
10087 cpu_set_t *cpuset;
10088 size_t cpusetsize;
10089};
10090# 53 "../nptl/sysdeps/unix/sysv/linux/internaltypes.h"
10091struct pthread_mutexattr
10092{
10093
10094
10095
10096
10097
10098
10099 int mutexkind;
10100};
10101
10102
10103
10104struct pthread_condattr
10105{
10106
10107
10108
10109
10110
10111
10112 int value;
10113};
10114# 85 "../nptl/sysdeps/unix/sysv/linux/internaltypes.h"
10115struct pthread_rwlockattr
10116{
10117 int lockkind;
10118 int pshared;
10119};
10120
10121
10122
10123struct pthread_barrier
10124{
10125 unsigned int curr_event;
10126 int lock;
10127 unsigned int left;
10128 unsigned int init_count;
10129};
10130
10131
10132
10133struct pthread_barrierattr
10134{
10135 int pshared;
10136};
10137
10138
10139
10140struct pthread_key_struct
10141{
10142
10143
10144
10145
10146 uintptr_t seq;
10147
10148
10149 void (*destr) (void *);
10150};
10151# 140 "../nptl/sysdeps/unix/sysv/linux/internaltypes.h"
10152struct sem
10153{
10154 unsigned int count;
10155};
10156
10157
10158
10159typedef struct
10160{
10161 pthread_cond_t *cond;
10162} pthread_cond_2_0_t;
10163# 26 "../nptl/sysdeps/pthread/pthread-functions.h" 2
10164
10165struct xid_command;
10166
10167
10168
10169struct pthread_functions
10170{
10171 int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
10172 int (*ptr___pthread_attr_init_2_0) (pthread_attr_t *);
10173 int (*ptr___pthread_attr_init_2_1) (pthread_attr_t *);
10174 int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *);
10175 int (*ptr_pthread_attr_setdetachstate) (pthread_attr_t *, int);
10176 int (*ptr_pthread_attr_getinheritsched) (const pthread_attr_t *, int *);
10177 int (*ptr_pthread_attr_setinheritsched) (pthread_attr_t *, int);
10178 int (*ptr_pthread_attr_getschedparam) (const pthread_attr_t *,
10179 struct sched_param *);
10180 int (*ptr_pthread_attr_setschedparam) (pthread_attr_t *,
10181 const struct sched_param *);
10182 int (*ptr_pthread_attr_getschedpolicy) (const pthread_attr_t *, int *);
10183 int (*ptr_pthread_attr_setschedpolicy) (pthread_attr_t *, int);
10184 int (*ptr_pthread_attr_getscope) (const pthread_attr_t *, int *);
10185 int (*ptr_pthread_attr_setscope) (pthread_attr_t *, int);
10186 int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *);
10187 int (*ptr_pthread_condattr_init) (pthread_condattr_t *);
10188 int (*ptr___pthread_cond_broadcast) (pthread_cond_t *);
10189 int (*ptr___pthread_cond_destroy) (pthread_cond_t *);
10190 int (*ptr___pthread_cond_init) (pthread_cond_t *,
10191 const pthread_condattr_t *);
10192 int (*ptr___pthread_cond_signal) (pthread_cond_t *);
10193 int (*ptr___pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
10194 int (*ptr___pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
10195 const struct timespec *);
10196 int (*ptr___pthread_cond_broadcast_2_0) (pthread_cond_2_0_t *);
10197 int (*ptr___pthread_cond_destroy_2_0) (pthread_cond_2_0_t *);
10198 int (*ptr___pthread_cond_init_2_0) (pthread_cond_2_0_t *,
10199 const pthread_condattr_t *);
10200 int (*ptr___pthread_cond_signal_2_0) (pthread_cond_2_0_t *);
10201 int (*ptr___pthread_cond_wait_2_0) (pthread_cond_2_0_t *, pthread_mutex_t *);
10202 int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
10203 pthread_mutex_t *,
10204 const struct timespec *);
10205 int (*ptr_pthread_equal) (pthread_t, pthread_t);
10206 void (*ptr___pthread_exit) (void *);
10207 int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
10208 int (*ptr_pthread_setschedparam) (pthread_t, int,
10209 const struct sched_param *);
10210 int (*ptr_pthread_mutex_destroy) (pthread_mutex_t *);
10211 int (*ptr_pthread_mutex_init) (pthread_mutex_t *,
10212 const pthread_mutexattr_t *);
10213 int (*ptr_pthread_mutex_lock) (pthread_mutex_t *);
10214 int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *);
10215 pthread_t (*ptr_pthread_self) (void);
10216 int (*ptr_pthread_setcancelstate) (int, int *);
10217 int (*ptr_pthread_setcanceltype) (int, int *);
10218 void (*ptr___pthread_cleanup_upto) (__jmp_buf, char *);
10219 int (*ptr___pthread_once) (pthread_once_t *, void (*) (void));
10220 int (*ptr___pthread_rwlock_rdlock) (pthread_rwlock_t *);
10221 int (*ptr___pthread_rwlock_wrlock) (pthread_rwlock_t *);
10222 int (*ptr___pthread_rwlock_unlock) (pthread_rwlock_t *);
10223 int (*ptr___pthread_key_create) (pthread_key_t *, void (*) (void *));
10224 void *(*ptr___pthread_getspecific) (pthread_key_t);
10225 int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
10226 void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer *,
10227 void (*) (void *), void *);
10228 void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer *,
10229 int);
10230
10231 unsigned int *ptr_nthreads;
10232 void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *)
10233 __attribute ((noreturn)) ;
10234 void (*ptr__nptl_deallocate_tsd) (void);
10235 int (*ptr__nptl_setxid) (struct xid_command *);
10236};
10237
10238
10239extern struct pthread_functions __libc_pthread_functions __attribute__ ((visibility ("hidden")));
10240# 38 "../nptl/sysdeps/pthread/bits/libc-lock.h" 2
10241
10242
10243
10244
10245
10246typedef pthread_mutex_t __libc_lock_t;
10247typedef struct { pthread_mutex_t mutex; } __libc_lock_recursive_t;
10248
10249
10250
10251
10252typedef struct { pthread_mutex_t mutex; } __rtld_lock_recursive_t;
10253
10254typedef pthread_rwlock_t __libc_rwlock_t;
10255# 62 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10256typedef pthread_key_t __libc_key_t;
10257# 369 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10258extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
10259 void (*routine) (void *), void *arg);
10260extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
10261 int execute);
10262extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
10263 void (*routine) (void *), void *arg);
10264extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
10265 int execute);
10266# 411 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10267extern __inline void
10268__libc_cleanup_routine (struct __pthread_cleanup_frame *f)
10269{
10270 if (f->__do_it)
10271 f->__cancel_routine (f->__cancel_arg);
10272}
10273# 448 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10274extern int __register_atfork (void (*__prepare) (void),
10275 void (*__parent) (void),
10276 void (*__child) (void),
10277 void *__dso_handle);
10278
10279
10280
10281
10282extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
10283 __const pthread_mutexattr_t *__mutex_attr);
10284
10285extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
10286
10287extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
10288
10289extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
10290
10291extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
10292
10293extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
10294
10295extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
10296
10297extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
10298 int __kind);
10299
10300
10301extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
10302 __const pthread_rwlockattr_t *__attr);
10303
10304extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
10305
10306extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
10307
10308extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
10309
10310extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
10311
10312extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
10313
10314extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
10315
10316
10317extern int __pthread_key_create (pthread_key_t *__key,
10318 void (*__destr_function) (void *));
10319
10320extern int __pthread_setspecific (pthread_key_t __key,
10321 __const void *__pointer);
10322
10323extern void *__pthread_getspecific (pthread_key_t __key);
10324
10325extern int __pthread_once (pthread_once_t *__once_control,
10326 void (*__init_routine) (void));
10327
10328extern int __pthread_atfork (void (*__prepare) (void),
10329 void (*__parent) (void),
10330 void (*__child) (void));
10331# 513 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10332# 1 "../sysdeps/generic/bp-sym.h" 1
10333# 514 "../nptl/sysdeps/pthread/bits/libc-lock.h" 2
10334
10335
10336
10337
10338# 517 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10339#pragma weak __pthread_mutex_init
10340# 517 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10341
10342
10343# 518 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10344#pragma weak __pthread_mutex_destroy
10345# 518 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10346
10347
10348# 519 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10349#pragma weak __pthread_mutex_lock
10350# 519 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10351
10352
10353# 520 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10354#pragma weak __pthread_mutex_trylock
10355# 520 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10356
10357
10358# 521 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10359#pragma weak __pthread_mutex_unlock
10360# 521 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10361
10362
10363# 522 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10364#pragma weak __pthread_mutexattr_init
10365# 522 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10366
10367
10368# 523 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10369#pragma weak __pthread_mutexattr_destroy
10370# 523 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10371
10372
10373# 524 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10374#pragma weak __pthread_mutexattr_settype
10375# 524 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10376
10377
10378# 525 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10379#pragma weak __pthread_rwlock_init
10380# 525 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10381
10382
10383# 526 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10384#pragma weak __pthread_rwlock_destroy
10385# 526 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10386
10387
10388# 527 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10389#pragma weak __pthread_rwlock_rdlock
10390# 527 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10391
10392
10393# 528 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10394#pragma weak __pthread_rwlock_tryrdlock
10395# 528 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10396
10397
10398# 529 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10399#pragma weak __pthread_rwlock_wrlock
10400# 529 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10401
10402
10403# 530 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10404#pragma weak __pthread_rwlock_trywrlock
10405# 530 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10406
10407
10408# 531 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10409#pragma weak __pthread_rwlock_unlock
10410# 531 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10411
10412
10413# 532 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10414#pragma weak __pthread_key_create
10415# 532 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10416
10417
10418# 533 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10419#pragma weak __pthread_setspecific
10420# 533 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10421
10422
10423# 534 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10424#pragma weak __pthread_getspecific
10425# 534 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10426
10427
10428# 535 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10429#pragma weak __pthread_once
10430# 535 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10431
10432
10433# 536 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10434#pragma weak __pthread_initialize
10435# 536 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10436
10437
10438# 537 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10439#pragma weak __pthread_atfork
10440# 537 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10441
10442
10443# 538 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10444#pragma weak _pthread_cleanup_push_defer
10445# 538 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10446
10447
10448# 539 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10449#pragma weak _pthread_cleanup_pop_restore
10450# 539 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10451
10452
10453# 540 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10454#pragma weak pthread_setcancelstate
10455# 540 "../nptl/sysdeps/pthread/bits/libc-lock.h"
10456
10457# 39 "../sysdeps/generic/ldsodefs.h" 2
10458
10459
10460
10461
10462# 61 "../sysdeps/generic/ldsodefs.h"
10463typedef struct link_map *lookup_t;
10464# 127 "../sysdeps/generic/ldsodefs.h"
10465struct r_found_version
10466 {
10467 const char *name;
10468 Elf64_Word hash;
10469
10470 int hidden;
10471 const char *filename;
10472 };
10473
10474
10475
10476enum r_dir_status { unknown, nonexisting, existing };
10477
10478struct r_search_path_elem
10479 {
10480
10481 struct r_search_path_elem *next;
10482
10483
10484 const char *what;
10485 const char *where;
10486
10487
10488
10489 const char *dirname;
10490 size_t dirnamelen;
10491
10492 enum r_dir_status status[0];
10493 };
10494
10495struct r_strlenpair
10496 {
10497 const char *str;
10498 size_t len;
10499 };
10500
10501
10502
10503struct libname_list
10504 {
10505 const char *name;
10506 struct libname_list *next;
10507 int dont_free;
10508
10509 };
10510
10511
10512
10513
10514enum allowmask
10515 {
10516 allow_libc = 1,
10517 allow_libdl = 2,
10518 allow_libpthread = 4,
10519 allow_ldso = 8
10520 };
10521
10522
10523
10524struct La_i86_regs;
10525struct La_i86_retval;
10526struct La_x86_64_regs;
10527struct La_x86_64_retval;
10528struct La_ppc32_regs;
10529struct La_ppc32_retval;
10530struct La_ppc64_regs;
10531struct La_ppc64_retval;
10532struct La_sh_regs;
10533struct La_sh_retval;
10534struct La_m68k_regs;
10535struct La_m68k_retval;
10536struct La_alpha_regs;
10537struct La_alpha_retval;
10538struct La_s390_32_regs;
10539struct La_s390_32_retval;
10540struct La_s390_64_regs;
10541struct La_s390_64_retval;
10542struct La_ia64_regs;
10543struct La_ia64_retval;
10544struct La_mips_32_regs;
10545struct La_mips_32_retval;
10546struct La_mips_64_regs;
10547struct La_mips_64_retval;
10548struct La_sparc32_regs;
10549struct La_sparc32_retval;
10550struct La_sparc64_regs;
10551struct La_sparc64_retval;
10552
10553struct audit_ifaces
10554{
10555 void (*activity) (uintptr_t *, unsigned int);
10556 char *(*objsearch) (const char *, uintptr_t *, unsigned int);
10557 unsigned int (*objopen) (struct link_map *, Lmid_t, uintptr_t *);
10558 void (*preinit) (uintptr_t *);
10559 union
10560 {
10561 uintptr_t (*symbind32) (Elf32_Sym *, unsigned int, uintptr_t *,
10562 uintptr_t *, unsigned int *, const char *);
10563 uintptr_t (*symbind64) (Elf64_Sym *, unsigned int, uintptr_t *,
10564 uintptr_t *, unsigned int *, const char *);
10565 };
10566 union
10567 {
10568 Elf32_Addr (*i86_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
10569 uintptr_t *, struct La_i86_regs *,
10570 unsigned int *, const char *name,
10571 long int *framesizep);
10572 Elf64_Addr (*x86_64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
10573 uintptr_t *, struct La_x86_64_regs *,
10574 unsigned int *, const char *name,
10575 long int *framesizep);
10576 Elf32_Addr (*ppc32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
10577 uintptr_t *, struct La_ppc32_regs *,
10578 unsigned int *, const char *name,
10579 long int *framesizep);
10580 Elf64_Addr (*ppc64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
10581 uintptr_t *, struct La_ppc64_regs *,
10582 unsigned int *, const char *name,
10583 long int *framesizep);
10584 uintptr_t (*sh_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
10585 uintptr_t *, const struct La_sh_regs *,
10586 unsigned int *, const char *name,
10587 long int *framesizep);
10588 Elf32_Addr (*m68k_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
10589 uintptr_t *, struct La_m68k_regs *,
10590 unsigned int *, const char *name,
10591 long int *framesizep);
10592 Elf64_Addr (*alpha_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
10593 uintptr_t *, struct La_alpha_regs *,
10594 unsigned int *, const char *name,
10595 long int *framesizep);
10596 Elf32_Addr (*s390_32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
10597 uintptr_t *, struct La_s390_32_regs *,
10598 unsigned int *, const char *name,
10599 long int *framesizep);
10600 Elf64_Addr (*s390_64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
10601 uintptr_t *, struct La_s390_64_regs *,
10602 unsigned int *, const char *name,
10603 long int *framesizep);
10604 Elf64_Addr (*ia64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
10605 uintptr_t *, struct La_ia64_regs *,
10606 unsigned int *, const char *name,
10607 long int *framesizep);
10608 Elf32_Addr (*mips_o32_gnu_pltenter) (Elf32_Sym *, unsigned int,
10609 uintptr_t *, uintptr_t *,
10610 const struct La_mips_32_regs *,
10611 unsigned int *, const char *name,
10612 long int *framesizep);
10613 Elf32_Addr (*mips_n32_gnu_pltenter) (Elf32_Sym *, unsigned int,
10614 uintptr_t *, uintptr_t *,
10615 const struct La_mips_64_regs *,
10616 unsigned int *, const char *name,
10617 long int *framesizep);
10618 Elf64_Addr (*mips_n64_gnu_pltenter) (Elf64_Sym *, unsigned int,
10619 uintptr_t *, uintptr_t *,
10620 const struct La_mips_64_regs *,
10621 unsigned int *, const char *name,
10622 long int *framesizep);
10623 Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int,
10624 uintptr_t *, uintptr_t *,
10625 const struct La_sparc32_regs *,
10626 unsigned int *, const char *name,
10627 long int *framesizep);
10628 Elf64_Addr (*sparc64_gnu_pltenter) (Elf64_Sym *, unsigned int,
10629 uintptr_t *, uintptr_t *,
10630 const struct La_sparc64_regs *,
10631 unsigned int *, const char *name,
10632 long int *framesizep);
10633
10634
10635
10636 };
10637 union
10638 {
10639 unsigned int (*i86_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
10640 uintptr_t *, const struct La_i86_regs *,
10641 struct La_i86_retval *, const char *);
10642 unsigned int (*x86_64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
10643 uintptr_t *,
10644 const struct La_x86_64_regs *,
10645 struct La_x86_64_retval *,
10646 const char *);
10647 unsigned int (*ppc32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
10648 uintptr_t *,
10649 const struct La_ppc32_regs *,
10650 struct La_ppc32_retval *, const char *);
10651 unsigned int (*ppc64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
10652 uintptr_t *,
10653 const struct La_ppc64_regs *,
10654 struct La_ppc64_retval *, const char *);
10655 unsigned int (*sh_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
10656 uintptr_t *, const struct La_sh_regs *,
10657 struct La_sh_retval *, const char *);
10658 unsigned int (*m68k_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
10659 uintptr_t *, const struct La_m68k_regs *,
10660 struct La_m68k_retval *, const char *);
10661 unsigned int (*alpha_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
10662 uintptr_t *,
10663 const struct La_alpha_regs *,
10664 struct La_alpha_retval *, const char *);
10665 unsigned int (*s390_32_gnu_pltexit) (Elf32_Sym *, unsigned int,
10666 uintptr_t *, uintptr_t *,
10667 const struct La_s390_32_regs *,
10668 struct La_s390_32_retval *,
10669 const char *);
10670 unsigned int (*s390_64_gnu_pltexit) (Elf64_Sym *, unsigned int,
10671 uintptr_t *, uintptr_t *,
10672 const struct La_s390_64_regs *,
10673 struct La_s390_64_retval *,
10674 const char *);
10675 unsigned int (*ia64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
10676 uintptr_t *,
10677 const struct La_ia64_regs *,
10678 struct La_ia64_retval *, const char *);
10679 unsigned int (*mips_o32_gnu_pltexit) (Elf32_Sym *, unsigned int,
10680 uintptr_t *, uintptr_t *,
10681 const struct La_mips_32_regs *,
10682 struct La_mips_32_retval *,
10683 const char *);
10684 unsigned int (*mips_n32_gnu_pltexit) (Elf32_Sym *, unsigned int,
10685 uintptr_t *, uintptr_t *,
10686 const struct La_mips_64_regs *,
10687 struct La_mips_64_retval *,
10688 const char *);
10689 unsigned int (*mips_n64_gnu_pltexit) (Elf64_Sym *, unsigned int,
10690 uintptr_t *, uintptr_t *,
10691 const struct La_mips_64_regs *,
10692 struct La_mips_64_retval *,
10693 const char *);
10694 unsigned int (*sparc32_gnu_pltexit) (Elf32_Sym *, unsigned int,
10695 uintptr_t *, uintptr_t *,
10696 const struct La_sparc32_regs *,
10697 struct La_sparc32_retval *,
10698 const char *);
10699 unsigned int (*sparc64_gnu_pltexit) (Elf64_Sym *, unsigned int,
10700 uintptr_t *, uintptr_t *,
10701 const struct La_sparc32_regs *,
10702 struct La_sparc32_retval *,
10703 const char *);
10704
10705
10706
10707 };
10708 unsigned int (*objclose) (uintptr_t *);
10709
10710 struct audit_ifaces *next;
10711};
10712
10713
10714
10715extern int _dl_name_match_p (const char *__name, struct link_map *__map)
10716 ;
10717
10718
10719
10720
10721typedef void (*receiver_fct) (int, const char *, const char *);
10722# 404 "../sysdeps/generic/ldsodefs.h"
10723struct rtld_global
10724{
10725# 416 "../sysdeps/generic/ldsodefs.h"
10726 struct link_namespaces
10727 {
10728
10729 struct link_map *_ns_loaded;
10730
10731 unsigned int _ns_nloaded;
10732
10733 struct r_scope_elem *_ns_global_scope[2];
10734
10735 struct r_scope_elem *_ns_main_searchlist;
10736
10737
10738
10739 size_t _ns_global_scope_alloc;
10740
10741 struct r_debug _ns_debug;
10742 } _dl_ns[16];
10743# 441 "../sysdeps/generic/ldsodefs.h"
10744 __rtld_lock_recursive_t _dl_load_lock;
10745
10746
10747 unsigned long long _dl_load_adds;
10748
10749
10750
10751
10752
10753
10754
10755 struct link_map *_dl_initfirst;
10756
10757
10758
10759
10760
10761
10762
10763 struct link_map *_dl_profile_map;
10764
10765
10766 unsigned long int _dl_num_relocations;
10767 unsigned long int _dl_num_cache_relocations;
10768
10769
10770 struct r_search_path_elem *_dl_all_dirs;
10771
10772
10773 void **(*_dl_error_catch_tsd) (void) __attribute__ ((const));
10774
10775
10776
10777
10778 struct link_map _dl_rtld_map;
10779
10780 struct auditstate audit_data[16];
10781
10782
10783
10784
10785 void (*_dl_rtld_lock_recursive) (void *);
10786 void (*_dl_rtld_unlock_recursive) (void *);
10787
10788
10789
10790 Elf64_Word _dl_stack_flags;
10791
10792
10793
10794
10795 int (*_dl_make_stack_executable_hook) (void **) ;
10796
10797
10798
10799
10800
10801
10802
10803 size_t _dl_tls_max_dtv_idx;
10804
10805 _Bool _dl_tls_dtv_gaps;
10806
10807 struct dtv_slotinfo_list
10808 {
10809 size_t len;
10810 struct dtv_slotinfo_list *next;
10811 struct dtv_slotinfo
10812 {
10813 size_t gen;
10814 struct link_map *map;
10815 } slotinfo[0];
10816 } *_dl_tls_dtv_slotinfo_list;
10817
10818 size_t _dl_tls_static_nelem;
10819
10820 size_t _dl_tls_static_size;
10821
10822 size_t _dl_tls_static_used;
10823
10824 size_t _dl_tls_static_align;
10825# 532 "../sysdeps/generic/ldsodefs.h"
10826 void *_dl_initial_dtv;
10827
10828 size_t _dl_tls_generation;
10829
10830 void (*_dl_init_static_tls) (struct link_map *);
10831
10832
10833
10834};
10835# 555 "../sysdeps/generic/ldsodefs.h"
10836extern struct rtld_global _rtld_local __attribute__ ((visibility ("hidden")));
10837
10838
10839extern struct rtld_global _rtld_global ;
10840# 570 "../sysdeps/generic/ldsodefs.h"
10841struct rtld_global_ro
10842{
10843
10844
10845
10846 int _dl_debug_mask;
10847# 590 "../sysdeps/generic/ldsodefs.h"
10848 size_t _dl_pagesize;
10849
10850
10851 unsigned int _dl_osversion;
10852
10853 const char *_dl_platform;
10854 size_t _dl_platformlen;
10855
10856
10857 struct r_scope_elem _dl_initial_searchlist;
10858
10859
10860 int _dl_clktck;
10861
10862
10863 int _dl_verbose;
10864
10865
10866 int _dl_debug_fd;
10867
10868
10869 int _dl_lazy;
10870
10871
10872 int _dl_bind_not;
10873
10874
10875
10876 int _dl_dynamic_weak;
10877
10878
10879 fpu_control_t _dl_fpu_control;
10880
10881
10882 int _dl_correct_cache_id;
10883
10884
10885 int _dl_pointer_guard;
10886
10887
10888 uint64_t _dl_hwcap;
10889
10890
10891 uint64_t _dl_hwcap_mask;
10892
10893
10894
10895
10896
10897
10898# 1 "../sysdeps/generic/dl-procinfo.c" 1
10899# 641 "../sysdeps/generic/ldsodefs.h" 2
10900
10901
10902 const char *_dl_inhibit_rpath;
10903
10904
10905 const char *_dl_origin_path;
10906
10907
10908
10909
10910 Elf64_Addr _dl_use_load_bias;
10911
10912
10913 const char *_dl_profile;
10914
10915 const char *_dl_profile_output;
10916
10917 const char *_dl_trace_prelink;
10918
10919 struct link_map *_dl_trace_prelink_map;
10920
10921
10922 struct r_search_path_elem *_dl_init_all_dirs;
10923# 678 "../sysdeps/generic/ldsodefs.h"
10924 const Elf64_Ehdr *_dl_sysinfo_dso;
10925
10926
10927
10928 struct link_map *_dl_sysinfo_map;
10929
10930
10931
10932
10933
10934
10935
10936 void (*_dl_debug_printf) (const char *, ...)
10937 __attribute__ ((__format__ (__printf__, 1, 2)));
10938 int ( *_dl_catch_error) (const char **, const char **,
10939 _Bool *, void (*) (void *), void *);
10940 void ( *_dl_signal_error) (int, const char *, const char *,
10941 const char *);
10942 void (*_dl_mcount) (Elf64_Addr frompc, Elf64_Addr selfpc);
10943 lookup_t ( *_dl_lookup_symbol_x) (const char *,
10944 struct link_map *,
10945 const Elf64_Sym **,
10946 struct r_scope_elem *[],
10947 const struct r_found_version *,
10948 int, int,
10949 struct link_map *);
10950 int (*_dl_check_caller) (const void *, enum allowmask);
10951 void *(*_dl_open) (const char *file, int mode, const void *caller_dlopen,
10952 Lmid_t nsid, int argc, char *argv[], char *env[]);
10953 void (*_dl_close) (void *map);
10954
10955
10956 struct audit_ifaces *_dl_audit;
10957 unsigned int _dl_naudit;
10958};
10959
10960
10961
10962
10963
10964
10965
10966extern struct rtld_global_ro _rtld_local_ro
10967 __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden")));
10968extern struct rtld_global_ro _rtld_global_ro
10969 __attribute__ ((section (".data.rel.ro"))) ;
10970# 738 "../sysdeps/generic/ldsodefs.h"
10971extern void **_dl_initial_error_catch_tsd (void) __attribute__ ((const))
10972 __attribute__ ((visibility ("hidden")));
10973
10974
10975
10976
10977extern int _dl_make_stack_executable (void **stack_endp) ;
10978extern __typeof (_dl_make_stack_executable) _dl_make_stack_executable __asm__ ("" "__GI__dl_make_stack_executable") __attribute__ ((visibility ("hidden")));
10979
10980
10981
10982
10983
10984
10985extern void *__libc_stack_end __attribute__ ((section (".data.rel.ro")));
10986extern __typeof (__libc_stack_end) __libc_stack_end __asm__ ("" "__GI___libc_stack_end") __attribute__ ((visibility ("hidden")));
10987
10988
10989extern int _dl_argc __attribute__ ((visibility ("hidden"))) __attribute__ ((section (".data.rel.ro")));
10990extern char **_dl_argv
10991
10992 __attribute__ ((section (".data.rel.ro")))
10993
10994 ;
10995
10996extern char **_dl_argv_internal __attribute__ ((visibility ("hidden")))
10997
10998 __attribute__ ((section (".data.rel.ro")))
10999
11000 ;
11001
11002
11003
11004
11005
11006
11007extern int _dl_starting_up;
11008
11009# 775 "../sysdeps/generic/ldsodefs.h"
11010#pragma weak _dl_starting_up
11011# 775 "../sysdeps/generic/ldsodefs.h"
11012
11013
11014extern int _dl_starting_up_internal __attribute__ ((visibility ("hidden")));
11015
11016
11017
11018extern int _dl_sysdep_open_zero_fill (void);
11019
11020
11021
11022
11023
11024extern void _dl_debug_printf (const char *fmt, ...)
11025 __attribute__ ((__format__ (__printf__, 1, 2))) __attribute__ ((visibility ("hidden")));
11026
11027
11028
11029
11030extern void _dl_debug_printf_c (const char *fmt, ...)
11031 __attribute__ ((__format__ (__printf__, 1, 2)));
11032
11033
11034
11035
11036extern void _dl_dprintf (int fd, const char *fmt, ...)
11037 __attribute__ ((__format__ (__printf__, 2, 3)))
11038 __attribute__ ((visibility ("hidden")));
11039# 829 "../sysdeps/generic/ldsodefs.h"
11040extern void _dl_signal_error (int errcode, const char *object,
11041 const char *occurred, const char *errstring)
11042 __attribute__ ((__noreturn__)) __attribute__ ((visibility ("hidden")));
11043
11044
11045
11046extern void _dl_signal_cerror (int errcode, const char *object,
11047 const char *occation, const char *errstring)
11048 ;
11049
11050
11051
11052
11053
11054extern void _dl_receive_error (receiver_fct fct, void (*operate) (void *),
11055 void *args)
11056 ;
11057
11058
11059
11060
11061
11062
11063
11064extern struct link_map *_dl_map_object (struct link_map *loader,
11065 const char *name, int preloaded,
11066 int type, int trace_mode, int mode,
11067 Lmid_t nsid)
11068 __attribute__ ((visibility ("hidden")));
11069
11070
11071
11072
11073
11074extern void _dl_map_object_deps (struct link_map *map,
11075 struct link_map **preloads,
11076 unsigned int npreloads, int trace_mode,
11077 int open_mode)
11078 __attribute__ ((visibility ("hidden")));
11079
11080
11081extern void _dl_setup_hash (struct link_map *map)
11082 __attribute__ ((visibility ("hidden")));
11083
11084
11085
11086
11087
11088
11089
11090extern void _dl_rtld_di_serinfo (struct link_map *loader,
11091 Dl_serinfo *si, _Bool counting)
11092 ;
11093# 893 "../sysdeps/generic/ldsodefs.h"
11094enum
11095 {
11096
11097 DL_LOOKUP_ADD_DEPENDENCY = 1,
11098
11099
11100 DL_LOOKUP_RETURN_NEWEST = 2
11101 };
11102
11103
11104extern lookup_t _dl_lookup_symbol_x (const char *undef,
11105 struct link_map *undef_map,
11106 const Elf64_Sym **sym,
11107 struct r_scope_elem *symbol_scope[],
11108 const struct r_found_version *version,
11109 int type_class, int explicit,
11110 struct link_map *skip_map)
11111 __attribute__ ((visibility ("hidden")));
11112
11113
11114
11115extern Elf64_Addr _dl_symbol_value (struct link_map *map, const char *name)
11116 ;
11117
11118
11119
11120extern struct link_map *_dl_new_object (char *realname, const char *libname,
11121 int type, struct link_map *loader,
11122 int mode, Lmid_t nsid)
11123 __attribute__ ((visibility ("hidden")));
11124
11125
11126
11127
11128extern void _dl_relocate_object (struct link_map *map,
11129 struct r_scope_elem *scope[],
11130 int lazy, int consider_profiling)
11131 __attribute__ ((visibility ("hidden")));
11132
11133
11134extern void _dl_protect_relro (struct link_map *map)
11135 __attribute__ ((visibility ("hidden")));
11136
11137
11138
11139
11140extern void _dl_reloc_bad_type (struct link_map *map,
11141 unsigned int type, int plt)
11142 __attribute__ ((__noreturn__));
11143
11144
11145extern void _dl_resolve_conflicts (struct link_map *l,
11146 Elf64_Rela *conflict,
11147 Elf64_Rela *conflictend);
11148
11149
11150
11151extern int _dl_check_all_versions (struct link_map *map, int verbose,
11152 int trace_mode)
11153 ;
11154
11155
11156
11157extern int _dl_check_map_versions (struct link_map *map, int verbose,
11158 int trace_mode)
11159 ;
11160
11161
11162
11163extern void _dl_init (struct link_map *main_map, int argc, char **argv,
11164 char **env) __attribute__ ((visibility ("hidden")));
11165
11166
11167
11168extern void _dl_fini (void) ;
11169
11170
11171extern void _dl_sort_fini (struct link_map *l, struct link_map **maps,
11172 size_t nmaps, char *used, Lmid_t ns)
11173 ;
11174
11175
11176
11177
11178
11179extern void _dl_debug_state (void);
11180extern __typeof (_dl_debug_state) _dl_debug_state __asm__ ("" "__GI__dl_debug_state") __attribute__ ((visibility ("hidden")));
11181
11182
11183
11184
11185extern struct r_debug *_dl_debug_initialize (Elf64_Addr ldbase, Lmid_t ns)
11186 ;
11187
11188
11189extern void _dl_init_paths (const char *library_path) ;
11190
11191
11192
11193extern void _dl_start_profile (void) __attribute__ ((visibility ("hidden")));
11194
11195
11196extern void _dl_mcount (Elf64_Addr frompc, Elf64_Addr selfpc);
11197extern void _dl_mcount_internal (Elf64_Addr frompc, Elf64_Addr selfpc)
11198 __attribute__ ((visibility ("hidden")));
11199
11200
11201
11202
11203extern void _dl_mcount_wrapper (void *selfpc);
11204
11205
11206extern void _dl_show_auxv (void) ;
11207
11208
11209
11210extern char *_dl_next_ld_env_entry (char ***position) ;
11211
11212
11213extern const struct r_strlenpair *_dl_important_hwcaps (const char *platform,
11214 size_t paltform_len,
11215 size_t *sz,
11216 size_t *max_capstrlen)
11217 ;
11218
11219
11220
11221extern const char *_dl_load_cache_lookup (const char *name)
11222 ;
11223
11224
11225
11226
11227
11228extern void _dl_unload_cache (void) __attribute__ ((visibility ("hidden")));
11229
11230
11231
11232
11233extern void *_dl_sysdep_read_whole_file (const char *file, size_t *sizep,
11234 int prot)
11235 __attribute__ ((visibility ("hidden")));
11236
11237
11238
11239
11240
11241extern Elf64_Addr _dl_sysdep_start (void **start_argptr,
11242 void (*dl_main) (const Elf64_Phdr *phdr,
11243 Elf64_Word phnum,
11244 Elf64_Addr *user_entry))
11245 __attribute__ ((visibility ("hidden")));
11246
11247extern void _dl_sysdep_start_cleanup (void)
11248 __attribute__ ((visibility ("hidden")));
11249
11250
11251
11252extern size_t _dl_next_tls_modid (void) __attribute__ ((visibility ("hidden")));
11253
11254
11255extern void _dl_determine_tlsoffset (void) __attribute__ ((visibility ("hidden")));
11256
11257
11258
11259
11260extern int _dl_tls_setup (void) ;
11261extern __typeof (_dl_tls_setup) _dl_tls_setup __asm__ ("" "__GI__dl_tls_setup") __attribute__ ((visibility ("hidden")));
11262
11263
11264extern void *_dl_allocate_tls (void *mem) ;
11265extern __typeof (_dl_allocate_tls) _dl_allocate_tls __asm__ ("" "__GI__dl_allocate_tls") __attribute__ ((visibility ("hidden")));
11266
11267
11268extern void _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
11269 ;
11270
11271extern void _dl_allocate_static_tls (struct link_map *map)
11272 __attribute__ ((visibility ("hidden")));
11273
11274
11275
11276extern void *_dl_allocate_tls_storage (void)
11277 __attribute__ ((visibility ("hidden")));
11278extern void *_dl_allocate_tls_init (void *) ;
11279extern __typeof (_dl_allocate_tls_init) _dl_allocate_tls_init __asm__ ("" "__GI__dl_allocate_tls_init") __attribute__ ((visibility ("hidden")));
11280
11281
11282extern void _dl_deallocate_tls (void *tcb, _Bool dealloc_tcb) ;
11283extern __typeof (_dl_deallocate_tls) _dl_deallocate_tls __asm__ ("" "__GI__dl_deallocate_tls") __attribute__ ((visibility ("hidden")));
11284
11285
11286extern void _dl_nothread_init_static_tls (struct link_map *) __attribute__ ((visibility ("hidden")));
11287
11288
11289
11290extern const char *_dl_get_origin (void) __attribute__ ((visibility ("hidden")));
11291
11292
11293extern size_t _dl_dst_count (const char *name, int is_path) __attribute__ ((visibility ("hidden")));
11294
11295
11296extern char *_dl_dst_substitute (struct link_map *l, const char *name,
11297 char *result, int is_path) __attribute__ ((visibility ("hidden")));
11298
11299
11300extern int _dl_check_caller (const void *caller, enum allowmask mask)
11301 __attribute__ ((visibility ("hidden")));
11302
11303
11304
11305
11306extern void *_dl_open (const char *name, int mode, const void *caller,
11307 Lmid_t nsid, int argc, char *argv[], char *env[])
11308 __attribute__ ((visibility ("hidden")));
11309
11310
11311extern void _dl_add_to_slotinfo (struct link_map *l) __attribute__ ((visibility ("hidden")));
11312
11313
11314
11315extern struct link_map *_dl_update_slotinfo (unsigned long int req_modid);
11316
11317
11318
11319extern void *_dl_tls_get_addr_soft (struct link_map *l) ;
11320
11321
11322
11323# 26 "../sysdeps/unix/sysv/linux/ldsodefs.h" 2
11324
11325
11326
11327
11328
11329
11330
11331extern void _dl_aux_init (Elf64_auxv_t *av) ;
11332
11333
11334extern void _dl_non_dynamic_init (void) ;
11335# 31 "rtld.c" 2
11336# 1 "../stdio-common/_itoa.h" 1
11337# 29 "../stdio-common/_itoa.h"
11338extern char *_itoa (unsigned long long int value, char *buflim,
11339 unsigned int base, int upper_case);
11340
11341extern const char _itoa_upper_digits[];
11342extern const char _itoa_upper_digits_internal[] __attribute__ ((visibility ("hidden")));
11343extern const char _itoa_lower_digits[];
11344extern const char _itoa_lower_digits_internal[] __attribute__ ((visibility ("hidden")));
11345
11346
11347
11348
11349
11350static inline char * __attribute__ ((unused, always_inline))
11351_itoa_word (unsigned long value, char *buflim,
11352 unsigned int base, int upper_case)
11353{
11354 const char *digits = (upper_case
11355
11356 ? _itoa_upper_digits_internal
11357 : _itoa_lower_digits_internal
11358
11359
11360
11361
11362 );
11363
11364 switch (base)
11365 {
11366
11367
11368
11369
11370
11371
11372
11373 case 10: do *--buflim = digits[value % 10]; while ((value /= 10) != 0); break;
11374 case 16: do *--buflim = digits[value % 16]; while ((value /= 16) != 0); break;
11375 case 8: do *--buflim = digits[value % 8]; while ((value /= 8) != 0); break;
11376 default:
11377 do
11378 *--buflim = digits[value % base];
11379 while ((value /= base) != 0);
11380 }
11381 return buflim;
11382}
11383
11384
11385
11386
11387
11388extern char *_fitoa_word (unsigned long value, char *buf, unsigned int base,
11389 int upper_case) __attribute__ ((visibility ("hidden")));
11390extern char *_fitoa (unsigned long long value, char *buf, unsigned int base,
11391 int upper_case) __attribute__ ((visibility ("hidden")));
11392# 32 "rtld.c" 2
11393# 1 "../sysdeps/generic/entry.h" 1
11394
11395extern void _start (void) __attribute__ ((visibility ("hidden")));
11396# 33 "rtld.c" 2
11397# 1 "../include/fpu_control.h" 1
11398
11399
11400
11401extern void __setfpucw (fpu_control_t);
11402# 34 "rtld.c" 2
11403
11404
11405# 1 "dynamic-link.h" 1
11406# 21 "dynamic-link.h"
11407# 1 "../include/assert.h" 1
11408# 1 "../assert/assert.h" 1
11409# 65 "../assert/assert.h"
11410
11411
11412
11413extern void __assert_fail (__const char *__assertion, __const char *__file,
11414 unsigned int __line, __const char *__function)
11415 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
11416
11417
11418extern void __assert_perror_fail (int __errnum, __const char *__file,
11419 unsigned int __line,
11420 __const char *__function)
11421 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
11422
11423
11424
11425
11426extern void __assert (const char *__assertion, const char *__file, int __line)
11427 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
11428
11429
11430
11431# 2 "../include/assert.h" 2
11432
11433
11434
11435
11436extern void __assert_fail (__const char *__assertion, __const char *__file,
11437 unsigned int __line, __const char *__function)
11438 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
11439
11440
11441extern void __assert_perror_fail (int __errnum, __const char *__file,
11442 unsigned int __line,
11443 __const char *__function)
11444 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
11445
11446
11447extern __typeof (__assert_fail) __assert_fail __asm__ ("" "__GI___assert_fail") __attribute__ ((visibility ("hidden")));
11448extern __typeof (__assert_perror_fail) __assert_perror_fail __asm__ ("" "__GI___assert_perror_fail") __attribute__ ((visibility ("hidden")));
11449# 22 "dynamic-link.h" 2
11450# 63 "dynamic-link.h"
11451# 1 "../sysdeps/s390/s390-64/dl-machine.h" 1
11452# 35 "../sysdeps/s390/s390-64/dl-machine.h"
11453static inline int
11454elf_machine_matches_host (const Elf64_Ehdr *ehdr)
11455{
11456 return (ehdr->e_machine == 22 || ehdr->e_machine == 0xA390)
11457 && ehdr->e_ident[4] == 2;
11458}
11459
11460
11461
11462
11463
11464static inline Elf64_Addr
11465elf_machine_dynamic (void)
11466{
11467 register Elf64_Addr *got;
11468
11469 asm( " larl %0,_GLOBAL_OFFSET_TABLE_\n"
11470 : "=&a" (got) : : "0" );
11471
11472 return *got;
11473}
11474
11475
11476static inline Elf64_Addr
11477elf_machine_load_address (void)
11478{
11479 Elf64_Addr addr;
11480
11481 asm( " larl %0,_dl_start\n"
11482 " larl 1,_GLOBAL_OFFSET_TABLE_\n"
11483 " lghi 2,_dl_start@GOT\n"
11484 " slg %0,0(2,1)"
11485 : "=&d" (addr) : : "1", "2" );
11486 return addr;
11487}
11488
11489
11490
11491
11492static inline int __attribute__ ((unused))
11493elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
11494{
11495 extern void _dl_runtime_resolve (Elf64_Word);
11496 extern void _dl_runtime_profile (Elf64_Word);
11497
11498 if (l->l_info[23] && lazy)
11499 {
11500
11501
11502
11503
11504 Elf64_Addr *got;
11505 got = (Elf64_Addr *) (l)->l_info[3]->d_un.d_ptr;
11506
11507
11508
11509 if (got[1])
11510 {
11511 l->l_mach.plt = got[1] + l->l_addr;
11512 l->l_mach.gotplt = (Elf64_Addr) &got[3];
11513 }
11514 got[1] = (Elf64_Addr) l;
11515
11516
11517
11518
11519
11520
11521
11522 if (__builtin_expect (profile, 0))
11523 {
11524 got[2] = (Elf64_Addr) &_dl_runtime_profile;
11525
11526 if (_rtld_local_ro._dl_profile != ((void *)0)
11527 && _dl_name_match_p (_rtld_local_ro._dl_profile, l))
11528
11529
11530 _rtld_local._dl_profile_map = l;
11531 }
11532 else
11533
11534
11535 got[2] = (Elf64_Addr) &_dl_runtime_resolve;
11536 }
11537
11538 return lazy;
11539}
11540# 217 "../sysdeps/s390/s390-64/dl-machine.h"
11541static inline void __attribute__ ((unused))
11542dl_platform_init (void)
11543{
11544 if (_rtld_local_ro._dl_platform != ((void *)0) && *_rtld_local_ro._dl_platform == '\0')
11545
11546 _rtld_local_ro._dl_platform = ((void *)0);
11547}
11548
11549static inline Elf64_Addr
11550elf_machine_fixup_plt (struct link_map *map, lookup_t t,
11551 const Elf64_Rela *reloc,
11552 Elf64_Addr *reloc_addr, Elf64_Addr value)
11553{
11554 return *reloc_addr = value;
11555}
11556
11557
11558static inline Elf64_Addr
11559elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
11560 Elf64_Addr value)
11561{
11562 return value;
11563}
11564# 64 "dynamic-link.h" 2
11565# 76 "dynamic-link.h"
11566static
11567
11568
11569
11570inline void __attribute__ ((unused, always_inline))
11571elf_get_dynamic_info (struct link_map *l, Elf64_Dyn *temp)
11572{
11573 Elf64_Dyn *dyn = l->l_ld;
11574 Elf64_Dyn **info;
11575
11576
11577 if (dyn == ((void *)0))
11578 return;
11579
11580
11581 info = l->l_info;
11582
11583 while (dyn->d_tag != 0)
11584 {
11585 if (dyn->d_tag < 34)
11586 info[dyn->d_tag] = dyn;
11587 else if (dyn->d_tag >= 0x70000000 &&
11588 dyn->d_tag < 0x70000000 + 0)
11589 info[dyn->d_tag - 0x70000000 + 34] = dyn;
11590 else if (dyn->d_tag >= 0x6cbdd030 &&
11591 dyn->d_tag < 0x6cbdd030 + 2)
11592 info[(34 + 0 + 16 + 3 + 12 + 10 + (dyn->d_tag - 0x6cbdd030))] = dyn;
11593 else if ((Elf32_Word) (0x6fffffff - (dyn->d_tag)) < 16)
11594 info[(34 + 0 + (0x6fffffff - (dyn->d_tag)))] = dyn;
11595 else if ((Elf32_Word) ((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) < 3)
11596 info[((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) + 34 + 0
11597 + 16] = dyn;
11598 else if ((Elf32_Word) (0x6ffffdff - (dyn->d_tag)) < 12)
11599 info[(0x6ffffdff - (dyn->d_tag)) + 34 + 0
11600 + 16 + 3] = dyn;
11601 else if ((Elf32_Word) (0x6ffffeff - (dyn->d_tag)) < 10)
11602 info[(0x6ffffeff - (dyn->d_tag)) + 34 + 0
11603 + 16 + 3 + 12] = dyn;
11604 ++dyn;
11605 }
11606
11607
11608
11609
11610
11611 if (l->l_addr != 0)
11612 {
11613 Elf64_Addr l_addr = l->l_addr;
11614 int cnt = 0;
11615# 141 "dynamic-link.h"
11616 do if (info[4] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[4]->d_tag; temp[cnt].d_un.d_ptr = info[4]->d_un.d_ptr + l_addr; info[4] = temp + cnt++; } else info[4]->d_un.d_ptr += l_addr; } while (0);
11617 do if (info[3] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[3]->d_tag; temp[cnt].d_un.d_ptr = info[3]->d_un.d_ptr + l_addr; info[3] = temp + cnt++; } else info[3]->d_un.d_ptr += l_addr; } while (0);
11618 do if (info[5] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[5]->d_tag; temp[cnt].d_un.d_ptr = info[5]->d_un.d_ptr + l_addr; info[5] = temp + cnt++; } else info[5]->d_un.d_ptr += l_addr; } while (0);
11619 do if (info[6] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[6]->d_tag; temp[cnt].d_un.d_ptr = info[6]->d_un.d_ptr + l_addr; info[6] = temp + cnt++; } else info[6]->d_un.d_ptr += l_addr; } while (0);
11620
11621 do if (info[7] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[7]->d_tag; temp[cnt].d_un.d_ptr = info[7]->d_un.d_ptr + l_addr; info[7] = temp + cnt++; } else info[7]->d_un.d_ptr += l_addr; } while (0);
11622
11623
11624
11625
11626 do if (info[23] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[23]->d_tag; temp[cnt].d_un.d_ptr = info[23]->d_un.d_ptr + l_addr; info[23] = temp + cnt++; } else info[23]->d_un.d_ptr += l_addr; } while (0);
11627 do if (info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr + l_addr; info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] = temp + cnt++; } else info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr += l_addr; } while (0);
11628 do if (info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_un.d_ptr + l_addr; info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))] = temp + cnt++; } else info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_un.d_ptr += l_addr; } while (0);
11629 do if (info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_un.d_ptr + l_addr; info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))] = temp + cnt++; } else info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_un.d_ptr += l_addr; } while (0);
11630
11631 ((void) ((cnt <= 8) ? 0 : (__assert_fail ("cnt <= 8", "dynamic-link.h", 156, __PRETTY_FUNCTION__), 0)));
11632 }
11633
11634 if (info[20] != ((void *)0))
11635 {
11636
11637
11638
11639 ((void) ((info[20]->d_un.d_val == 7) ? 0 : (__assert_fail ("info[20]->d_un.d_val == 7", "dynamic-link.h", 164, __PRETTY_FUNCTION__), 0)));
11640
11641
11642
11643
11644 }
11645
11646 if (info[7] != ((void *)0))
11647 ((void) ((info[9]->d_un.d_val == sizeof (Elf64_Rela)) ? 0 : (__assert_fail ("info[9]->d_un.d_val == sizeof (Elf64_Rela)", "dynamic-link.h", 172, __PRETTY_FUNCTION__), 0)));
11648# 188 "dynamic-link.h"
11649 if (info[30] != ((void *)0))
11650 {
11651
11652
11653
11654 l->l_flags = info[30]->d_un.d_val;
11655
11656 if (l->l_flags & 0x00000002)
11657 info[16] = info[30];
11658 if (l->l_flags & 0x00000004)
11659 info[22] = info[30];
11660 if (l->l_flags & 0x00000008)
11661 info[24] = info[30];
11662 }
11663 if (info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))] != ((void *)0))
11664 {
11665 l->l_flags_1 = info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]->d_un.d_val;
11666
11667 if (l->l_flags_1 & 0x00000001)
11668 info[24] = info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))];
11669 }
11670 if (info[29] != ((void *)0))
11671
11672 info[15] = ((void *)0);
11673
11674}
11675# 37 "rtld.c" 2
11676# 1 "../sysdeps/unix/sysv/linux/dl-librecon.h" 1
11677# 24 "../sysdeps/unix/sysv/linux/dl-librecon.h"
11678static inline void __attribute__ ((unused, always_inline))
11679_dl_osversion_init (char *assume_kernel)
11680{
11681 unsigned long int i, j, osversion = 0;
11682 char *p = assume_kernel, *q;
11683
11684 for (i = 0; i < 3; i++, p = q + 1)
11685 {
11686 j = __strtoul_internal (p, &q, 0, 0);
11687 if (j >= 255 || p == q || (i < 2 && *q && *q != '.'))
11688 {
11689 osversion = 0;
11690 break;
11691 }
11692 osversion |= j << (16 - 8 * i);
11693 if (!*q)
11694 break;
11695 }
11696 if (osversion)
11697 _rtld_local_ro._dl_osversion = osversion;
11698}
11699# 38 "rtld.c" 2
11700# 1 "../sysdeps/generic/unsecvars.h" 1
11701# 39 "rtld.c" 2
11702# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h" 1
11703# 25 "../sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h"
11704# 1 "../sysdeps/unix/sysv/linux/s390/dl-cache.h" 1
11705# 1 "../sysdeps/unix/sysv/linux/sparc/dl-cache.h" 1
11706# 39 "../sysdeps/unix/sysv/linux/sparc/dl-cache.h"
11707# 1 "../sysdeps/generic/dl-cache.h" 1
11708# 61 "../sysdeps/generic/dl-cache.h"
11709struct file_entry
11710{
11711 int flags;
11712 unsigned int key, value;
11713};
11714
11715struct cache_file
11716{
11717 char magic[sizeof "ld.so-1.7.0" - 1];
11718 unsigned int nlibs;
11719 struct file_entry libs[0];
11720};
11721
11722
11723
11724
11725
11726
11727struct file_entry_new
11728{
11729 int32_t flags;
11730 uint32_t key, value;
11731 uint32_t osversion;
11732 uint64_t hwcap;
11733};
11734
11735struct cache_file_new
11736{
11737 char magic[sizeof "glibc-ld.so.cache" - 1];
11738 char version[sizeof "1.1" - 1];
11739 uint32_t nlibs;
11740 uint32_t len_strings;
11741 uint32_t unused[5];
11742
11743 struct file_entry_new libs[0];
11744
11745};
11746
11747
11748
11749
11750
11751
11752extern int _dl_cache_libcmp (const char *p1, const char *p2)
11753 ;
11754# 39 "../sysdeps/unix/sysv/linux/sparc/dl-cache.h" 2
11755# 1 "../sysdeps/unix/sysv/linux/s390/dl-cache.h" 2
11756# 25 "../sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h" 2
11757# 40 "rtld.c" 2
11758# 1 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 1
11759# 22 "../sysdeps/unix/sysv/linux/dl-osinfo.h"
11760# 1 "../include/sys/sysctl.h" 1
11761
11762# 1 "../sysdeps/unix/sysv/linux/sys/sysctl.h" 1
11763# 24 "../sysdeps/unix/sysv/linux/sys/sysctl.h"
11764# 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4
11765# 25 "../sysdeps/unix/sysv/linux/sys/sysctl.h" 2
11766# 44 "../sysdeps/unix/sysv/linux/sys/sysctl.h"
11767# 1 "/usr/include/linux/sysctl.h" 1 3 4
11768# 28 "/usr/include/linux/sysctl.h" 3 4
11769# 1 "/usr/include/linux/kernel.h" 1 3 4
11770# 29 "/usr/include/linux/sysctl.h" 2 3 4
11771# 1 "/usr/include/linux/types.h" 1 3 4
11772# 30 "/usr/include/linux/sysctl.h" 2 3 4
11773
11774struct file;
11775struct completion;
11776
11777
11778
11779
11780
11781
11782struct __sysctl_args {
11783 int *name;
11784 int nlen;
11785 void *oldval;
11786 size_t *oldlenp;
11787 void *newval;
11788 size_t newlen;
11789 unsigned long __unused[4];
11790};
11791
11792
11793
11794
11795
11796
11797
11798enum
11799{
11800 CTL_KERN=1,
11801 CTL_VM=2,
11802 CTL_NET=3,
11803
11804 CTL_FS=5,
11805 CTL_DEBUG=6,
11806 CTL_DEV=7,
11807 CTL_BUS=8,
11808 CTL_ABI=9,
11809 CTL_CPU=10
11810};
11811
11812
11813enum
11814{
11815 CTL_BUS_ISA=1
11816};
11817
11818
11819enum
11820{
11821 INOTIFY_MAX_USER_INSTANCES=1,
11822 INOTIFY_MAX_USER_WATCHES=2,
11823 INOTIFY_MAX_QUEUED_EVENTS=3
11824};
11825
11826
11827enum
11828{
11829 KERN_OSTYPE=1,
11830 KERN_OSRELEASE=2,
11831 KERN_OSREV=3,
11832 KERN_VERSION=4,
11833 KERN_SECUREMASK=5,
11834 KERN_PROF=6,
11835 KERN_NODENAME=7,
11836 KERN_DOMAINNAME=8,
11837
11838 KERN_CAP_BSET=14,
11839 KERN_PANIC=15,
11840 KERN_REALROOTDEV=16,
11841
11842 KERN_SPARC_REBOOT=21,
11843 KERN_CTLALTDEL=22,
11844 KERN_PRINTK=23,
11845 KERN_NAMETRANS=24,
11846 KERN_PPC_HTABRECLAIM=25,
11847 KERN_PPC_ZEROPAGED=26,
11848 KERN_PPC_POWERSAVE_NAP=27,
11849 KERN_MODPROBE=28,
11850 KERN_SG_BIG_BUFF=29,
11851 KERN_ACCT=30,
11852 KERN_PPC_L2CR=31,
11853
11854 KERN_RTSIGNR=32,
11855 KERN_RTSIGMAX=33,
11856
11857 KERN_SHMMAX=34,
11858 KERN_MSGMAX=35,
11859 KERN_MSGMNB=36,
11860 KERN_MSGPOOL=37,
11861 KERN_SYSRQ=38,
11862 KERN_MAX_THREADS=39,
11863 KERN_RANDOM=40,
11864 KERN_SHMALL=41,
11865 KERN_MSGMNI=42,
11866 KERN_SEM=43,
11867 KERN_SPARC_STOP_A=44,
11868 KERN_SHMMNI=45,
11869 KERN_OVERFLOWUID=46,
11870 KERN_OVERFLOWGID=47,
11871 KERN_SHMPATH=48,
11872 KERN_HOTPLUG=49,
11873 KERN_IEEE_EMULATION_WARNINGS=50,
11874 KERN_S390_USER_DEBUG_LOGGING=51,
11875 KERN_CORE_USES_PID=52,
11876 KERN_TAINTED=53,
11877 KERN_CADPID=54,
11878 KERN_PIDMAX=55,
11879 KERN_CORE_PATTERN=56,
11880 KERN_PANIC_ON_OOPS=57,
11881 KERN_HPPA_PWRSW=58,
11882 KERN_HPPA_UNALIGNED=59,
11883 KERN_PRINTK_RATELIMIT=60,
11884 KERN_PRINTK_RATELIMIT_BURST=61,
11885 KERN_PTY=62,
11886 KERN_NGROUPS_MAX=63,
11887 KERN_SPARC_SCONS_PWROFF=64,
11888 KERN_HZ_TIMER=65,
11889 KERN_UNKNOWN_NMI_PANIC=66,
11890 KERN_BOOTLOADER_TYPE=67,
11891 KERN_RANDOMIZE=68,
11892 KERN_SETUID_DUMPABLE=69,
11893 KERN_SPIN_RETRY=70,
11894 KERN_ACPI_VIDEO_FLAGS=71,
11895 KERN_IA64_UNALIGNED=72,
11896 KERN_COMPAT_LOG=73,
11897 KERN_MAX_LOCK_DEPTH=74,
11898 KERN_NMI_WATCHDOG=75,
11899 KERN_PANIC_ON_NMI=76,
11900};
11901
11902
11903
11904
11905enum
11906{
11907 VM_UNUSED1=1,
11908 VM_UNUSED2=2,
11909 VM_UNUSED3=3,
11910 VM_UNUSED4=4,
11911 VM_OVERCOMMIT_MEMORY=5,
11912 VM_UNUSED5=6,
11913 VM_UNUSED7=7,
11914 VM_UNUSED8=8,
11915 VM_UNUSED9=9,
11916 VM_PAGE_CLUSTER=10,
11917 VM_DIRTY_BACKGROUND=11,
11918 VM_DIRTY_RATIO=12,
11919 VM_DIRTY_WB_CS=13,
11920 VM_DIRTY_EXPIRE_CS=14,
11921 VM_NR_PDFLUSH_THREADS=15,
11922 VM_OVERCOMMIT_RATIO=16,
11923 VM_PAGEBUF=17,
11924 VM_HUGETLB_PAGES=18,
11925 VM_SWAPPINESS=19,
11926 VM_LOWMEM_RESERVE_RATIO=20,
11927 VM_MIN_FREE_KBYTES=21,
11928 VM_MAX_MAP_COUNT=22,
11929 VM_LAPTOP_MODE=23,
11930 VM_BLOCK_DUMP=24,
11931 VM_HUGETLB_GROUP=25,
11932 VM_VFS_CACHE_PRESSURE=26,
11933 VM_LEGACY_VA_LAYOUT=27,
11934 VM_SWAP_TOKEN_TIMEOUT=28,
11935 VM_DROP_PAGECACHE=29,
11936 VM_PERCPU_PAGELIST_FRACTION=30,
11937 VM_ZONE_RECLAIM_MODE=31,
11938 VM_MIN_UNMAPPED=32,
11939 VM_PANIC_ON_OOM=33,
11940 VM_VDSO_ENABLED=34,
11941 VM_MIN_SLAB=35,
11942};
11943
11944
11945
11946enum
11947{
11948 NET_CORE=1,
11949 NET_ETHER=2,
11950 NET_802=3,
11951 NET_UNIX=4,
11952 NET_IPV4=5,
11953 NET_IPX=6,
11954 NET_ATALK=7,
11955 NET_NETROM=8,
11956 NET_AX25=9,
11957 NET_BRIDGE=10,
11958 NET_ROSE=11,
11959 NET_IPV6=12,
11960 NET_X25=13,
11961 NET_TR=14,
11962 NET_DECNET=15,
11963 NET_ECONET=16,
11964 NET_SCTP=17,
11965 NET_LLC=18,
11966 NET_NETFILTER=19,
11967 NET_DCCP=20,
11968};
11969
11970
11971enum
11972{
11973 RANDOM_POOLSIZE=1,
11974 RANDOM_ENTROPY_COUNT=2,
11975 RANDOM_READ_THRESH=3,
11976 RANDOM_WRITE_THRESH=4,
11977 RANDOM_BOOT_ID=5,
11978 RANDOM_UUID=6
11979};
11980
11981
11982enum
11983{
11984 PTY_MAX=1,
11985 PTY_NR=2
11986};
11987
11988
11989enum
11990{
11991 BUS_ISA_MEM_BASE=1,
11992 BUS_ISA_PORT_BASE=2,
11993 BUS_ISA_PORT_SHIFT=3
11994};
11995
11996
11997enum
11998{
11999 NET_CORE_WMEM_MAX=1,
12000 NET_CORE_RMEM_MAX=2,
12001 NET_CORE_WMEM_DEFAULT=3,
12002 NET_CORE_RMEM_DEFAULT=4,
12003
12004 NET_CORE_MAX_BACKLOG=6,
12005 NET_CORE_FASTROUTE=7,
12006 NET_CORE_MSG_COST=8,
12007 NET_CORE_MSG_BURST=9,
12008 NET_CORE_OPTMEM_MAX=10,
12009 NET_CORE_HOT_LIST_LENGTH=11,
12010 NET_CORE_DIVERT_VERSION=12,
12011 NET_CORE_NO_CONG_THRESH=13,
12012 NET_CORE_NO_CONG=14,
12013 NET_CORE_LO_CONG=15,
12014 NET_CORE_MOD_CONG=16,
12015 NET_CORE_DEV_WEIGHT=17,
12016 NET_CORE_SOMAXCONN=18,
12017 NET_CORE_BUDGET=19,
12018 NET_CORE_AEVENT_ETIME=20,
12019 NET_CORE_AEVENT_RSEQTH=21,
12020};
12021
12022
12023
12024
12025
12026
12027
12028enum
12029{
12030 NET_UNIX_DESTROY_DELAY=1,
12031 NET_UNIX_DELETE_DELAY=2,
12032 NET_UNIX_MAX_DGRAM_QLEN=3,
12033};
12034
12035
12036enum
12037{
12038 NET_NF_CONNTRACK_MAX=1,
12039 NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2,
12040 NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3,
12041 NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4,
12042 NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5,
12043 NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6,
12044 NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7,
12045 NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8,
12046 NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9,
12047 NET_NF_CONNTRACK_UDP_TIMEOUT=10,
12048 NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11,
12049 NET_NF_CONNTRACK_ICMP_TIMEOUT=12,
12050 NET_NF_CONNTRACK_GENERIC_TIMEOUT=13,
12051 NET_NF_CONNTRACK_BUCKETS=14,
12052 NET_NF_CONNTRACK_LOG_INVALID=15,
12053 NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16,
12054 NET_NF_CONNTRACK_TCP_LOOSE=17,
12055 NET_NF_CONNTRACK_TCP_BE_LIBERAL=18,
12056 NET_NF_CONNTRACK_TCP_MAX_RETRANS=19,
12057 NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20,
12058 NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21,
12059 NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22,
12060 NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23,
12061 NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24,
12062 NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25,
12063 NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26,
12064 NET_NF_CONNTRACK_COUNT=27,
12065 NET_NF_CONNTRACK_ICMPV6_TIMEOUT=28,
12066 NET_NF_CONNTRACK_FRAG6_TIMEOUT=29,
12067 NET_NF_CONNTRACK_FRAG6_LOW_THRESH=30,
12068 NET_NF_CONNTRACK_FRAG6_HIGH_THRESH=31,
12069 NET_NF_CONNTRACK_CHECKSUM=32,
12070};
12071
12072
12073enum
12074{
12075
12076 NET_IPV4_FORWARD=8,
12077 NET_IPV4_DYNADDR=9,
12078
12079 NET_IPV4_CONF=16,
12080 NET_IPV4_NEIGH=17,
12081 NET_IPV4_ROUTE=18,
12082 NET_IPV4_FIB_HASH=19,
12083 NET_IPV4_NETFILTER=20,
12084
12085 NET_IPV4_TCP_TIMESTAMPS=33,
12086 NET_IPV4_TCP_WINDOW_SCALING=34,
12087 NET_IPV4_TCP_SACK=35,
12088 NET_IPV4_TCP_RETRANS_COLLAPSE=36,
12089 NET_IPV4_DEFAULT_TTL=37,
12090 NET_IPV4_AUTOCONFIG=38,
12091 NET_IPV4_NO_PMTU_DISC=39,
12092 NET_IPV4_TCP_SYN_RETRIES=40,
12093 NET_IPV4_IPFRAG_HIGH_THRESH=41,
12094 NET_IPV4_IPFRAG_LOW_THRESH=42,
12095 NET_IPV4_IPFRAG_TIME=43,
12096 NET_IPV4_TCP_MAX_KA_PROBES=44,
12097 NET_IPV4_TCP_KEEPALIVE_TIME=45,
12098 NET_IPV4_TCP_KEEPALIVE_PROBES=46,
12099 NET_IPV4_TCP_RETRIES1=47,
12100 NET_IPV4_TCP_RETRIES2=48,
12101 NET_IPV4_TCP_FIN_TIMEOUT=49,
12102 NET_IPV4_IP_MASQ_DEBUG=50,
12103 NET_TCP_SYNCOOKIES=51,
12104 NET_TCP_STDURG=52,
12105 NET_TCP_RFC1337=53,
12106 NET_TCP_SYN_TAILDROP=54,
12107 NET_TCP_MAX_SYN_BACKLOG=55,
12108 NET_IPV4_LOCAL_PORT_RANGE=56,
12109 NET_IPV4_ICMP_ECHO_IGNORE_ALL=57,
12110 NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58,
12111 NET_IPV4_ICMP_SOURCEQUENCH_RATE=59,
12112 NET_IPV4_ICMP_DESTUNREACH_RATE=60,
12113 NET_IPV4_ICMP_TIMEEXCEED_RATE=61,
12114 NET_IPV4_ICMP_PARAMPROB_RATE=62,
12115 NET_IPV4_ICMP_ECHOREPLY_RATE=63,
12116 NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64,
12117 NET_IPV4_IGMP_MAX_MEMBERSHIPS=65,
12118 NET_TCP_TW_RECYCLE=66,
12119 NET_IPV4_ALWAYS_DEFRAG=67,
12120 NET_IPV4_TCP_KEEPALIVE_INTVL=68,
12121 NET_IPV4_INET_PEER_THRESHOLD=69,
12122 NET_IPV4_INET_PEER_MINTTL=70,
12123 NET_IPV4_INET_PEER_MAXTTL=71,
12124 NET_IPV4_INET_PEER_GC_MINTIME=72,
12125 NET_IPV4_INET_PEER_GC_MAXTIME=73,
12126 NET_TCP_ORPHAN_RETRIES=74,
12127 NET_TCP_ABORT_ON_OVERFLOW=75,
12128 NET_TCP_SYNACK_RETRIES=76,
12129 NET_TCP_MAX_ORPHANS=77,
12130 NET_TCP_MAX_TW_BUCKETS=78,
12131 NET_TCP_FACK=79,
12132 NET_TCP_REORDERING=80,
12133 NET_TCP_ECN=81,
12134 NET_TCP_DSACK=82,
12135 NET_TCP_MEM=83,
12136 NET_TCP_WMEM=84,
12137 NET_TCP_RMEM=85,
12138 NET_TCP_APP_WIN=86,
12139 NET_TCP_ADV_WIN_SCALE=87,
12140 NET_IPV4_NONLOCAL_BIND=88,
12141 NET_IPV4_ICMP_RATELIMIT=89,
12142 NET_IPV4_ICMP_RATEMASK=90,
12143 NET_TCP_TW_REUSE=91,
12144 NET_TCP_FRTO=92,
12145 NET_TCP_LOW_LATENCY=93,
12146 NET_IPV4_IPFRAG_SECRET_INTERVAL=94,
12147 NET_IPV4_IGMP_MAX_MSF=96,
12148 NET_TCP_NO_METRICS_SAVE=97,
12149 NET_TCP_DEFAULT_WIN_SCALE=105,
12150 NET_TCP_MODERATE_RCVBUF=106,
12151 NET_TCP_TSO_WIN_DIVISOR=107,
12152 NET_TCP_BIC_BETA=108,
12153 NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109,
12154 NET_TCP_CONG_CONTROL=110,
12155 NET_TCP_ABC=111,
12156 NET_IPV4_IPFRAG_MAX_DIST=112,
12157 NET_TCP_MTU_PROBING=113,
12158 NET_TCP_BASE_MSS=114,
12159 NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115,
12160 NET_TCP_DMA_COPYBREAK=116,
12161 NET_TCP_SLOW_START_AFTER_IDLE=117,
12162 NET_CIPSOV4_CACHE_ENABLE=118,
12163 NET_CIPSOV4_CACHE_BUCKET_SIZE=119,
12164 NET_CIPSOV4_RBM_OPTFMT=120,
12165 NET_CIPSOV4_RBM_STRICTVALID=121,
12166 NET_TCP_AVAIL_CONG_CONTROL=122,
12167 NET_TCP_ALLOWED_CONG_CONTROL=123,
12168};
12169
12170enum {
12171 NET_IPV4_ROUTE_FLUSH=1,
12172 NET_IPV4_ROUTE_MIN_DELAY=2,
12173 NET_IPV4_ROUTE_MAX_DELAY=3,
12174 NET_IPV4_ROUTE_GC_THRESH=4,
12175 NET_IPV4_ROUTE_MAX_SIZE=5,
12176 NET_IPV4_ROUTE_GC_MIN_INTERVAL=6,
12177 NET_IPV4_ROUTE_GC_TIMEOUT=7,
12178 NET_IPV4_ROUTE_GC_INTERVAL=8,
12179 NET_IPV4_ROUTE_REDIRECT_LOAD=9,
12180 NET_IPV4_ROUTE_REDIRECT_NUMBER=10,
12181 NET_IPV4_ROUTE_REDIRECT_SILENCE=11,
12182 NET_IPV4_ROUTE_ERROR_COST=12,
12183 NET_IPV4_ROUTE_ERROR_BURST=13,
12184 NET_IPV4_ROUTE_GC_ELASTICITY=14,
12185 NET_IPV4_ROUTE_MTU_EXPIRES=15,
12186 NET_IPV4_ROUTE_MIN_PMTU=16,
12187 NET_IPV4_ROUTE_MIN_ADVMSS=17,
12188 NET_IPV4_ROUTE_SECRET_INTERVAL=18,
12189 NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS=19,
12190};
12191
12192enum
12193{
12194 NET_PROTO_CONF_ALL=-2,
12195 NET_PROTO_CONF_DEFAULT=-3
12196
12197
12198};
12199
12200enum
12201{
12202 NET_IPV4_CONF_FORWARDING=1,
12203 NET_IPV4_CONF_MC_FORWARDING=2,
12204 NET_IPV4_CONF_PROXY_ARP=3,
12205 NET_IPV4_CONF_ACCEPT_REDIRECTS=4,
12206 NET_IPV4_CONF_SECURE_REDIRECTS=5,
12207 NET_IPV4_CONF_SEND_REDIRECTS=6,
12208 NET_IPV4_CONF_SHARED_MEDIA=7,
12209 NET_IPV4_CONF_RP_FILTER=8,
12210 NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9,
12211 NET_IPV4_CONF_BOOTP_RELAY=10,
12212 NET_IPV4_CONF_LOG_MARTIANS=11,
12213 NET_IPV4_CONF_TAG=12,
12214 NET_IPV4_CONF_ARPFILTER=13,
12215 NET_IPV4_CONF_MEDIUM_ID=14,
12216 NET_IPV4_CONF_NOXFRM=15,
12217 NET_IPV4_CONF_NOPOLICY=16,
12218 NET_IPV4_CONF_FORCE_IGMP_VERSION=17,
12219 NET_IPV4_CONF_ARP_ANNOUNCE=18,
12220 NET_IPV4_CONF_ARP_IGNORE=19,
12221 NET_IPV4_CONF_PROMOTE_SECONDARIES=20,
12222 NET_IPV4_CONF_ARP_ACCEPT=21,
12223 __NET_IPV4_CONF_MAX
12224};
12225
12226
12227enum
12228{
12229 NET_IPV4_NF_CONNTRACK_MAX=1,
12230 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2,
12231 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3,
12232 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4,
12233 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5,
12234 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6,
12235 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7,
12236 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8,
12237 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9,
12238 NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10,
12239 NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11,
12240 NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12,
12241 NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13,
12242 NET_IPV4_NF_CONNTRACK_BUCKETS=14,
12243 NET_IPV4_NF_CONNTRACK_LOG_INVALID=15,
12244 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16,
12245 NET_IPV4_NF_CONNTRACK_TCP_LOOSE=17,
12246 NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL=18,
12247 NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS=19,
12248 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20,
12249 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21,
12250 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22,
12251 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23,
12252 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24,
12253 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25,
12254 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26,
12255 NET_IPV4_NF_CONNTRACK_COUNT=27,
12256 NET_IPV4_NF_CONNTRACK_CHECKSUM=28,
12257};
12258
12259
12260enum {
12261 NET_IPV6_CONF=16,
12262 NET_IPV6_NEIGH=17,
12263 NET_IPV6_ROUTE=18,
12264 NET_IPV6_ICMP=19,
12265 NET_IPV6_BINDV6ONLY=20,
12266 NET_IPV6_IP6FRAG_HIGH_THRESH=21,
12267 NET_IPV6_IP6FRAG_LOW_THRESH=22,
12268 NET_IPV6_IP6FRAG_TIME=23,
12269 NET_IPV6_IP6FRAG_SECRET_INTERVAL=24,
12270 NET_IPV6_MLD_MAX_MSF=25,
12271};
12272
12273enum {
12274 NET_IPV6_ROUTE_FLUSH=1,
12275 NET_IPV6_ROUTE_GC_THRESH=2,
12276 NET_IPV6_ROUTE_MAX_SIZE=3,
12277 NET_IPV6_ROUTE_GC_MIN_INTERVAL=4,
12278 NET_IPV6_ROUTE_GC_TIMEOUT=5,
12279 NET_IPV6_ROUTE_GC_INTERVAL=6,
12280 NET_IPV6_ROUTE_GC_ELASTICITY=7,
12281 NET_IPV6_ROUTE_MTU_EXPIRES=8,
12282 NET_IPV6_ROUTE_MIN_ADVMSS=9,
12283 NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS=10
12284};
12285
12286enum {
12287 NET_IPV6_FORWARDING=1,
12288 NET_IPV6_HOP_LIMIT=2,
12289 NET_IPV6_MTU=3,
12290 NET_IPV6_ACCEPT_RA=4,
12291 NET_IPV6_ACCEPT_REDIRECTS=5,
12292 NET_IPV6_AUTOCONF=6,
12293 NET_IPV6_DAD_TRANSMITS=7,
12294 NET_IPV6_RTR_SOLICITS=8,
12295 NET_IPV6_RTR_SOLICIT_INTERVAL=9,
12296 NET_IPV6_RTR_SOLICIT_DELAY=10,
12297 NET_IPV6_USE_TEMPADDR=11,
12298 NET_IPV6_TEMP_VALID_LFT=12,
12299 NET_IPV6_TEMP_PREFERED_LFT=13,
12300 NET_IPV6_REGEN_MAX_RETRY=14,
12301 NET_IPV6_MAX_DESYNC_FACTOR=15,
12302 NET_IPV6_MAX_ADDRESSES=16,
12303 NET_IPV6_FORCE_MLD_VERSION=17,
12304 NET_IPV6_ACCEPT_RA_DEFRTR=18,
12305 NET_IPV6_ACCEPT_RA_PINFO=19,
12306 NET_IPV6_ACCEPT_RA_RTR_PREF=20,
12307 NET_IPV6_RTR_PROBE_INTERVAL=21,
12308 NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22,
12309 NET_IPV6_PROXY_NDP=23,
12310 __NET_IPV6_MAX
12311};
12312
12313
12314enum {
12315 NET_IPV6_ICMP_RATELIMIT=1
12316};
12317
12318
12319enum {
12320 NET_NEIGH_MCAST_SOLICIT=1,
12321 NET_NEIGH_UCAST_SOLICIT=2,
12322 NET_NEIGH_APP_SOLICIT=3,
12323 NET_NEIGH_RETRANS_TIME=4,
12324 NET_NEIGH_REACHABLE_TIME=5,
12325 NET_NEIGH_DELAY_PROBE_TIME=6,
12326 NET_NEIGH_GC_STALE_TIME=7,
12327 NET_NEIGH_UNRES_QLEN=8,
12328 NET_NEIGH_PROXY_QLEN=9,
12329 NET_NEIGH_ANYCAST_DELAY=10,
12330 NET_NEIGH_PROXY_DELAY=11,
12331 NET_NEIGH_LOCKTIME=12,
12332 NET_NEIGH_GC_INTERVAL=13,
12333 NET_NEIGH_GC_THRESH1=14,
12334 NET_NEIGH_GC_THRESH2=15,
12335 NET_NEIGH_GC_THRESH3=16,
12336 NET_NEIGH_RETRANS_TIME_MS=17,
12337 NET_NEIGH_REACHABLE_TIME_MS=18,
12338 __NET_NEIGH_MAX
12339};
12340
12341
12342enum {
12343 NET_DCCP_DEFAULT=1,
12344};
12345
12346
12347enum {
12348 NET_IPX_PPROP_BROADCASTING=1,
12349 NET_IPX_FORWARDING=2
12350};
12351
12352
12353enum {
12354 NET_LLC2=1,
12355 NET_LLC_STATION=2,
12356};
12357
12358
12359enum {
12360 NET_LLC2_TIMEOUT=1,
12361};
12362
12363
12364enum {
12365 NET_LLC_STATION_ACK_TIMEOUT=1,
12366};
12367
12368
12369enum {
12370 NET_LLC2_ACK_TIMEOUT=1,
12371 NET_LLC2_P_TIMEOUT=2,
12372 NET_LLC2_REJ_TIMEOUT=3,
12373 NET_LLC2_BUSY_TIMEOUT=4,
12374};
12375
12376
12377enum {
12378 NET_ATALK_AARP_EXPIRY_TIME=1,
12379 NET_ATALK_AARP_TICK_TIME=2,
12380 NET_ATALK_AARP_RETRANSMIT_LIMIT=3,
12381 NET_ATALK_AARP_RESOLVE_TIME=4
12382};
12383
12384
12385
12386enum {
12387 NET_NETROM_DEFAULT_PATH_QUALITY=1,
12388 NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2,
12389 NET_NETROM_NETWORK_TTL_INITIALISER=3,
12390 NET_NETROM_TRANSPORT_TIMEOUT=4,
12391 NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5,
12392 NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6,
12393 NET_NETROM_TRANSPORT_BUSY_DELAY=7,
12394 NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8,
12395 NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9,
12396 NET_NETROM_ROUTING_CONTROL=10,
12397 NET_NETROM_LINK_FAILS_COUNT=11,
12398 NET_NETROM_RESET=12
12399};
12400
12401
12402enum {
12403 NET_AX25_IP_DEFAULT_MODE=1,
12404 NET_AX25_DEFAULT_MODE=2,
12405 NET_AX25_BACKOFF_TYPE=3,
12406 NET_AX25_CONNECT_MODE=4,
12407 NET_AX25_STANDARD_WINDOW=5,
12408 NET_AX25_EXTENDED_WINDOW=6,
12409 NET_AX25_T1_TIMEOUT=7,
12410 NET_AX25_T2_TIMEOUT=8,
12411 NET_AX25_T3_TIMEOUT=9,
12412 NET_AX25_IDLE_TIMEOUT=10,
12413 NET_AX25_N2=11,
12414 NET_AX25_PACLEN=12,
12415 NET_AX25_PROTOCOL=13,
12416 NET_AX25_DAMA_SLAVE_TIMEOUT=14
12417};
12418
12419
12420enum {
12421 NET_ROSE_RESTART_REQUEST_TIMEOUT=1,
12422 NET_ROSE_CALL_REQUEST_TIMEOUT=2,
12423 NET_ROSE_RESET_REQUEST_TIMEOUT=3,
12424 NET_ROSE_CLEAR_REQUEST_TIMEOUT=4,
12425 NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5,
12426 NET_ROSE_ROUTING_CONTROL=6,
12427 NET_ROSE_LINK_FAIL_TIMEOUT=7,
12428 NET_ROSE_MAX_VCS=8,
12429 NET_ROSE_WINDOW_SIZE=9,
12430 NET_ROSE_NO_ACTIVITY_TIMEOUT=10
12431};
12432
12433
12434enum {
12435 NET_X25_RESTART_REQUEST_TIMEOUT=1,
12436 NET_X25_CALL_REQUEST_TIMEOUT=2,
12437 NET_X25_RESET_REQUEST_TIMEOUT=3,
12438 NET_X25_CLEAR_REQUEST_TIMEOUT=4,
12439 NET_X25_ACK_HOLD_BACK_TIMEOUT=5
12440};
12441
12442
12443enum
12444{
12445 NET_TR_RIF_TIMEOUT=1
12446};
12447
12448
12449enum {
12450 NET_DECNET_NODE_TYPE = 1,
12451 NET_DECNET_NODE_ADDRESS = 2,
12452 NET_DECNET_NODE_NAME = 3,
12453 NET_DECNET_DEFAULT_DEVICE = 4,
12454 NET_DECNET_TIME_WAIT = 5,
12455 NET_DECNET_DN_COUNT = 6,
12456 NET_DECNET_DI_COUNT = 7,
12457 NET_DECNET_DR_COUNT = 8,
12458 NET_DECNET_DST_GC_INTERVAL = 9,
12459 NET_DECNET_CONF = 10,
12460 NET_DECNET_NO_FC_MAX_CWND = 11,
12461 NET_DECNET_MEM = 12,
12462 NET_DECNET_RMEM = 13,
12463 NET_DECNET_WMEM = 14,
12464 NET_DECNET_DEBUG_LEVEL = 255
12465};
12466
12467
12468enum {
12469 NET_DECNET_CONF_LOOPBACK = -2,
12470 NET_DECNET_CONF_DDCMP = -3,
12471 NET_DECNET_CONF_PPP = -4,
12472 NET_DECNET_CONF_X25 = -5,
12473 NET_DECNET_CONF_GRE = -6,
12474 NET_DECNET_CONF_ETHER = -7
12475
12476
12477};
12478
12479
12480enum {
12481 NET_DECNET_CONF_DEV_PRIORITY = 1,
12482 NET_DECNET_CONF_DEV_T1 = 2,
12483 NET_DECNET_CONF_DEV_T2 = 3,
12484 NET_DECNET_CONF_DEV_T3 = 4,
12485 NET_DECNET_CONF_DEV_FORWARDING = 5,
12486 NET_DECNET_CONF_DEV_BLKSIZE = 6,
12487 NET_DECNET_CONF_DEV_STATE = 7
12488};
12489
12490
12491enum {
12492 NET_SCTP_RTO_INITIAL = 1,
12493 NET_SCTP_RTO_MIN = 2,
12494 NET_SCTP_RTO_MAX = 3,
12495 NET_SCTP_RTO_ALPHA = 4,
12496 NET_SCTP_RTO_BETA = 5,
12497 NET_SCTP_VALID_COOKIE_LIFE = 6,
12498 NET_SCTP_ASSOCIATION_MAX_RETRANS = 7,
12499 NET_SCTP_PATH_MAX_RETRANS = 8,
12500 NET_SCTP_MAX_INIT_RETRANSMITS = 9,
12501 NET_SCTP_HB_INTERVAL = 10,
12502 NET_SCTP_PRESERVE_ENABLE = 11,
12503 NET_SCTP_MAX_BURST = 12,
12504 NET_SCTP_ADDIP_ENABLE = 13,
12505 NET_SCTP_PRSCTP_ENABLE = 14,
12506 NET_SCTP_SNDBUF_POLICY = 15,
12507 NET_SCTP_SACK_TIMEOUT = 16,
12508 NET_SCTP_RCVBUF_POLICY = 17,
12509};
12510
12511
12512enum {
12513 NET_BRIDGE_NF_CALL_ARPTABLES = 1,
12514 NET_BRIDGE_NF_CALL_IPTABLES = 2,
12515 NET_BRIDGE_NF_CALL_IP6TABLES = 3,
12516 NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4,
12517};
12518
12519
12520enum
12521{
12522 FS_NRINODE=1,
12523 FS_STATINODE=2,
12524 FS_MAXINODE=3,
12525 FS_NRDQUOT=4,
12526 FS_MAXDQUOT=5,
12527 FS_NRFILE=6,
12528 FS_MAXFILE=7,
12529 FS_DENTRY=8,
12530 FS_NRSUPER=9,
12531 FS_MAXSUPER=10,
12532 FS_OVERFLOWUID=11,
12533 FS_OVERFLOWGID=12,
12534 FS_LEASES=13,
12535 FS_DIR_NOTIFY=14,
12536 FS_LEASE_TIME=15,
12537 FS_DQSTATS=16,
12538 FS_XFS=17,
12539 FS_AIO_NR=18,
12540 FS_AIO_MAX_NR=19,
12541 FS_INOTIFY=20,
12542};
12543
12544
12545enum {
12546 FS_DQ_LOOKUPS = 1,
12547 FS_DQ_DROPS = 2,
12548 FS_DQ_READS = 3,
12549 FS_DQ_WRITES = 4,
12550 FS_DQ_CACHE_HITS = 5,
12551 FS_DQ_ALLOCATED = 6,
12552 FS_DQ_FREE = 7,
12553 FS_DQ_SYNCS = 8,
12554 FS_DQ_WARNINGS = 9,
12555};
12556
12557
12558
12559
12560enum {
12561 DEV_CDROM=1,
12562 DEV_HWMON=2,
12563 DEV_PARPORT=3,
12564 DEV_RAID=4,
12565 DEV_MAC_HID=5,
12566 DEV_SCSI=6,
12567 DEV_IPMI=7,
12568};
12569
12570
12571enum {
12572 DEV_CDROM_INFO=1,
12573 DEV_CDROM_AUTOCLOSE=2,
12574 DEV_CDROM_AUTOEJECT=3,
12575 DEV_CDROM_DEBUG=4,
12576 DEV_CDROM_LOCK=5,
12577 DEV_CDROM_CHECK_MEDIA=6
12578};
12579
12580
12581enum {
12582 DEV_PARPORT_DEFAULT=-3
12583};
12584
12585
12586enum {
12587 DEV_RAID_SPEED_LIMIT_MIN=1,
12588 DEV_RAID_SPEED_LIMIT_MAX=2
12589};
12590
12591
12592enum {
12593 DEV_PARPORT_DEFAULT_TIMESLICE=1,
12594 DEV_PARPORT_DEFAULT_SPINTIME=2
12595};
12596
12597
12598enum {
12599 DEV_PARPORT_SPINTIME=1,
12600 DEV_PARPORT_BASE_ADDR=2,
12601 DEV_PARPORT_IRQ=3,
12602 DEV_PARPORT_DMA=4,
12603 DEV_PARPORT_MODES=5,
12604 DEV_PARPORT_DEVICES=6,
12605 DEV_PARPORT_AUTOPROBE=16
12606};
12607
12608
12609enum {
12610 DEV_PARPORT_DEVICES_ACTIVE=-3,
12611};
12612
12613
12614enum {
12615 DEV_PARPORT_DEVICE_TIMESLICE=1,
12616};
12617
12618
12619enum {
12620 DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1,
12621 DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2,
12622 DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3,
12623 DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4,
12624 DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5,
12625 DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6
12626};
12627
12628
12629enum {
12630 DEV_SCSI_LOGGING_LEVEL=1,
12631};
12632
12633
12634enum {
12635 DEV_IPMI_POWEROFF_POWERCYCLE=1,
12636};
12637
12638
12639enum
12640{
12641 ABI_DEFHANDLER_COFF=1,
12642 ABI_DEFHANDLER_ELF=2,
12643 ABI_DEFHANDLER_LCALL7=3,
12644 ABI_DEFHANDLER_LIBCSO=4,
12645 ABI_TRACE=5,
12646 ABI_FAKE_UTSNAME=6,
12647};
12648# 45 "../sysdeps/unix/sysv/linux/sys/sysctl.h" 2
12649# 64 "../sysdeps/unix/sysv/linux/sys/sysctl.h"
12650
12651
12652
12653extern int sysctl (int *__name, int __nlen, void *__oldval,
12654 size_t *__oldlenp, void *__newval, size_t __newlen) __attribute__ ((__nothrow__));
12655
12656
12657# 3 "../include/sys/sysctl.h" 2
12658
12659
12660extern int __sysctl (int *__name, int __nlen, void *__oldval,
12661 size_t *__oldlenp, void *__newval, size_t __newlen);
12662
12663# 23 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2
12664# 1 "../include/sys/utsname.h" 1
12665
12666# 1 "../posix/sys/utsname.h" 1
12667# 28 "../posix/sys/utsname.h"
12668
12669
12670# 1 "../sysdeps/unix/sysv/linux/bits/utsname.h" 1
12671# 31 "../posix/sys/utsname.h" 2
12672# 49 "../posix/sys/utsname.h"
12673struct utsname
12674 {
12675
12676 char sysname[65];
12677
12678
12679 char nodename[65];
12680
12681
12682 char release[65];
12683
12684 char version[65];
12685
12686
12687 char machine[65];
12688
12689
12690
12691
12692 char domainname[65];
12693
12694
12695
12696
12697 };
12698# 82 "../posix/sys/utsname.h"
12699extern int uname (struct utsname *__name) __attribute__ ((__nothrow__));
12700
12701
12702
12703# 3 "../include/sys/utsname.h" 2
12704
12705extern int __uname (struct utsname *__name);
12706
12707
12708
12709# 24 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2
12710# 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1
12711# 25 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2
12712# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
12713# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
12714# 1 "../sysdeps/generic/dl-sysdep.h" 1
12715# 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
12716# 26 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2
12717# 35 "../sysdeps/unix/sysv/linux/dl-osinfo.h"
12718static inline void
12719__attribute__ ((__noreturn__))
12720dl_fatal (const char *str)
12721{
12722 _dl_dprintf (2, str);
12723 _exit (1);
12724}
12725
12726
12727static inline int __attribute__ ((always_inline))
12728_dl_discover_osversion (void)
12729{
12730
12731 if (_rtld_local_ro._dl_sysinfo_map != ((void *)0))
12732 {
12733
12734
12735
12736 static const struct
12737 {
12738 Elf64_Word vendorlen;
12739 Elf64_Word datalen;
12740 Elf64_Word type;
12741 char vendor[8];
12742 } expected_note = { sizeof "Linux", sizeof (Elf64_Word), 0, "Linux" };
12743 const Elf64_Phdr *const phdr = _rtld_local_ro._dl_sysinfo_map->l_phdr;
12744 const Elf64_Word phnum = _rtld_local_ro._dl_sysinfo_map->l_phnum;
12745 for (uint_fast16_t i = 0; i < phnum; ++i)
12746 if (phdr[i].p_type == 4)
12747 {
12748 const Elf64_Addr start = (phdr[i].p_vaddr
12749 + _rtld_local_ro._dl_sysinfo_map->l_addr);
12750 const struct
12751 {
12752 Elf64_Word vendorlen;
12753 Elf64_Word datalen;
12754 Elf64_Word type;
12755 } *note = (const void *) start;
12756 while ((Elf64_Addr) (note + 1) - start < phdr[i].p_memsz)
12757 {
12758 if (!memcmp (note, &expected_note, sizeof expected_note))
12759 return *(const Elf64_Word *) ((const void *) note
12760 + sizeof expected_note);
12761
12762 note = ((const void *) (note + 1)
12763 + (((note->vendorlen) + sizeof (Elf64_Word) - 1) & -sizeof (Elf64_Word)) + (((note->datalen) + sizeof (Elf64_Word) - 1) & -sizeof (Elf64_Word)));
12764 }
12765 }
12766 }
12767
12768
12769 char bufmem[64];
12770 char *buf = bufmem;
12771 unsigned int version;
12772 int parts;
12773 char *cp;
12774 struct utsname uts;
12775
12776
12777 if (__uname (&uts))
12778 {
12779
12780 int fd = __open ("/proc/sys/kernel/osrelease", 00);
12781 if (fd < 0)
12782 return -1;
12783 ssize_t reslen = __read (fd, bufmem, sizeof (bufmem));
12784 __close (fd);
12785 if (reslen <= 0)
12786
12787
12788 return -1;
12789 buf[(((reslen)<((ssize_t) sizeof (bufmem) - 1))?(reslen):((ssize_t) sizeof (bufmem) - 1))] = '\0';
12790 }
12791 else
12792 buf = uts.release;
12793
12794
12795
12796 version = 0;
12797 parts = 0;
12798 cp = buf;
12799 while ((*cp >= '0') && (*cp <= '9'))
12800 {
12801 unsigned int here = *cp++ - '0';
12802
12803 while ((*cp >= '0') && (*cp <= '9'))
12804 {
12805 here *= 10;
12806 here += *cp++ - '0';
12807 }
12808
12809 ++parts;
12810 version <<= 8;
12811 version |= here;
12812
12813 if (*cp++ != '.')
12814
12815 break;
12816 }
12817
12818 if (parts < 3)
12819 version <<= 8 * (3 - parts);
12820
12821 return version;
12822}
12823# 162 "../sysdeps/unix/sysv/linux/dl-osinfo.h"
12824static inline uintptr_t __attribute__ ((always_inline))
12825_dl_setup_stack_chk_guard (void)
12826{
12827 uintptr_t ret;
12828# 176 "../sysdeps/unix/sysv/linux/dl-osinfo.h"
12829 ret = 0;
12830 unsigned char *p = (unsigned char *) &ret;
12831 p[sizeof (ret) - 1] = 255;
12832 p[sizeof (ret) - 2] = '\n';
12833 return ret;
12834}
12835# 41 "rtld.c" 2
12836# 1 "../sysdeps/generic/dl-procinfo.h" 1
12837# 42 "rtld.c" 2
12838
12839
12840# 1 "../include/assert.h" 1
12841# 1 "../assert/assert.h" 1
12842# 65 "../assert/assert.h"
12843
12844
12845
12846extern void __assert_fail (__const char *__assertion, __const char *__file,
12847 unsigned int __line, __const char *__function)
12848 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
12849
12850
12851extern void __assert_perror_fail (int __errnum, __const char *__file,
12852 unsigned int __line,
12853 __const char *__function)
12854 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
12855
12856
12857
12858
12859extern void __assert (const char *__assertion, const char *__file, int __line)
12860 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
12861
12862
12863
12864# 2 "../include/assert.h" 2
12865
12866
12867
12868
12869extern void __assert_fail (__const char *__assertion, __const char *__file,
12870 unsigned int __line, __const char *__function)
12871 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
12872
12873
12874extern void __assert_perror_fail (int __errnum, __const char *__file,
12875 unsigned int __line,
12876 __const char *__function)
12877 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
12878
12879
12880extern __typeof (__assert_fail) __assert_fail __asm__ ("" "__GI___assert_fail") __attribute__ ((visibility ("hidden")));
12881extern __typeof (__assert_perror_fail) __assert_perror_fail __asm__ ("" "__GI___assert_perror_fail") __attribute__ ((visibility ("hidden")));
12882# 45 "rtld.c" 2
12883
12884
12885extern __typeof (__mempcpy) __mempcpy __attribute__ ((visibility ("hidden")));
12886
12887
12888extern __typeof (_exit) exit_internal asm ("_exit") __attribute__ ((visibility ("hidden")));
12889
12890
12891
12892static void print_unresolved (int errcode, const char *objname,
12893 const char *errsting);
12894
12895
12896static void print_missing_version (int errcode, const char *objname,
12897 const char *errsting);
12898
12899
12900static void print_statistics (hp_timing_t *total_timep);
12901
12902
12903static void process_dl_audit (char *str);
12904
12905
12906enum mode { normal, list, verify, trace };
12907
12908
12909
12910
12911static void process_envvars (enum mode *modep);
12912
12913
12914
12915
12916
12917
12918
12919int _dl_argc __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden")));
12920char **_dl_argv __attribute__ ((section (".data.rel.ro"))) = ((void *)0);
12921unsigned int _dl_skip_args __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden")));
12922
12923extern __typeof (_dl_argv) _dl_argv_internal __attribute__ ((alias ("_dl_argv")));
12924
12925
12926
12927
12928
12929
12930
12931uintptr_t __guard_local __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden"))) __attribute__ ((nocommon));
12932extern __typeof (__guard_local) __guard __attribute__ ((weak, alias ("__guard_local")));;
12933
12934
12935
12936
12937uintptr_t __pointer_chk_guard_local
12938 __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden"))) __attribute__ ((nocommon));
12939
12940
12941
12942
12943
12944
12945static struct audit_list
12946{
12947 const char *name;
12948 struct audit_list *next;
12949} *audit_list;
12950# 127 "rtld.c"
12951struct rtld_global _rtld_global =
12952 {
12953
12954 ._dl_stack_flags = (1 << 2)|(1 << 1)|(1 << 0),
12955
12956 ._dl_load_lock = {{ { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0, 0 } } }}
12957
12958 };
12959
12960
12961
12962
12963extern struct rtld_global _rtld_local
12964 __attribute__ ((alias ("_rtld_global"), visibility ("hidden")));
12965
12966
12967
12968
12969struct rtld_global_ro _rtld_global_ro __attribute__ ((section (".data.rel.ro"))) =
12970 {
12971
12972# 1 "../sysdeps/generic/dl-procinfo.c" 1
12973# 149 "rtld.c" 2
12974
12975
12976
12977 ._dl_debug_fd = 2,
12978 ._dl_use_load_bias = -2,
12979 ._dl_correct_cache_id = 0x403,
12980 ._dl_hwcap_mask = (0),
12981 ._dl_lazy = 1,
12982 ._dl_fpu_control = 0x00000000,
12983 ._dl_pointer_guard = 1,
12984
12985
12986 ._dl_debug_printf = _dl_debug_printf,
12987 ._dl_catch_error = _dl_catch_error,
12988 ._dl_signal_error = _dl_signal_error,
12989 ._dl_mcount = _dl_mcount_internal,
12990 ._dl_lookup_symbol_x = _dl_lookup_symbol_x,
12991 ._dl_check_caller = _dl_check_caller,
12992 ._dl_open = _dl_open,
12993 ._dl_close = _dl_close
12994 };
12995
12996
12997
12998
12999extern struct rtld_global_ro _rtld_local_ro
13000 __attribute__ ((alias ("_rtld_global_ro"), visibility ("hidden")));
13001
13002
13003static void dl_main (const Elf64_Phdr *phdr, Elf64_Word phnum,
13004 Elf64_Addr *user_entry);
13005
13006
13007static struct libname_list _dl_rtld_libname;
13008static struct libname_list _dl_rtld_libname2;
13009# 220 "rtld.c"
13010static Elf64_Addr _dl_start_final (void *arg);
13011# 234 "rtld.c"
13012extern char _begin[] __attribute__ ((visibility ("hidden")));
13013extern char _etext[] __attribute__ ((visibility ("hidden")));
13014extern char _end[] __attribute__ ((visibility ("hidden")));
13015
13016
13017
13018asm ("\n.text\n.align 4\n.globl _start\n.globl _dl_start_user\n_start:\n lgr %r2,%r15\n # Alloc stack frame\n aghi %r15,-160\n # Set the back chain to zero\n xc 0(8,%r15),0(%r15)\n # Call _dl_start with %r2 pointing to arg on stack\n brasl %r14,_dl_start # call _dl_start\n_dl_start_user:\n # Save the user entry point address in %r8.\n lgr %r8,%r2\n # Point %r12 at the GOT.\n larl %r12,_GLOBAL_OFFSET_TABLE_\n # See if we were run as a command with the executable file\n # name as an extra leading argument.\n lghi %r1,_dl_skip_args@GOT\n lg %r1,0(%r1,%r12)\n lgf %r1,0(%r1) # load _dl_skip_args\n # Get the original argument count.\n lg %r0,160(%r15)\n # Subtract _dl_skip_args from it.\n sgr %r0,%r1\n # Adjust the stack pointer to skip _dl_skip_args words.\n sllg %r1,%r1,3\n agr %r15,%r1\n # Set the back chain to zero again\n xc 0(8,%r15),0(%r15)\n # Store back the modified argument count.\n stg %r0,160(%r15)\n # The special initializer gets called with the stack just\n # as the application's entry point will see it; it can\n # switch stacks if it moves these contents over.\n" "\n # Call the function to run the initializers.\n # Load the parameters:\n # (%r2, %r3, %r4, %r5) = (_dl_loaded, argc, argv, envp)\n lghi %r2,_rtld_local@GOT\n lg %r2,0(%r2,%r12)\n lg %r2,0(%r2)\n lg %r3,160(%r15)\n la %r4,168(%r15)\n lgr %r5,%r3\n sllg %r5,%r5,3\n la %r5,176(%r5,%r15)\n brasl %r14,_dl_init_internal@PLT\n # Pass our finalizer function to the user in %r14, as per ELF ABI.\n lghi %r14,_dl_fini@GOT\n lg %r14,0(%r14,%r12)\n # Free stack frame\n aghi %r15,160\n # Jump to the user's entry point (saved in %r8).\n br %r8\n");
13019# 261 "rtld.c"
13020static inline Elf64_Addr __attribute__ ((always_inline))
13021_dl_start_final (void *arg)
13022
13023
13024
13025
13026{
13027 Elf64_Addr start_addr;
13028
13029 if ((0))
13030 {
13031
13032 if (! (0))
13033 ;
13034
13035
13036
13037
13038
13039
13040 ;
13041 }
13042# 293 "rtld.c"
13043 _dl_setup_hash (&_rtld_local._dl_rtld_map);
13044 _rtld_local._dl_rtld_map.l_real = &_rtld_local._dl_rtld_map;
13045 _rtld_local._dl_rtld_map.l_map_start = (Elf64_Addr) _begin;
13046 _rtld_local._dl_rtld_map.l_map_end = (Elf64_Addr) _end;
13047 _rtld_local._dl_rtld_map.l_text_end = (Elf64_Addr) _etext;
13048# 323 "rtld.c"
13049 __libc_stack_end = __builtin_frame_address (0);
13050
13051
13052
13053
13054
13055 start_addr = _dl_sysdep_start (arg, &dl_main);
13056# 345 "rtld.c"
13057 if (__builtin_expect (_rtld_local_ro._dl_debug_mask & (1 << 7), 0))
13058 {
13059
13060
13061
13062 print_statistics (((void *)0));
13063
13064 }
13065
13066 return start_addr;
13067}
13068
13069static Elf64_Addr __attribute__ ((__used__))
13070_dl_start (void *arg)
13071{
13072# 372 "rtld.c"
13073# 1 "dynamic-link.h" 1
13074# 21 "dynamic-link.h"
13075# 1 "../include/assert.h" 1
13076# 1 "../assert/assert.h" 1
13077# 65 "../assert/assert.h"
13078
13079
13080
13081extern void __assert_fail (__const char *__assertion, __const char *__file,
13082 unsigned int __line, __const char *__function)
13083 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
13084
13085
13086extern void __assert_perror_fail (int __errnum, __const char *__file,
13087 unsigned int __line,
13088 __const char *__function)
13089 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
13090
13091
13092
13093
13094extern void __assert (const char *__assertion, const char *__file, int __line)
13095 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
13096
13097
13098
13099# 2 "../include/assert.h" 2
13100
13101
13102
13103
13104extern void __assert_fail (__const char *__assertion, __const char *__file,
13105 unsigned int __line, __const char *__function)
13106 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
13107
13108
13109extern void __assert_perror_fail (int __errnum, __const char *__file,
13110 unsigned int __line,
13111 __const char *__function)
13112 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
13113
13114
13115extern __typeof (__assert_fail) __assert_fail __asm__ ("" "__GI___assert_fail") __attribute__ ((visibility ("hidden")));
13116extern __typeof (__assert_perror_fail) __assert_perror_fail __asm__ ("" "__GI___assert_perror_fail") __attribute__ ((visibility ("hidden")));
13117# 22 "dynamic-link.h" 2
13118# 44 "dynamic-link.h"
13119auto inline void __attribute__((always_inline))
13120elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
13121 const Elf64_Sym *sym, const struct r_found_version *version,
13122 void *const reloc_addr);
13123auto inline void __attribute__((always_inline))
13124elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
13125 void *const reloc_addr);
13126
13127
13128
13129
13130
13131
13132auto inline void __attribute__((always_inline))
13133elf_machine_lazy_rel (struct link_map *map,
13134 Elf64_Addr l_addr, const Elf64_Rela *reloc);
13135
13136
13137
13138# 1 "../sysdeps/s390/s390-64/dl-machine.h" 1
13139# 252 "../sysdeps/s390/s390-64/dl-machine.h"
13140auto inline void
13141__attribute__ ((always_inline))
13142elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
13143 const Elf64_Sym *sym, const struct r_found_version *version,
13144 void *const reloc_addr_arg)
13145{
13146 Elf64_Addr *const reloc_addr = reloc_addr_arg;
13147 const unsigned int r_type = ((reloc->r_info) & 0xffffffff);
13148# 280 "../sysdeps/s390/s390-64/dl-machine.h"
13149 if (__builtin_expect (r_type == 0, 0))
13150 return;
13151 else
13152 {
13153
13154 const Elf64_Sym *const refsym = sym;
13155
13156 struct link_map *sym_map = ((*(&sym))->st_shndx == 0 ? 0 : &_rtld_local._dl_rtld_map);
13157 Elf64_Addr value = sym == ((void *)0) ? 0 : sym_map->l_addr + sym->st_value;
13158
13159 switch (r_type)
13160 {
13161 case 10:
13162 case 11:
13163 *reloc_addr = value + reloc->r_addend;
13164 break;
13165# 408 "../sysdeps/s390/s390-64/dl-machine.h"
13166 }
13167 }
13168}
13169
13170auto inline void
13171__attribute__ ((always_inline))
13172elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
13173 void *const reloc_addr_arg)
13174{
13175 Elf64_Addr *const reloc_addr = reloc_addr_arg;
13176 *reloc_addr = l_addr + reloc->r_addend;
13177}
13178
13179auto inline void
13180__attribute__ ((always_inline))
13181elf_machine_lazy_rel (struct link_map *map,
13182 Elf64_Addr l_addr, const Elf64_Rela *reloc)
13183{
13184 Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
13185 const unsigned int r_type = ((reloc->r_info) & 0xffffffff);
13186
13187 if (__builtin_expect (r_type == 11, 1))
13188 {
13189 if (__builtin_expect (map->l_mach.plt, 0) == 0)
13190 *reloc_addr += l_addr;
13191 else
13192 *reloc_addr =
13193 map->l_mach.plt
13194 + (((Elf64_Addr) reloc_addr) - map->l_mach.gotplt) * 4;
13195 }
13196 else
13197 _dl_reloc_bad_type (map, r_type, 1);
13198}
13199# 64 "dynamic-link.h" 2
13200# 78 "dynamic-link.h"
13201auto
13202
13203inline void __attribute__ ((unused, always_inline))
13204elf_get_dynamic_info (struct link_map *l, Elf64_Dyn *temp)
13205{
13206 Elf64_Dyn *dyn = l->l_ld;
13207 Elf64_Dyn **info;
13208
13209
13210
13211
13212
13213
13214 info = l->l_info;
13215
13216 while (dyn->d_tag != 0)
13217 {
13218 if (dyn->d_tag < 34)
13219 info[dyn->d_tag] = dyn;
13220 else if (dyn->d_tag >= 0x70000000 &&
13221 dyn->d_tag < 0x70000000 + 0)
13222 info[dyn->d_tag - 0x70000000 + 34] = dyn;
13223 else if (dyn->d_tag >= 0x6cbdd030 &&
13224 dyn->d_tag < 0x6cbdd030 + 2)
13225 info[(34 + 0 + 16 + 3 + 12 + 10 + (dyn->d_tag - 0x6cbdd030))] = dyn;
13226 else if ((Elf32_Word) (0x6fffffff - (dyn->d_tag)) < 16)
13227 info[(34 + 0 + (0x6fffffff - (dyn->d_tag)))] = dyn;
13228 else if ((Elf32_Word) ((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) < 3)
13229 info[((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) + 34 + 0
13230 + 16] = dyn;
13231 else if ((Elf32_Word) (0x6ffffdff - (dyn->d_tag)) < 12)
13232 info[(0x6ffffdff - (dyn->d_tag)) + 34 + 0
13233 + 16 + 3] = dyn;
13234 else if ((Elf32_Word) (0x6ffffeff - (dyn->d_tag)) < 10)
13235 info[(0x6ffffeff - (dyn->d_tag)) + 34 + 0
13236 + 16 + 3 + 12] = dyn;
13237 ++dyn;
13238 }
13239
13240
13241
13242
13243
13244 if (l->l_addr != 0)
13245 {
13246 Elf64_Addr l_addr = l->l_addr;
13247 int cnt = 0;
13248# 141 "dynamic-link.h"
13249 do if (info[4] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[4]->d_tag; temp[cnt].d_un.d_ptr = info[4]->d_un.d_ptr + l_addr; info[4] = temp + cnt++; } else info[4]->d_un.d_ptr += l_addr; } while (0);
13250 do if (info[3] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[3]->d_tag; temp[cnt].d_un.d_ptr = info[3]->d_un.d_ptr + l_addr; info[3] = temp + cnt++; } else info[3]->d_un.d_ptr += l_addr; } while (0);
13251 do if (info[5] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[5]->d_tag; temp[cnt].d_un.d_ptr = info[5]->d_un.d_ptr + l_addr; info[5] = temp + cnt++; } else info[5]->d_un.d_ptr += l_addr; } while (0);
13252 do if (info[6] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[6]->d_tag; temp[cnt].d_un.d_ptr = info[6]->d_un.d_ptr + l_addr; info[6] = temp + cnt++; } else info[6]->d_un.d_ptr += l_addr; } while (0);
13253
13254 do if (info[7] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[7]->d_tag; temp[cnt].d_un.d_ptr = info[7]->d_un.d_ptr + l_addr; info[7] = temp + cnt++; } else info[7]->d_un.d_ptr += l_addr; } while (0);
13255
13256
13257
13258
13259 do if (info[23] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[23]->d_tag; temp[cnt].d_un.d_ptr = info[23]->d_un.d_ptr + l_addr; info[23] = temp + cnt++; } else info[23]->d_un.d_ptr += l_addr; } while (0);
13260 do if (info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr + l_addr; info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] = temp + cnt++; } else info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr += l_addr; } while (0);
13261 do if (info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_un.d_ptr + l_addr; info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))] = temp + cnt++; } else info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_un.d_ptr += l_addr; } while (0);
13262 do if (info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_un.d_ptr + l_addr; info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))] = temp + cnt++; } else info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_un.d_ptr += l_addr; } while (0);
13263
13264 ((void) ((cnt <= 8) ? 0 : (__assert_fail ("cnt <= 8", "dynamic-link.h", 156, __PRETTY_FUNCTION__), 0)));
13265 }
13266
13267 if (info[20] != ((void *)0))
13268 {
13269
13270
13271
13272 ((void) ((info[20]->d_un.d_val == 7) ? 0 : (__assert_fail ("info[20]->d_un.d_val == 7", "dynamic-link.h", 164, __PRETTY_FUNCTION__), 0)));
13273
13274
13275
13276
13277 }
13278
13279 if (info[7] != ((void *)0))
13280 ((void) ((info[9]->d_un.d_val == sizeof (Elf64_Rela)) ? 0 : (__assert_fail ("info[9]->d_un.d_val == sizeof (Elf64_Rela)", "dynamic-link.h", 172, __PRETTY_FUNCTION__), 0)));
13281
13282
13283
13284
13285
13286
13287
13288 ((void) ((info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))] == ((void *)0) || info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]->d_un.d_val == 0x00000001) ? 0 : (__assert_fail ("info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))] == ((void *)0) || info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]->d_un.d_val == 0x00000001", "dynamic-link.h", 181, __PRETTY_FUNCTION__), 0)));
13289
13290 ((void) ((info[30] == ((void *)0) || info[30]->d_un.d_val == 0x00000008) ? 0 : (__assert_fail ("info[30] == ((void *)0) || info[30]->d_un.d_val == 0x00000008", "dynamic-link.h", 183, __PRETTY_FUNCTION__), 0)));
13291
13292
13293 ((void) ((info[29] == ((void *)0)) ? 0 : (__assert_fail ("info[29] == ((void *)0)", "dynamic-link.h", 185, __PRETTY_FUNCTION__), 0)));
13294 ((void) ((info[15] == ((void *)0)) ? 0 : (__assert_fail ("info[15] == ((void *)0)", "dynamic-link.h", 186, __PRETTY_FUNCTION__), 0)));
13295# 213 "dynamic-link.h"
13296}
13297# 333 "dynamic-link.h"
13298# 1 "do-rel.h" 1
13299# 52 "do-rel.h"
13300auto inline void __attribute__ ((always_inline))
13301elf_dynamic_do_rela (struct link_map *map,
13302 Elf64_Addr reladdr, Elf64_Addr relsize,
13303 int lazy)
13304{
13305 const Elf64_Rela *r = (const void *) reladdr;
13306 const Elf64_Rela *end = (const void *) (reladdr + relsize);
13307 Elf64_Addr l_addr = map->l_addr;
13308# 73 "do-rel.h"
13309 {
13310 const Elf64_Sym *const symtab =
13311 (const void *) (map)->l_info[6]->d_un.d_ptr;
13312 Elf64_Word nrelative = (map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff9)))] == ((void *)0)
13313 ? 0 : map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff9)))]->d_un.d_val);
13314 const Elf64_Rela *relative = r;
13315 r = r + (((nrelative)<(relsize / sizeof (Elf64_Rela)))?(nrelative):(relsize / sizeof (Elf64_Rela)));
13316# 104 "do-rel.h"
13317 for (; relative < r; ++relative)
13318 elf_machine_rela_relative (l_addr, relative, (void *) (l_addr + relative->r_offset));
13319
13320
13321
13322 ((void) ((map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)) ? 0 : (__assert_fail ("map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)", "do-rel.h", 109, __PRETTY_FUNCTION__), 0)));
13323
13324
13325
13326 {
13327 const Elf64_Half *const version =
13328 (const void *) (map)->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr;
13329
13330 for (; r < end; ++r)
13331 {
13332 Elf64_Half ndx = version[((r->r_info) >> 32)] & 0x7fff;
13333 elf_machine_rela (map, r, &symtab[((r->r_info) >> 32)],
13334 &map->l_versions[ndx],
13335 (void *) (l_addr + r->r_offset));
13336 }
13337 }
13338
13339
13340
13341
13342
13343
13344 }
13345}
13346# 334 "dynamic-link.h" 2
13347# 373 "rtld.c" 2
13348
13349 if ((0) && (0))
13350
13351 ;
13352# 399 "rtld.c"
13353 _rtld_local._dl_rtld_map.l_addr = elf_machine_load_address ();
13354
13355
13356 _rtld_local._dl_rtld_map.l_ld = (void *) _rtld_local._dl_rtld_map.l_addr + elf_machine_dynamic ();
13357 elf_get_dynamic_info (&_rtld_local._dl_rtld_map, ((void *)0));
13358# 530 "rtld.c"
13359 if (_rtld_local._dl_rtld_map.l_addr || ! _rtld_local._dl_rtld_map.l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf5)))])
13360 {
13361
13362
13363
13364 do { int edr_lazy = elf_machine_runtime_setup ((&_rtld_local._dl_rtld_map), (0), (0)); ; do { struct { Elf64_Addr start, size; int lazy; } ranges[2]; ranges[0].lazy = 0; ranges[0].size = ranges[1].size = 0; ranges[0].start = 0; if (((&_rtld_local._dl_rtld_map))->l_info[7]) { ranges[0].start = (((&_rtld_local._dl_rtld_map)))->l_info[7]->d_un.d_ptr; ranges[0].size = ((&_rtld_local._dl_rtld_map))->l_info[8]->d_un.d_val; } if (((&_rtld_local._dl_rtld_map))->l_info[20] && (!0 || ((&_rtld_local._dl_rtld_map))->l_info[20]->d_un.d_val == 7)) { Elf64_Addr start = (((&_rtld_local._dl_rtld_map)))->l_info[23]->d_un.d_ptr; if (! (1) && ((edr_lazy) || ranges[0].start + ranges[0].size != start)) { ranges[1].start = start; ranges[1].size = ((&_rtld_local._dl_rtld_map))->l_info[2]->d_un.d_val; ranges[1].lazy = (edr_lazy); } else { ((void) ((ranges[0].start + ranges[0].size == start) ? 0 : (__assert_fail ("ranges[0].start + ranges[0].size == start", "rtld.c", 535, __PRETTY_FUNCTION__), 0))); ranges[0].size += ((&_rtld_local._dl_rtld_map))->l_info[2]->d_un.d_val; } } if ((1)) elf_dynamic_do_rela (((&_rtld_local._dl_rtld_map)), ranges[0].start, ranges[0].size, 0); else { int ranges_index; for (ranges_index = 0; ranges_index < 2; ++ranges_index) elf_dynamic_do_rela (((&_rtld_local._dl_rtld_map)), ranges[ranges_index].start, ranges[ranges_index].size, ranges[ranges_index].lazy); } } while (0); } while (0);
13365 }
13366 _rtld_local._dl_rtld_map.l_relocated = 1;
13367# 549 "rtld.c"
13368 {
13369
13370 Elf64_Addr entry = _dl_start_final (arg);
13371# 560 "rtld.c"
13372 return (entry);
13373 }
13374}
13375# 572 "rtld.c"
13376struct relocate_args
13377{
13378 struct link_map *l;
13379 int lazy;
13380};
13381
13382struct map_args
13383{
13384
13385 char *str;
13386 struct link_map *loader;
13387 int is_preloaded;
13388 int mode;
13389
13390 struct link_map *map;
13391};
13392
13393struct dlmopen_args
13394{
13395 const char *fname;
13396 struct link_map *map;
13397};
13398
13399struct lookup_args
13400{
13401 const char *name;
13402 struct link_map *map;
13403 void *result;
13404};
13405
13406
13407struct version_check_args
13408{
13409 int doexit;
13410 int dotrace;
13411};
13412
13413static void
13414relocate_doit (void *a)
13415{
13416 struct relocate_args *args = (struct relocate_args *) a;
13417
13418 _dl_relocate_object (args->l, args->l->l_scope, args->lazy, 0);
13419}
13420
13421static void
13422map_doit (void *a)
13423{
13424 struct map_args *args = (struct map_args *) a;
13425 args->map = _dl_map_object (args->loader, args->str,
13426 args->is_preloaded, lt_library, 0, args->mode,
13427 0);
13428}
13429
13430static void
13431dlmopen_doit (void *a)
13432{
13433 struct dlmopen_args *args = (struct dlmopen_args *) a;
13434 args->map = _dl_open (args->fname, 0x00001 | 0x80000000 | 0x08000000,
13435 dl_main, -1, _dl_argc, _dl_argv_internal,
13436 __environ);
13437}
13438
13439static void
13440lookup_doit (void *a)
13441{
13442 struct lookup_args *args = (struct lookup_args *) a;
13443 const Elf64_Sym *ref = ((void *)0);
13444 args->result = ((void *)0);
13445 lookup_t l = _dl_lookup_symbol_x (args->name, args->map, &ref,
13446 args->map->l_local_scope, ((void *)0), 0,
13447 DL_LOOKUP_RETURN_NEWEST, ((void *)0));
13448 if (ref != ((void *)0))
13449 args->result = (void *) (((l) ? (l)->l_addr : 0) + ref->st_value);
13450}
13451
13452static void
13453version_check_doit (void *a)
13454{
13455 struct version_check_args *args = (struct version_check_args *) a;
13456 if (_dl_check_all_versions (_rtld_local._dl_ns[0]._ns_loaded, 1,
13457 args->dotrace) && args->doexit)
13458
13459 exit_internal (1);
13460}
13461
13462
13463static inline struct link_map *
13464find_needed (const char *name)
13465{
13466 struct r_scope_elem *scope = &_rtld_local._dl_ns[0]._ns_loaded->l_searchlist;
13467 unsigned int n = scope->r_nlist;
13468
13469 while (n-- > 0)
13470 if (_dl_name_match_p (name, scope->r_list[n]))
13471 return scope->r_list[n];
13472
13473
13474 return ((void *)0);
13475}
13476
13477static int
13478match_version (const char *string, struct link_map *map)
13479{
13480 const char *strtab = (const void *) (map)->l_info[5]->d_un.d_ptr;
13481 Elf64_Verdef *def;
13482
13483
13484 if (map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffc)))] == ((void *)0))
13485
13486 return 0;
13487
13488 def = (Elf64_Verdef *) ((char *) map->l_addr
13489 + map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffc)))]->d_un.d_ptr);
13490 while (1)
13491 {
13492 Elf64_Verdaux *aux = (Elf64_Verdaux *) ((char *) def + def->vd_aux);
13493
13494
13495 if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (string) && __builtin_constant_p (strtab + aux->vda_name) && (__s1_len = strlen (string), __s2_len = strlen (strtab + aux->vda_name), (!((size_t)(const void *)((string) + 1) - (size_t)(const void *)(string) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((strtab + aux->vda_name) + 1) - (size_t)(const void *)(strtab + aux->vda_name) == 1) || __s2_len >= 4)) ? __builtin_strcmp (string, strtab + aux->vda_name) : (__builtin_constant_p (string) && ((size_t)(const void *)((string) + 1) - (size_t)(const void *)(string) == 1) && (__s1_len = strlen (string), __s1_len < 4) ? (__builtin_constant_p (strtab + aux->vda_name) && ((size_t)(const void *)((strtab + aux->vda_name) + 1) - (size_t)(const void *)(strtab + aux->vda_name) == 1) ? __builtin_strcmp (string, strtab + aux->vda_name) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (strtab + aux->vda_name); register int __result = (((__const unsigned char *) (__const char *) (string))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (string))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (string))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (string))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (strtab + aux->vda_name) && ((size_t)(const void *)((strtab + aux->vda_name) + 1) - (size_t)(const void *)(strtab + aux->vda_name) == 1) && (__s2_len = strlen (strtab + aux->vda_name), __s2_len < 4) ? (__builtin_constant_p (string) && ((size_t)(const void *)((string) + 1) - (size_t)(const void *)(string) == 1) ? __builtin_strcmp (string, strtab + aux->vda_name) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (string); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (strtab + aux->vda_name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (strtab + aux->vda_name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (strtab + aux->vda_name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (strtab + aux->vda_name))[3]); } } __result; }))) : __builtin_strcmp (string, strtab + aux->vda_name)))); }) == 0)
13496
13497 return 1;
13498
13499
13500 if (def->vd_next == 0)
13501 break;
13502
13503
13504 def = (Elf64_Verdef *) ((char *) def + def->vd_next);
13505 }
13506
13507 return 0;
13508}
13509
13510
13511static _Bool tls_init_tp_called;
13512
13513static void *
13514init_tls (void)
13515{
13516
13517 _rtld_local._dl_tls_static_nelem = _rtld_local._dl_tls_max_dtv_idx;
13518
13519
13520
13521 if (_rtld_local._dl_initial_dtv != ((void *)0))
13522 return ((void *)0);
13523
13524
13525
13526
13527 size_t nelem = _rtld_local._dl_tls_max_dtv_idx + 1 + (62);
13528
13529
13530 _rtld_local._dl_tls_dtv_slotinfo_list = (struct dtv_slotinfo_list *)
13531 calloc (sizeof (struct dtv_slotinfo_list)
13532 + nelem * sizeof (struct dtv_slotinfo), 1);
13533
13534
13535
13536 struct dtv_slotinfo *slotinfo = _rtld_local._dl_tls_dtv_slotinfo_list->slotinfo;
13537 _rtld_local._dl_tls_dtv_slotinfo_list->len = nelem;
13538 _rtld_local._dl_tls_dtv_slotinfo_list->next = ((void *)0);
13539
13540
13541
13542 ((void) ((_rtld_local._dl_ns[0 + 1]._ns_loaded == ((void *)0)) ? 0 : (__assert_fail ("_rtld_local._dl_ns[0 + 1]._ns_loaded == ((void *)0)", "rtld.c", 738, __PRETTY_FUNCTION__), 0)));
13543 int i = 0;
13544 for (struct link_map *l = _rtld_local._dl_ns[0]._ns_loaded; l != ((void *)0);
13545 l = l->l_next)
13546 if (l->l_tls_blocksize != 0)
13547 {
13548
13549
13550 slotinfo[i].map = l;
13551
13552 ++i;
13553 }
13554 ((void) ((i == _rtld_local._dl_tls_max_dtv_idx) ? 0 : (__assert_fail ("i == _rtld_local._dl_tls_max_dtv_idx", "rtld.c", 750, __PRETTY_FUNCTION__), 0)));
13555
13556
13557 _dl_determine_tlsoffset ();
13558
13559
13560
13561
13562
13563
13564 void *tcbp = _dl_allocate_tls_storage ();
13565 if (tcbp == ((void *)0))
13566 do { _dl_dprintf (2, "cannot allocate TLS data structures for initial thread"); exit_internal (127); } while (1);
13567
13568
13569
13570
13571 _rtld_local._dl_initial_dtv = (((tcbhead_t *) (tcbp))->dtv);
13572
13573
13574
13575 const char *lossage = ({ void *_thrdescr = (tcbp); tcbhead_t *_head = _thrdescr; _head->tcb = _thrdescr; _head->self = _thrdescr; ; __builtin_set_thread_pointer (_thrdescr); ((void *)0); });
13576 if (__builtin_expect (lossage != ((void *)0), 0))
13577 do { _dl_dprintf (2, "cannot set up thread-local storage: %s\n", lossage); exit_internal (127); } while (1);
13578 tls_init_tp_called = 1;
13579
13580 return tcbp;
13581}
13582
13583
13584
13585
13586
13587void ** __attribute__ ((const))
13588_dl_initial_error_catch_tsd (void)
13589{
13590 static void *data;
13591 return &data;
13592}
13593
13594
13595
13596static unsigned int
13597do_preload (char *fname, struct link_map *main_map, const char *where)
13598{
13599 const char *objname;
13600 const char *err_str = ((void *)0);
13601 struct map_args args;
13602 _Bool malloced;
13603
13604 args.str = fname;
13605 args.loader = main_map;
13606 args.is_preloaded = 1;
13607 args.mode = 0;
13608
13609 unsigned int old_nloaded = _rtld_local._dl_ns[0]._ns_nloaded;
13610
13611 (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, &args);
13612 if (__builtin_expect (err_str != ((void *)0), 0))
13613 {
13614 _dl_dprintf (2, "ERROR: ld.so: object '%s' from %s cannot be preloaded: ignored.\n", fname, where);
13615
13616
13617
13618
13619 }
13620 else if (_rtld_local._dl_ns[0]._ns_nloaded != old_nloaded)
13621
13622 return 1;
13623
13624
13625 return 0;
13626}
13627
13628
13629
13630static void
13631rtld_lock_default_lock_recursive (void *lock)
13632{
13633 ++((pthread_mutex_t *)(lock))->__data.__count;;
13634}
13635
13636static void
13637rtld_lock_default_unlock_recursive (void *lock)
13638{
13639 --((pthread_mutex_t *)(lock))->__data.__count;;
13640}
13641
13642
13643
13644
13645static const char *library_path __attribute__ ((section (".data.rel.ro")));
13646
13647static const char *preloadlist __attribute__ ((section (".data.rel.ro")));
13648
13649static int version_info __attribute__ ((section (".data.rel.ro")));
13650
13651static void
13652dl_main (const Elf64_Phdr *phdr,
13653 Elf64_Word phnum,
13654 Elf64_Addr *user_entry)
13655{
13656 const Elf64_Phdr *ph;
13657 enum mode mode;
13658 struct link_map *main_map;
13659 size_t file_size;
13660 char *file;
13661 _Bool has_interp = 0;
13662 unsigned int i;
13663 _Bool prelinked = 0;
13664 _Bool rtld_is_main = 0;
13665
13666
13667
13668
13669
13670
13671 void *tcbp = ((void *)0);
13672
13673
13674
13675
13676 _rtld_local._dl_error_catch_tsd = &_dl_initial_error_catch_tsd;
13677
13678
13679
13680 _rtld_local._dl_init_static_tls = &_dl_nothread_init_static_tls;
13681
13682
13683
13684
13685 _rtld_local._dl_rtld_lock_recursive = rtld_lock_default_lock_recursive;
13686 _rtld_local._dl_rtld_unlock_recursive = rtld_lock_default_unlock_recursive;
13687
13688
13689
13690
13691 _rtld_local._dl_make_stack_executable_hook = &_dl_make_stack_executable;
13692
13693
13694 process_envvars (&mode);
13695
13696
13697
13698
13699
13700
13701 if (*user_entry == (Elf64_Addr) _start)
13702 {
13703# 914 "rtld.c"
13704 rtld_is_main = 1;
13705
13706
13707 _rtld_local._dl_rtld_map.l_name = (_dl_argv_internal[0]);
13708
13709 while (_dl_argc > 1)
13710 if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--list") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--list"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--list") + 1) - (size_t)(const void *)("--list") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--list") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--list") && ((size_t)(const void *)(("--list") + 1) - (size_t)(const void *)("--list") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--list") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("--list"); register int __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--list") && ((size_t)(const void *)(("--list") + 1) - (size_t)(const void *)("--list") == 1) && (__s2_len = strlen ("--list"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--list") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--list"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--list"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--list"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--list"))[3]); } } __result; }))) : __builtin_strcmp (_dl_argv_internal[1], "--list")))); }))
13711 {
13712 mode = list;
13713 _rtld_local_ro._dl_lazy = -1;
13714
13715 ++_dl_skip_args;
13716 --_dl_argc;
13717 ++_dl_argv_internal;
13718 }
13719 else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--verify") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--verify"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--verify") + 1) - (size_t)(const void *)("--verify") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--verify") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--verify") && ((size_t)(const void *)(("--verify") + 1) - (size_t)(const void *)("--verify") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--verify") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("--verify"); register int __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--verify") && ((size_t)(const void *)(("--verify") + 1) - (size_t)(const void *)("--verify") == 1) && (__s2_len = strlen ("--verify"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--verify") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--verify"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--verify"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--verify"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--verify"))[3]); } } __result; }))) : __builtin_strcmp (_dl_argv_internal[1], "--verify")))); }))
13720 {
13721 mode = verify;
13722
13723 ++_dl_skip_args;
13724 --_dl_argc;
13725 ++_dl_argv_internal;
13726 }
13727 else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--library-path") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--library-path"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--library-path") + 1) - (size_t)(const void *)("--library-path") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--library-path") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--library-path") && ((size_t)(const void *)(("--library-path") + 1) - (size_t)(const void *)("--library-path") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--library-path") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("--library-path"); register int __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--library-path") && ((size_t)(const void *)(("--library-path") + 1) - (size_t)(const void *)("--library-path") == 1) && (__s2_len = strlen ("--library-path"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--library-path") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--library-path"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--library-path"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--library-path"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--library-path"))[3]); } } __result; }))) : __builtin_strcmp (_dl_argv_internal[1], "--library-path")))); })
13728 && _dl_argc > 2)
13729 {
13730 library_path = _dl_argv_internal[2];
13731
13732 _dl_skip_args += 2;
13733 _dl_argc -= 2;
13734 _dl_argv_internal += 2;
13735 }
13736 else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--inhibit-rpath") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--inhibit-rpath"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--inhibit-rpath") + 1) - (size_t)(const void *)("--inhibit-rpath") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-rpath") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--inhibit-rpath") && ((size_t)(const void *)(("--inhibit-rpath") + 1) - (size_t)(const void *)("--inhibit-rpath") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-rpath") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("--inhibit-rpath"); register int __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--inhibit-rpath") && ((size_t)(const void *)(("--inhibit-rpath") + 1) - (size_t)(const void *)("--inhibit-rpath") == 1) && (__s2_len = strlen ("--inhibit-rpath"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-rpath") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--inhibit-rpath"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--inhibit-rpath"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--inhibit-rpath"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--inhibit-rpath"))[3]); } } __result; }))) : __builtin_strcmp (_dl_argv_internal[1], "--inhibit-rpath")))); })
13737 && _dl_argc > 2)
13738 {
13739 _rtld_local_ro._dl_inhibit_rpath = _dl_argv_internal[2];
13740
13741 _dl_skip_args += 2;
13742 _dl_argc -= 2;
13743 _dl_argv_internal += 2;
13744 }
13745 else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--audit") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--audit"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--audit") + 1) - (size_t)(const void *)("--audit") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--audit") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--audit") && ((size_t)(const void *)(("--audit") + 1) - (size_t)(const void *)("--audit") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--audit") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("--audit"); register int __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--audit") && ((size_t)(const void *)(("--audit") + 1) - (size_t)(const void *)("--audit") == 1) && (__s2_len = strlen ("--audit"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--audit") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--audit"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--audit"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--audit"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--audit"))[3]); } } __result; }))) : __builtin_strcmp (_dl_argv_internal[1], "--audit")))); }) && _dl_argc > 2)
13746 {
13747 process_dl_audit (_dl_argv_internal[2]);
13748
13749 _dl_skip_args += 2;
13750 _dl_argc -= 2;
13751 _dl_argv_internal += 2;
13752 }
13753 else
13754 break;
13755
13756
13757
13758 if (_dl_argc < 2)
13759 do { _dl_dprintf (2, "Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]\nYou have invoked `ld.so', the helper program for shared library executables.\nThis program usually lives in the file `/lib/ld.so', and special directives\nin executable files using ELF shared libraries tell the system's program\nloader to load the helper program from this file. This helper program loads\nthe shared libraries needed by the program executable, prepares the program\nto run, and runs it. You may invoke this helper program directly from the\ncommand line to load and run an ELF executable file; this is like executing\nthat file itself, but always uses this helper program from the file you\nspecified, instead of the helper program file specified in the executable\nfile you run. This is mostly of use for maintainers to test new versions\nof this helper program; chances are you did not intend to run this program.\n\n --list list all dependencies and how they are resolved\n --verify verify that given object really is a dynamically linked\n object we can handle\n --library-path PATH use given PATH instead of content of the environment\n variable LD_LIBRARY_PATH\n --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n in LIST\n"); exit_internal (127); } while (1);
13760# 991 "rtld.c"
13761 ++_dl_skip_args;
13762 --_dl_argc;
13763 ++_dl_argv_internal;
13764# 1007 "rtld.c"
13765 for (ph = phdr; ph < &phdr[phnum]; ++ph)
13766 if (ph->p_type == 0x6474e551)
13767 {
13768 _rtld_local._dl_stack_flags = ph->p_flags;
13769 break;
13770 }
13771
13772 if (__builtin_expect (mode, normal) == verify)
13773 {
13774 const char *objname;
13775 const char *err_str = ((void *)0);
13776 struct map_args args;
13777 _Bool malloced;
13778
13779 args.str = (_dl_argv_internal[0]);
13780 args.loader = ((void *)0);
13781 args.is_preloaded = 0;
13782 args.mode = 0x20000000;
13783 (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit,
13784 &args);
13785 if (__builtin_expect (err_str != ((void *)0), 0))
13786
13787
13788 exit_internal (1);
13789 }
13790 else
13791 {
13792 ;
13793 _dl_map_object (((void *)0), (_dl_argv_internal[0]), 0, lt_library, 0,
13794 0x20000000, 0);
13795 ;
13796
13797 ;
13798 }
13799
13800
13801 main_map = _rtld_local._dl_ns[0]._ns_loaded;
13802
13803 phdr = main_map->l_phdr;
13804 phnum = main_map->l_phnum;
13805
13806
13807
13808
13809 main_map->l_name = (char *) "";
13810 *user_entry = main_map->l_entry;
13811 }
13812 else
13813 {
13814
13815
13816 main_map = _dl_new_object ((char *) "", "", lt_executable, ((void *)0),
13817 0x20000000, 0);
13818 ((void) ((main_map != ((void *)0)) ? 0 : (__assert_fail ("main_map != ((void *)0)", "rtld.c", 1060, __PRETTY_FUNCTION__), 0)));
13819 ((void) ((main_map == _rtld_local._dl_ns[0]._ns_loaded) ? 0 : (__assert_fail ("main_map == _rtld_local._dl_ns[0]._ns_loaded", "rtld.c", 1061, __PRETTY_FUNCTION__), 0)));
13820 main_map->l_phdr = phdr;
13821 main_map->l_phnum = phnum;
13822 main_map->l_entry = *user_entry;
13823# 1083 "rtld.c"
13824 }
13825
13826 main_map->l_map_end = 0;
13827 main_map->l_text_end = 0;
13828
13829 main_map->l_map_start = ~0;
13830
13831 ++main_map->l_direct_opencount;
13832
13833
13834 for (ph = phdr; ph < &phdr[phnum]; ++ph)
13835 switch (ph->p_type)
13836 {
13837 case 6:
13838
13839 main_map->l_addr = (Elf64_Addr) phdr - ph->p_vaddr;
13840 break;
13841 case 2:
13842
13843
13844 main_map->l_ld = (void *) main_map->l_addr + ph->p_vaddr;
13845 break;
13846 case 3:
13847
13848
13849
13850
13851
13852
13853 _dl_rtld_libname.name = ((const char *) main_map->l_addr
13854 + ph->p_vaddr);
13855
13856 _rtld_local._dl_rtld_map.l_libname = &_dl_rtld_libname;
13857
13858
13859
13860
13861
13862
13863 if (_rtld_local._dl_rtld_map.l_ld == ((void *)0))
13864 {
13865 const char *p = ((void *)0);
13866 const char *cp = _dl_rtld_libname.name;
13867
13868
13869 while (*cp != '\0')
13870 if (*cp++ == '/')
13871 p = cp;
13872
13873 if (p != ((void *)0))
13874 {
13875 _dl_rtld_libname2.name = p;
13876
13877 _dl_rtld_libname.next = &_dl_rtld_libname2;
13878 }
13879 }
13880
13881 has_interp = 1;
13882 break;
13883 case 1:
13884 {
13885 Elf64_Addr mapstart;
13886 Elf64_Addr allocend;
13887
13888
13889 mapstart = (main_map->l_addr + (ph->p_vaddr & ~(ph->p_align - 1)));
13890 if (main_map->l_map_start > mapstart)
13891 main_map->l_map_start = mapstart;
13892
13893
13894 allocend = main_map->l_addr + ph->p_vaddr + ph->p_memsz;
13895 if (main_map->l_map_end < allocend)
13896 main_map->l_map_end = allocend;
13897 if ((ph->p_flags & (1 << 0)) && allocend > main_map->l_text_end)
13898 main_map->l_text_end = allocend;
13899 }
13900 break;
13901
13902 case 7:
13903
13904 if (ph->p_memsz > 0)
13905 {
13906
13907
13908
13909
13910 main_map->l_tls_blocksize = ph->p_memsz;
13911 main_map->l_tls_align = ph->p_align;
13912 if (ph->p_align == 0)
13913 main_map->l_tls_firstbyte_offset = 0;
13914 else
13915 main_map->l_tls_firstbyte_offset = (ph->p_vaddr
13916 & (ph->p_align - 1));
13917 main_map->l_tls_initimage_size = ph->p_filesz;
13918 main_map->l_tls_initimage = (void *) ph->p_vaddr;
13919
13920
13921 _rtld_local._dl_tls_max_dtv_idx = main_map->l_tls_modid = 1;
13922 }
13923
13924
13925
13926
13927 break;
13928
13929 case 0x6474e551:
13930 _rtld_local._dl_stack_flags = ph->p_flags;
13931 break;
13932
13933 case 0x6474e552:
13934 main_map->l_relro_addr = ph->p_vaddr;
13935 main_map->l_relro_size = ph->p_memsz;
13936 break;
13937 }
13938
13939
13940
13941 if (main_map->l_tls_initimage != ((void *)0))
13942 main_map->l_tls_initimage
13943 = (char *) main_map->l_tls_initimage + main_map->l_addr;
13944
13945 if (! main_map->l_map_end)
13946 main_map->l_map_end = ~0;
13947 if (! main_map->l_text_end)
13948 main_map->l_text_end = ~0;
13949 if (! _rtld_local._dl_rtld_map.l_libname && _rtld_local._dl_rtld_map.l_name)
13950 {
13951
13952
13953 _dl_rtld_libname.name = _rtld_local._dl_rtld_map.l_name;
13954
13955 _rtld_local._dl_rtld_map.l_libname = &_dl_rtld_libname;
13956 }
13957 else
13958 ((void) ((_rtld_local._dl_rtld_map.l_libname) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_libname", "rtld.c", 1217, __PRETTY_FUNCTION__), 0)));
13959
13960
13961
13962 if (_rtld_local._dl_rtld_map.l_info[14] != ((void *)0)
13963 && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_rtld_local._dl_rtld_map.l_libname->name) && __builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && (__s1_len = strlen (_rtld_local._dl_rtld_map.l_libname->name), __s2_len = strlen ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val), (!((size_t)(const void *)((_rtld_local._dl_rtld_map.l_libname->name) + 1) - (size_t)(const void *)(_rtld_local._dl_rtld_map.l_libname->name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) || __s2_len >= 4)) ? __builtin_strcmp (_rtld_local._dl_rtld_map.l_libname->name, (const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) : (__builtin_constant_p (_rtld_local._dl_rtld_map.l_libname->name) && ((size_t)(const void *)((_rtld_local._dl_rtld_map.l_libname->name) + 1) - (size_t)(const void *)(_rtld_local._dl_rtld_map.l_libname->name) == 1) && (__s1_len = strlen (_rtld_local._dl_rtld_map.l_libname->name), __s1_len < 4) ? (__builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && ((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) ? __builtin_strcmp (_rtld_local._dl_rtld_map.l_libname->name, (const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val); register int __result = (((__const unsigned char *) (__const char *) (_rtld_local._dl_rtld_map.l_libname->name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_rtld_local._dl_rtld_map.l_libname->name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (_rtld_local._dl_rtld_map.l_libname->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (_rtld_local._dl_rtld_map.l_libname->name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && ((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) && (__s2_len = strlen ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val), __s2_len < 4) ? (__builtin_constant_p (_rtld_local._dl_rtld_map.l_libname->name) && ((size_t)(const void *)((_rtld_local._dl_rtld_map.l_libname->name) + 1) - (size_t)(const void *)(_rtld_local._dl_rtld_map.l_libname->name) == 1) ? __builtin_strcmp (_rtld_local._dl_rtld_map.l_libname->name, (const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (_rtld_local._dl_rtld_map.l_libname->name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[3]); } } __result; }))) : __builtin_strcmp (_rtld_local._dl_rtld_map.l_libname->name, (const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val)))); }) != 0)
13964
13965
13966 {
13967 static struct libname_list newname;
13968 newname.name = ((char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr
13969 + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_ptr);
13970 newname.next = ((void *)0);
13971 newname.dont_free = 1;
13972
13973 ((void) ((_rtld_local._dl_rtld_map.l_libname->next == ((void *)0)) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_libname->next == ((void *)0)", "rtld.c", 1232, __PRETTY_FUNCTION__), 0)));
13974 _rtld_local._dl_rtld_map.l_libname->next = &newname;
13975 }
13976
13977
13978 ((void) ((_rtld_local._dl_rtld_map.l_relocated) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_relocated", "rtld.c", 1237, __PRETTY_FUNCTION__), 0)));
13979
13980 if (! rtld_is_main)
13981 {
13982
13983 elf_get_dynamic_info (main_map, ((void *)0));
13984
13985 _dl_setup_hash (main_map);
13986 }
13987
13988 if (__builtin_expect (mode, normal) == verify)
13989 {
13990
13991
13992
13993
13994 if (main_map->l_ld == ((void *)0))
13995 exit_internal (1);
13996
13997
13998
13999
14000
14001 exit_internal (has_interp ? 0 : 2);
14002 }
14003
14004 struct link_map **first_preload = &_rtld_local._dl_rtld_map.l_next;
14005
14006
14007
14008 if (_rtld_local_ro._dl_sysinfo_dso != ((void *)0))
14009 {
14010
14011
14012
14013
14014
14015 struct link_map *l = _dl_new_object ((char *) "", "", lt_library, ((void *)0),
14016 0, 0);
14017 if (__builtin_expect (l != ((void *)0), 1))
14018 {
14019 static Elf64_Dyn dyn_temp[8] __attribute__ ((section (".data.rel.ro")));
14020
14021 l->l_phdr = ((const void *) _rtld_local_ro._dl_sysinfo_dso
14022 + _rtld_local_ro._dl_sysinfo_dso->e_phoff);
14023 l->l_phnum = _rtld_local_ro._dl_sysinfo_dso->e_phnum;
14024 for (uint_fast16_t i = 0; i < l->l_phnum; ++i)
14025 {
14026 const Elf64_Phdr *const ph = &l->l_phdr[i];
14027 if (ph->p_type == 2)
14028 {
14029 l->l_ld = (void *) ph->p_vaddr;
14030 l->l_ldnum = ph->p_memsz / sizeof (Elf64_Dyn);
14031 }
14032 else if (ph->p_type == 1)
14033 {
14034 if (! l->l_addr)
14035 l->l_addr = ph->p_vaddr;
14036 if (ph->p_vaddr + ph->p_memsz >= l->l_map_end)
14037 l->l_map_end = ph->p_vaddr + ph->p_memsz;
14038 if ((ph->p_flags & (1 << 0))
14039 && ph->p_vaddr + ph->p_memsz >= l->l_text_end)
14040 l->l_text_end = ph->p_vaddr + ph->p_memsz;
14041 }
14042 else
14043
14044 ((void) ((ph->p_type != 7) ? 0 : (__assert_fail ("ph->p_type != 7", "rtld.c", 1303, __PRETTY_FUNCTION__), 0)));
14045 }
14046 l->l_map_start = (Elf64_Addr) _rtld_local_ro._dl_sysinfo_dso;
14047 l->l_addr = l->l_map_start - l->l_addr;
14048 l->l_map_end += l->l_addr;
14049 l->l_text_end += l->l_addr;
14050 l->l_ld = (void *) ((Elf64_Addr) l->l_ld + l->l_addr);
14051 elf_get_dynamic_info (l, dyn_temp);
14052 _dl_setup_hash (l);
14053 l->l_relocated = 1;
14054
14055
14056
14057
14058
14059 l->l_local_scope[0]->r_nlist = 1;
14060 l->l_local_scope[0]->r_list = &l->l_real;
14061
14062
14063
14064
14065
14066 if (l->l_info[14] != ((void *)0))
14067 {
14068
14069
14070 const char *dsoname = ((char *) (l)->l_info[5]->d_un.d_ptr
14071 + l->l_info[14]->d_un.d_val);
14072 size_t len = strlen (dsoname);
14073 char *copy = malloc (len);
14074 if (copy == ((void *)0))
14075 do { _dl_dprintf (2, "out of memory\n"); exit_internal (127); } while (1);
14076 l->l_libname->name = memcpy (copy, dsoname, len);
14077 }
14078
14079
14080 ((void) ((l->l_next == ((void *)0)) ? 0 : (__assert_fail ("l->l_next == ((void *)0)", "rtld.c", 1339, __PRETTY_FUNCTION__), 0)));
14081 ((void) ((l->l_prev == main_map) ? 0 : (__assert_fail ("l->l_prev == main_map", "rtld.c", 1340, __PRETTY_FUNCTION__), 0)));
14082 _rtld_local._dl_rtld_map.l_next = l;
14083 l->l_prev = &_rtld_local._dl_rtld_map;
14084 first_preload = &l->l_next;
14085
14086
14087 _rtld_local_ro._dl_sysinfo_map = l;
14088
14089
14090
14091
14092 }
14093 }
14094
14095
14096
14097 do { int version = _dl_discover_osversion (); if (__builtin_expect (version >= 0, 1)) { if (__builtin_expect (_rtld_local_ro._dl_osversion == 0, 1) || _rtld_local_ro._dl_osversion > version) _rtld_local_ro._dl_osversion = version; if ((2 * 65536 + 6 * 256 + 9) > 0 && version < (2 * 65536 + 6 * 256 + 9)) dl_fatal ("FATAL: kernel too old\n"); } else if ((2 * 65536 + 6 * 256 + 9) > 0) dl_fatal ("FATAL: cannot determine kernel version\n"); } while (0);
14098
14099
14100
14101
14102 _dl_init_paths (library_path);
14103
14104
14105 struct r_debug *r = _dl_debug_initialize (_rtld_local._dl_rtld_map.l_addr,
14106 0);
14107 r->r_state = RT_CONSISTENT;
14108
14109
14110
14111
14112 if (! _rtld_local._dl_rtld_map.l_name)
14113
14114
14115 _rtld_local._dl_rtld_map.l_name = (char *) _rtld_local._dl_rtld_map.l_libname->name;
14116 _rtld_local._dl_rtld_map.l_type = lt_library;
14117 main_map->l_next = &_rtld_local._dl_rtld_map;
14118 _rtld_local._dl_rtld_map.l_prev = main_map;
14119 ++_rtld_local._dl_ns[0]._ns_nloaded;
14120 ++_rtld_local._dl_load_adds;
14121
14122
14123
14124
14125 if (_rtld_local_ro._dl_use_load_bias == (Elf64_Addr) -2)
14126 _rtld_local_ro._dl_use_load_bias = main_map->l_addr == 0 ? -1 : 0;
14127
14128
14129
14130 Elf64_Ehdr *rtld_ehdr = (Elf64_Ehdr *) _rtld_local._dl_rtld_map.l_map_start;
14131 Elf64_Phdr *rtld_phdr = (Elf64_Phdr *) (_rtld_local._dl_rtld_map.l_map_start
14132 + rtld_ehdr->e_phoff);
14133 _rtld_local._dl_rtld_map.l_phdr = rtld_phdr;
14134 _rtld_local._dl_rtld_map.l_phnum = rtld_ehdr->e_phnum;
14135
14136
14137
14138 size_t cnt = rtld_ehdr->e_phnum;
14139 while (cnt-- > 0)
14140 if (rtld_phdr[cnt].p_type == 0x6474e552)
14141 {
14142 _rtld_local._dl_rtld_map.l_relro_addr = rtld_phdr[cnt].p_vaddr;
14143 _rtld_local._dl_rtld_map.l_relro_size = rtld_phdr[cnt].p_memsz;
14144 break;
14145 }
14146
14147
14148
14149 if (_rtld_local._dl_rtld_map.l_tls_blocksize != 0)
14150
14151 _rtld_local._dl_rtld_map.l_tls_modid = _dl_next_tls_modid ();
14152
14153
14154
14155 if (__builtin_expect (audit_list != ((void *)0), 0))
14156 {
14157
14158 struct audit_ifaces *last_audit = ((void *)0);
14159 struct audit_list *al = audit_list->next;
14160 do
14161 {
14162
14163 int tls_idx = _rtld_local._dl_tls_max_dtv_idx;
14164# 1432 "rtld.c"
14165 tcbp = init_tls ();
14166
14167 struct dlmopen_args dlmargs;
14168 dlmargs.fname = al->name;
14169 dlmargs.map = ((void *)0);
14170
14171 const char *objname;
14172 const char *err_str = ((void *)0);
14173 _Bool malloced;
14174 (void) _dl_catch_error (&objname, &err_str, &malloced, dlmopen_doit,
14175 &dlmargs);
14176 if (__builtin_expect (err_str != ((void *)0), 0))
14177 {
14178 not_loaded:
14179 _dl_dprintf (2, "ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", al->name, err_str);
14180
14181
14182 if (malloced)
14183 free ((char *) err_str);
14184 }
14185 else
14186 {
14187 struct lookup_args largs;
14188 largs.name = "la_version";
14189 largs.map = dlmargs.map;
14190
14191
14192 (void) _dl_catch_error (&objname, &err_str, &malloced,
14193 lookup_doit, &largs);
14194
14195 unsigned int (*laversion) (unsigned int);
14196 unsigned int lav;
14197 if (err_str == ((void *)0)
14198 && (laversion = largs.result) != ((void *)0)
14199 && (lav = laversion (1)) > 0
14200 && lav <= 1)
14201 {
14202
14203
14204 union
14205 {
14206 struct audit_ifaces ifaces;
14207
14208 void (*fptr[8]) (void);
14209 } *newp = malloc (sizeof (*newp));
14210
14211
14212
14213 static const char audit_iface_names[] =
14214 "la_activity\0"
14215 "la_objsearch\0"
14216 "la_objopen\0"
14217 "la_preinit\0"
14218
14219
14220
14221 "la_symbind64\0"
14222
14223
14224
14225
14226 "la_" "s390_64_gnu_pltenter" "\0"
14227 "la_" "s390_64_gnu_pltexit" "\0"
14228 "la_objclose\0";
14229 unsigned int cnt = 0;
14230 const char *cp = audit_iface_names;
14231 do
14232 {
14233 largs.name = cp;
14234 (void) _dl_catch_error (&objname, &err_str, &malloced,
14235 lookup_doit, &largs);
14236
14237
14238 if (err_str == ((void *)0) && largs.result != ((void *)0))
14239 {
14240 newp->fptr[cnt] = largs.result;
14241
14242
14243
14244 _rtld_local._dl_rtld_map.l_audit[cnt].cookie
14245 = (intptr_t) &_rtld_local._dl_rtld_map;
14246 }
14247 else
14248 newp->fptr[cnt] = ((void *)0);
14249 ++cnt;
14250
14251 cp = (char *) rawmemchr (cp, '\0') + 1;
14252 }
14253 while (*cp != '\0');
14254 ((void) ((cnt == 8) ? 0 : (__assert_fail ("cnt == 8", "rtld.c", 1521, __PRETTY_FUNCTION__), 0)));
14255
14256
14257 newp->ifaces.next = ((void *)0);
14258 if (last_audit == ((void *)0))
14259 last_audit = _rtld_local_ro._dl_audit = &newp->ifaces;
14260 else
14261 last_audit = last_audit->next = &newp->ifaces;
14262 ++_rtld_local_ro._dl_naudit;
14263
14264
14265 dlmargs.map->l_auditing = 1;
14266 }
14267 else
14268 {
14269
14270
14271
14272
14273 Lmid_t ns = dlmargs.map->l_ns;
14274
14275 _dl_close (dlmargs.map);
14276
14277
14278 ((void) ((_rtld_local._dl_ns[ns]._ns_loaded == ((void *)0)) ? 0 : (__assert_fail ("_rtld_local._dl_ns[ns]._ns_loaded == ((void *)0)", "rtld.c", 1545, __PRETTY_FUNCTION__), 0)));
14279 ((void) ((_rtld_local._dl_ns[ns]._ns_nloaded == 0) ? 0 : (__assert_fail ("_rtld_local._dl_ns[ns]._ns_nloaded == 0", "rtld.c", 1546, __PRETTY_FUNCTION__), 0)));
14280
14281
14282 _rtld_local._dl_tls_max_dtv_idx = tls_idx;
14283
14284 goto not_loaded;
14285 }
14286 }
14287
14288 al = al->next;
14289 }
14290 while (al != audit_list->next);
14291
14292
14293
14294 if (__builtin_expect (_rtld_local_ro._dl_naudit > 0, 0))
14295 {
14296 struct link_map *ls[2] = { main_map, &_rtld_local._dl_rtld_map };
14297
14298 for (unsigned int outer = 0; outer < 2; ++outer)
14299 {
14300 struct audit_ifaces *afct = _rtld_local_ro._dl_audit;
14301 for (unsigned int cnt = 0; cnt < _rtld_local_ro._dl_naudit; ++cnt)
14302 {
14303 if (afct->objopen != ((void *)0))
14304 {
14305 ls[outer]->l_audit[cnt].bindflags
14306 = afct->objopen (ls[outer], 0,
14307 &ls[outer]->l_audit[cnt].cookie);
14308
14309 ls[outer]->l_audit_any_plt
14310 |= ls[outer]->l_audit[cnt].bindflags != 0;
14311 }
14312
14313 afct = afct->next;
14314 }
14315 }
14316 }
14317 }
14318
14319
14320
14321
14322
14323
14324
14325 if (main_map->l_info[21] != ((void *)0))
14326
14327
14328 main_map->l_info[21]->d_un.d_ptr = (Elf64_Addr) r;
14329
14330
14331
14332 if (_rtld_local._dl_rtld_map.l_info[21] != ((void *)0))
14333 _rtld_local._dl_rtld_map.l_info[21]->d_un.d_ptr = (Elf64_Addr) r;
14334
14335
14336
14337 r->r_state = RT_ADD;
14338 _dl_debug_state ();
14339
14340
14341
14342 if (__builtin_expect (_rtld_local_ro._dl_naudit > 0, 0))
14343 {
14344 struct audit_ifaces *afct = _rtld_local_ro._dl_audit;
14345 for (unsigned int cnt = 0; cnt < _rtld_local_ro._dl_naudit; ++cnt)
14346 {
14347 if (afct->activity != ((void *)0))
14348 afct->activity (&main_map->l_audit[cnt].cookie, LA_ACT_ADD);
14349
14350 afct = afct->next;
14351 }
14352 }
14353
14354
14355
14356
14357 ((void) ((*first_preload == ((void *)0)) ? 0 : (__assert_fail ("*first_preload == ((void *)0)", "rtld.c", 1624, __PRETTY_FUNCTION__), 0)));
14358 struct link_map **preloads = ((void *)0);
14359 unsigned int npreloads = 0;
14360
14361 if (__builtin_expect (preloadlist != ((void *)0), 0))
14362 {
14363
14364
14365
14366
14367
14368 char *list = (__extension__ ({ __const char *__old = (preloadlist); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); }));
14369 char *p;
14370
14371 ;
14372
14373
14374 while ((p = (strsep) (&list, " :")) != ((void *)0))
14375 if (p[0] != '\0'
14376 && (__builtin_expect (! __libc_enable_secure_internal, 1)
14377 || (__extension__ (__builtin_constant_p ('/') && !__builtin_constant_p (p) && ('/') == '\0' ? (char *) __rawmemchr (p, '/') : __builtin_strchr (p, '/'))) == ((void *)0)))
14378 npreloads += do_preload (p, main_map, "LD_PRELOAD");
14379
14380 ;
14381 ;
14382 ;
14383 }
14384
14385
14386
14387
14388
14389
14390
14391 static const char preload_file[] = "/etc/ld.so.preload";
14392 if (__builtin_expect (__access (preload_file, 4) == 0, 0))
14393 {
14394
14395 file = _dl_sysdep_read_whole_file (preload_file, &file_size,
14396 0x1 | 0x2);
14397 if (__builtin_expect (file != ((void *) -1), 0))
14398 {
14399
14400
14401
14402 char *problem;
14403 char *runp;
14404 size_t rest;
14405
14406
14407 runp = file;
14408 rest = file_size;
14409 while (rest > 0)
14410 {
14411 char *comment = memchr (runp, '#', rest);
14412 if (comment == ((void *)0))
14413 break;
14414
14415 rest -= comment - runp;
14416 do
14417 *comment = ' ';
14418 while (--rest > 0 && *++comment != '\n');
14419 }
14420
14421
14422
14423
14424 if (file[file_size - 1] != ' ' && file[file_size - 1] != '\t'
14425 && file[file_size - 1] != '\n' && file[file_size - 1] != ':')
14426 {
14427 problem = &file[file_size];
14428 while (problem > file && problem[-1] != ' '
14429 && problem[-1] != '\t'
14430 && problem[-1] != '\n' && problem[-1] != ':')
14431 --problem;
14432
14433 if (problem > file)
14434 problem[-1] = '\0';
14435 }
14436 else
14437 {
14438 problem = ((void *)0);
14439 file[file_size - 1] = '\0';
14440 }
14441
14442 ;
14443
14444 if (file != problem)
14445 {
14446 char *p;
14447 runp = file;
14448 while ((p = __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (": \t\n") && ((size_t)(const void *)((": \t\n") + 1) - (size_t)(const void *)(": \t\n") == 1) && (__r0 = ((__const char *) (": \t\n"))[0], ((__const char *) (": \t\n"))[0] != '\0') ? ((__r1 = ((__const char *) (": \t\n"))[1], ((__const char *) (": \t\n"))[1] == '\0') ? __strsep_1c (&runp, __r0) : ((__r2 = ((__const char *) (": \t\n"))[2], __r2 == '\0') ? __strsep_2c (&runp, __r0, __r1) : (((__const char *) (": \t\n"))[3] == '\0' ? __strsep_3c (&runp, __r0, __r1, __r2) : __strsep_g (&runp, ": \t\n")))) : __strsep_g (&runp, ": \t\n")); })) != ((void *)0))
14449 if (p[0] != '\0')
14450 npreloads += do_preload (p, main_map, preload_file);
14451 }
14452
14453 if (problem != ((void *)0))
14454 {
14455 char *p = (__extension__ ({ __const char *__old = (problem); size_t __len = __strnlen (__old, (file_size - (problem - file))); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); }));
14456
14457 npreloads += do_preload (p, main_map, preload_file);
14458 }
14459
14460 ;
14461 ;
14462 ;
14463
14464
14465 __munmap (file, file_size);
14466 }
14467 }
14468
14469 if (__builtin_expect (*first_preload != ((void *)0), 0))
14470 {
14471
14472 struct link_map *l = *first_preload;
14473 preloads = __builtin_alloca (npreloads * sizeof preloads[0]);
14474 i = 0;
14475 do
14476 {
14477 preloads[i++] = l;
14478 l = l->l_next;
14479 } while (l);
14480 ((void) ((i == npreloads) ? 0 : (__assert_fail ("i == npreloads", "rtld.c", 1747, __PRETTY_FUNCTION__), 0)));
14481 }
14482
14483
14484
14485
14486 ;
14487 _dl_map_object_deps (main_map, preloads, npreloads, mode == trace, 0);
14488 ;
14489 ;
14490 ;
14491
14492
14493 for (i = main_map->l_searchlist.r_nlist; i > 0; )
14494 main_map->l_searchlist.r_list[--i]->l_global = 1;
14495# 1770 "rtld.c"
14496 _rtld_local._dl_rtld_map.l_prev->l_next = _rtld_local._dl_rtld_map.l_next;
14497 if (_rtld_local._dl_rtld_map.l_next != ((void *)0))
14498 _rtld_local._dl_rtld_map.l_next->l_prev = _rtld_local._dl_rtld_map.l_prev;
14499
14500 for (i = 1; i < main_map->l_searchlist.r_nlist; ++i)
14501 if (main_map->l_searchlist.r_list[i] == &_rtld_local._dl_rtld_map)
14502 break;
14503
14504 _Bool rtld_multiple_ref = 0;
14505 if (__builtin_expect (i < main_map->l_searchlist.r_nlist, 1))
14506 {
14507
14508
14509
14510
14511 rtld_multiple_ref = 1;
14512
14513 _rtld_local._dl_rtld_map.l_prev = main_map->l_searchlist.r_list[i - 1];
14514 if (__builtin_expect (mode, normal) == normal)
14515 {
14516 _rtld_local._dl_rtld_map.l_next = (i + 1 < main_map->l_searchlist.r_nlist
14517 ? main_map->l_searchlist.r_list[i + 1]
14518 : ((void *)0));
14519
14520 if (_rtld_local_ro._dl_sysinfo_map != ((void *)0)
14521 && _rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local_ro._dl_sysinfo_map
14522 && _rtld_local._dl_rtld_map.l_next != _rtld_local_ro._dl_sysinfo_map)
14523 _rtld_local._dl_rtld_map.l_prev = _rtld_local_ro._dl_sysinfo_map;
14524
14525 }
14526 else
14527
14528
14529
14530
14531
14532 _rtld_local._dl_rtld_map.l_next = _rtld_local._dl_rtld_map.l_prev->l_next;
14533
14534 ((void) ((_rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local._dl_rtld_map.l_next) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local._dl_rtld_map.l_next", "rtld.c", 1808, __PRETTY_FUNCTION__), 0)));
14535 _rtld_local._dl_rtld_map.l_prev->l_next = &_rtld_local._dl_rtld_map;
14536 if (_rtld_local._dl_rtld_map.l_next != ((void *)0))
14537 {
14538 ((void) ((_rtld_local._dl_rtld_map.l_next->l_prev == _rtld_local._dl_rtld_map.l_prev) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_next->l_prev == _rtld_local._dl_rtld_map.l_prev", "rtld.c", 1812, __PRETTY_FUNCTION__), 0)));
14539 _rtld_local._dl_rtld_map.l_next->l_prev = &_rtld_local._dl_rtld_map;
14540 }
14541 }
14542
14543
14544
14545 {
14546 struct version_check_args args;
14547 args.doexit = mode == normal;
14548 args.dotrace = mode == trace;
14549 _dl_receive_error (print_missing_version, version_check_doit, &args);
14550 }
14551# 1834 "rtld.c"
14552 _Bool was_tls_init_tp_called = tls_init_tp_called;
14553 if (tcbp == ((void *)0))
14554 tcbp = init_tls ();
14555
14556
14557
14558 uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard ();
14559
14560 __guard_local = stack_chk_guard;
14561
14562
14563 ((struct pthread *) __builtin_thread_pointer ())->header.stack_guard = (stack_chk_guard);
14564
14565
14566
14567
14568
14569 if (_rtld_local_ro._dl_pointer_guard)
14570 {
14571
14572 uintptr_t pointer_chk_guard = stack_chk_guard;
14573
14574
14575
14576
14577
14578
14579 ;
14580
14581 __pointer_chk_guard_local = pointer_chk_guard;
14582 }
14583
14584 if (__builtin_expect (mode, normal) != normal)
14585 {
14586
14587
14588
14589
14590 struct link_map *l;
14591
14592 if (_rtld_local_ro._dl_debug_mask & (1 << 10))
14593 {
14594 struct r_scope_elem *scope = &main_map->l_searchlist;
14595
14596 for (i = 0; i < scope->r_nlist; i++)
14597 {
14598 l = scope->r_list [i];
14599 if (l->l_faked)
14600 {
14601 _dl_dprintf (1, "\t%s => not found\n", l->l_libname->name);
14602 continue;
14603 }
14604 if (_dl_name_match_p (_rtld_local_ro._dl_trace_prelink, l))
14605 _rtld_local_ro._dl_trace_prelink_map = l;
14606 _dl_dprintf (1, "\t%s => %s (0x%0*Zx, 0x%0*Zx)", l->l_libname->name[0] ? l->l_libname->name : (_dl_argv_internal[0]) ?: "<main program>", l->l_name[0] ? l->l_name : (_dl_argv_internal[0]) ?: "<main program>", (int) sizeof l->l_map_start * 2, (size_t) l->l_map_start, (int) sizeof l->l_addr * 2, (size_t) l->l_addr);
14607# 1898 "rtld.c"
14608 if (l->l_tls_modid)
14609 _dl_dprintf (1, " TLS(0x%Zx, 0x%0*Zx)\n", l->l_tls_modid, (int) sizeof l->l_tls_offset * 2, (size_t) l->l_tls_offset);
14610
14611
14612 else
14613
14614 _dl_dprintf (1, "\n");
14615 }
14616 }
14617 else if (_rtld_local_ro._dl_debug_mask & (1 << 8))
14618 {
14619
14620
14621
14622 struct link_map *l = main_map;
14623
14624
14625 struct relocate_args args = { .l = l, .lazy = _rtld_local_ro._dl_lazy };
14626 _dl_receive_error (print_unresolved, relocate_doit, &args);
14627
14628
14629
14630 Elf64_Dyn *dyn = main_map->l_ld;
14631 _Bool first = 1;
14632 while (dyn->d_tag != 0)
14633 {
14634 if (dyn->d_tag == 1)
14635 {
14636 l = l->l_next;
14637
14638 if (!l->l_used)
14639 {
14640 if (first)
14641 {
14642 _dl_dprintf (1, "Unused direct dependencies:\n");
14643 first = 0;
14644 }
14645
14646 _dl_dprintf (1, "\t%s\n", l->l_name);
14647 }
14648 }
14649
14650 ++dyn;
14651 }
14652
14653 exit_internal (first != 1);
14654 }
14655 else if (! main_map->l_info[1])
14656 _dl_dprintf (1, "\tstatically linked\n");
14657 else
14658 {
14659 for (l = main_map->l_next; l; l = l->l_next)
14660 if (l->l_faked)
14661
14662 _dl_dprintf (1, "\t%s => not found\n", l->l_libname->name);
14663 else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (l->l_libname->name) && __builtin_constant_p (l->l_name) && (__s1_len = strlen (l->l_libname->name), __s2_len = strlen (l->l_name), (!((size_t)(const void *)((l->l_libname->name) + 1) - (size_t)(const void *)(l->l_libname->name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((l->l_name) + 1) - (size_t)(const void *)(l->l_name) == 1) || __s2_len >= 4)) ? __builtin_strcmp (l->l_libname->name, l->l_name) : (__builtin_constant_p (l->l_libname->name) && ((size_t)(const void *)((l->l_libname->name) + 1) - (size_t)(const void *)(l->l_libname->name) == 1) && (__s1_len = strlen (l->l_libname->name), __s1_len < 4) ? (__builtin_constant_p (l->l_name) && ((size_t)(const void *)((l->l_name) + 1) - (size_t)(const void *)(l->l_name) == 1) ? __builtin_strcmp (l->l_libname->name, l->l_name) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (l->l_name); register int __result = (((__const unsigned char *) (__const char *) (l->l_libname->name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (l->l_libname->name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (l->l_libname->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (l->l_libname->name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (l->l_name) && ((size_t)(const void *)((l->l_name) + 1) - (size_t)(const void *)(l->l_name) == 1) && (__s2_len = strlen (l->l_name), __s2_len < 4) ? (__builtin_constant_p (l->l_libname->name) && ((size_t)(const void *)((l->l_libname->name) + 1) - (size_t)(const void *)(l->l_libname->name) == 1) ? __builtin_strcmp (l->l_libname->name, l->l_name) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (l->l_libname->name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (l->l_name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (l->l_name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (l->l_name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (l->l_name))[3]); } } __result; }))) : __builtin_strcmp (l->l_libname->name, l->l_name)))); }) == 0)
14664 _dl_dprintf (1, "\t%s (0x%0*Zx)\n", l->l_libname->name, (int) sizeof l->l_map_start * 2, (size_t) l->l_map_start);
14665
14666
14667 else
14668 _dl_dprintf (1, "\t%s => %s (0x%0*Zx)\n", l->l_libname->name, l->l_name, (int) sizeof l->l_map_start * 2, (size_t) l->l_map_start);
14669
14670
14671 }
14672
14673 if (__builtin_expect (mode, trace) != trace)
14674 for (i = 1; i < (unsigned int) _dl_argc; ++i)
14675 {
14676 const Elf64_Sym *ref = ((void *)0);
14677 Elf64_Addr loadbase;
14678 lookup_t result;
14679
14680 result = _dl_lookup_symbol_x (_dl_argv_internal[i], main_map,
14681 &ref, main_map->l_scope, ((void *)0),
14682 1,
14683 DL_LOOKUP_ADD_DEPENDENCY, ((void *)0));
14684
14685 loadbase = ((result) ? (result)->l_addr : 0);
14686
14687 _dl_dprintf (1, "%s found at 0x%0*Zd in object at 0x%0*Zd\n", _dl_argv_internal[i], (int) sizeof ref->st_value * 2, (size_t) ref->st_value, (int) sizeof loadbase * 2, (size_t) loadbase);
14688
14689
14690
14691
14692 }
14693 else
14694 {
14695
14696 if (_rtld_local_ro._dl_lazy >= 0 && _rtld_local_ro._dl_verbose)
14697 {
14698
14699 struct relocate_args args;
14700 struct link_map *l;
14701
14702 args.lazy = _rtld_local_ro._dl_lazy;
14703
14704 l = main_map;
14705 while (l->l_next != ((void *)0))
14706 l = l->l_next;
14707 do
14708 {
14709 if (l != &_rtld_local._dl_rtld_map && ! l->l_faked)
14710 {
14711 args.l = l;
14712 _dl_receive_error (print_unresolved, relocate_doit,
14713 &args);
14714 }
14715 l = l->l_prev;
14716 }
14717 while (l != ((void *)0));
14718
14719 if ((_rtld_local_ro._dl_debug_mask & (1 << 10))
14720 && rtld_multiple_ref)
14721 {
14722
14723 _rtld_local._dl_rtld_map.l_relocated = 0;
14724 _dl_relocate_object (&_rtld_local._dl_rtld_map, main_map->l_scope,
14725 0, 0);
14726 }
14727 }
14728
14729 if (version_info)
14730 {
14731
14732
14733 int first = 1;
14734 struct link_map *map;
14735
14736 for (map = main_map; map != ((void *)0); map = map->l_next)
14737 {
14738 const char *strtab;
14739 Elf64_Dyn *dyn = map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffe)))];
14740 Elf64_Verneed *ent;
14741
14742 if (dyn == ((void *)0))
14743 continue;
14744
14745 strtab = (const void *) (map)->l_info[5]->d_un.d_ptr;
14746 ent = (Elf64_Verneed *) (map->l_addr + dyn->d_un.d_ptr);
14747
14748 if (first)
14749 {
14750 _dl_dprintf (1, "\n\tVersion information:\n");
14751 first = 0;
14752 }
14753
14754 _dl_dprintf (1, "\t%s:\n", map->l_name[0] ? map->l_name : (_dl_argv_internal[0]));
14755
14756
14757 while (1)
14758 {
14759 Elf64_Vernaux *aux;
14760 struct link_map *needed;
14761
14762 needed = find_needed (strtab + ent->vn_file);
14763 aux = (Elf64_Vernaux *) ((char *) ent + ent->vn_aux);
14764
14765 while (1)
14766 {
14767 const char *fname = ((void *)0);
14768
14769 if (needed != ((void *)0)
14770 && match_version (strtab + aux->vna_name,
14771 needed))
14772 fname = needed->l_name;
14773
14774 _dl_dprintf (1, "\t\t%s (%s) %s=> %s\n", strtab + ent->vn_file, strtab + aux->vna_name, aux->vna_flags & 0x2 ? "[WEAK] " : "", fname ?: "not found");
14775
14776
14777
14778
14779
14780
14781 if (aux->vna_next == 0)
14782
14783 break;
14784
14785
14786 aux = (Elf64_Vernaux *) ((char *) aux
14787 + aux->vna_next);
14788 }
14789
14790 if (ent->vn_next == 0)
14791
14792 break;
14793
14794
14795 ent = (Elf64_Verneed *) ((char *) ent + ent->vn_next);
14796 }
14797 }
14798 }
14799 }
14800
14801 exit_internal (0);
14802 }
14803
14804 if (main_map->l_info[(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef9)))]
14805 && ! __builtin_expect (_rtld_local_ro._dl_profile != ((void *)0), 0))
14806 {
14807 Elf64_Lib *liblist, *liblistend;
14808 struct link_map **r_list, **r_listend, *l;
14809 const char *strtab = (const void *) (main_map)->l_info[5]->d_un.d_ptr;
14810
14811 ((void) ((main_map->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf7)))] != ((void *)0)) ? 0 : (__assert_fail ("main_map->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf7)))] != ((void *)0)", "rtld.c", 2101, __PRETTY_FUNCTION__), 0)));
14812 liblist = (Elf64_Lib *)
14813 main_map->l_info[(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef9)))]->d_un.d_ptr;
14814 liblistend = (Elf64_Lib *)
14815 ((char *) liblist +
14816 main_map->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf7)))]->d_un.d_val);
14817 r_list = main_map->l_searchlist.r_list;
14818 r_listend = r_list + main_map->l_searchlist.r_nlist;
14819
14820 for (; r_list < r_listend && liblist < liblistend; r_list++)
14821 {
14822 l = *r_list;
14823
14824 if (l == main_map)
14825 continue;
14826
14827
14828 if (l->l_addr)
14829 break;
14830
14831
14832 if (l->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf8)))] == ((void *)0)
14833 || l->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf8)))]->d_un.d_val
14834 != liblist->l_checksum)
14835 break;
14836
14837 if (l->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf5)))] == ((void *)0)
14838 || l->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf5)))]->d_un.d_val
14839 != liblist->l_time_stamp)
14840 break;
14841
14842 if (! _dl_name_match_p (strtab + liblist->l_name, l))
14843 break;
14844
14845 ++liblist;
14846 }
14847
14848
14849 if (r_list == r_listend && liblist == liblistend)
14850 prelinked = 1;
14851
14852 if (__builtin_expect (_rtld_local_ro._dl_debug_mask & (1 << 0), 0))
14853 _dl_debug_printf ("\nprelink checking: %s\n",
14854 prelinked ? "ok" : "failed");
14855 }
14856
14857
14858
14859 _rtld_local._dl_ns[0]._ns_main_searchlist = &main_map->l_searchlist;
14860 _rtld_local._dl_ns[0]._ns_global_scope[0] = &main_map->l_searchlist;
14861
14862
14863
14864 _rtld_local_ro._dl_initial_searchlist = *_rtld_local._dl_ns[0]._ns_main_searchlist;
14865
14866 if (prelinked)
14867 {
14868 if (main_map->l_info [(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef8)))] != ((void *)0))
14869 {
14870 Elf64_Rela *conflict, *conflictend;
14871
14872
14873
14874
14875
14876 ;
14877 ((void) ((main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))] != ((void *)0)) ? 0 : (__assert_fail ("main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))] != ((void *)0)", "rtld.c", 2167, __PRETTY_FUNCTION__), 0)));
14878 conflict = (Elf64_Rela *)
14879 main_map->l_info [(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef8)))]->d_un.d_ptr;
14880 conflictend = (Elf64_Rela *)
14881 ((char *) conflict
14882 + main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))]->d_un.d_val);
14883 _dl_resolve_conflicts (main_map, conflict, conflictend);
14884 ;
14885 ;
14886 }
14887
14888
14889
14890 for (struct link_map *l = main_map; l != ((void *)0); l = l->l_next)
14891 {
14892 l->l_relocated = 1;
14893 if (l->l_relro_size)
14894 _dl_protect_relro (l);
14895
14896
14897
14898 if (l->l_tls_blocksize != 0 && tls_init_tp_called)
14899 _dl_add_to_slotinfo (l);
14900
14901 }
14902
14903 _dl_sysdep_start_cleanup ();
14904 }
14905 else
14906 {
14907# 2206 "rtld.c"
14908 int consider_profiling = _rtld_local_ro._dl_profile != ((void *)0);
14909
14910
14911
14912
14913
14914
14915
14916 _rtld_local_ro._dl_lazy |= consider_profiling;
14917
14918 struct link_map *l = main_map;
14919 while (l->l_next)
14920 l = l->l_next;
14921
14922 ;
14923 do
14924 {
14925
14926
14927
14928 struct libname_list *lnp = l->l_libname->next;
14929
14930 while (__builtin_expect (lnp != ((void *)0), 0))
14931 {
14932 lnp->dont_free = 1;
14933 lnp = lnp->next;
14934 }
14935
14936 if (l != &_rtld_local._dl_rtld_map)
14937 _dl_relocate_object (l, l->l_scope, _rtld_local_ro._dl_lazy,
14938 consider_profiling);
14939
14940
14941
14942 if (l->l_tls_blocksize != 0 && tls_init_tp_called)
14943 _dl_add_to_slotinfo (l);
14944
14945
14946 l = l->l_prev;
14947 }
14948 while (l);
14949 ;
14950
14951 ;
14952
14953
14954
14955
14956
14957
14958 _dl_sysdep_start_cleanup ();
14959
14960
14961
14962
14963
14964 if (__builtin_expect (_rtld_local._dl_profile_map != ((void *)0), 0))
14965
14966 _dl_start_profile ();
14967
14968 if (rtld_multiple_ref)
14969 {
14970
14971
14972 ;
14973
14974 _rtld_local._dl_rtld_map.l_relocated = 0;
14975 _dl_relocate_object (&_rtld_local._dl_rtld_map, main_map->l_scope, 0, 0);
14976 ;
14977 ;
14978 ;
14979 }
14980 }
14981
14982
14983
14984
14985
14986
14987 if (!was_tls_init_tp_called && _rtld_local._dl_tls_max_dtv_idx > 0)
14988 ++_rtld_local._dl_tls_generation;
14989
14990
14991
14992
14993 _dl_allocate_tls_init (tcbp);
14994
14995
14996
14997 if (! tls_init_tp_called)
14998 {
14999 const char *lossage = ({ void *_thrdescr = (tcbp); tcbhead_t *_head = _thrdescr; _head->tcb = _thrdescr; _head->self = _thrdescr; ; __builtin_set_thread_pointer (_thrdescr); ((void *)0); });
15000 if (__builtin_expect (lossage != ((void *)0), 0))
15001 do { _dl_dprintf (2, "cannot set up thread-local storage: %s\n", lossage); exit_internal (127); } while (1);
15002
15003 }
15004
15005
15006
15007
15008
15009
15010 if (__builtin_expect (_rtld_local_ro._dl_naudit > 0, 0))
15011 {
15012 struct link_map *head = _rtld_local._dl_ns[0]._ns_loaded;
15013
15014 if (head->l_auditing == 0)
15015 {
15016 struct audit_ifaces *afct = _rtld_local_ro._dl_audit;
15017 for (unsigned int cnt = 0; cnt < _rtld_local_ro._dl_naudit; ++cnt)
15018 {
15019 if (afct->activity != ((void *)0))
15020 afct->activity (&head->l_audit[cnt].cookie, LA_ACT_CONSISTENT);
15021
15022 afct = afct->next;
15023 }
15024 }
15025 }
15026
15027
15028
15029
15030 r = _dl_debug_initialize (0, 0);
15031 r->r_state = RT_CONSISTENT;
15032 _dl_debug_state ();
15033
15034
15035
15036 _dl_unload_cache ();
15037
15038
15039
15040
15041}
15042
15043
15044
15045static void
15046print_unresolved (int errcode __attribute__ ((unused)), const char *objname,
15047 const char *errstring)
15048{
15049 if (objname[0] == '\0')
15050 objname = (_dl_argv_internal[0]) ?: "<main program>";
15051 _dl_dprintf (2, "%s (%s)\n", errstring, objname);
15052}
15053
15054
15055
15056static void
15057print_missing_version (int errcode __attribute__ ((unused)),
15058 const char *objname, const char *errstring)
15059{
15060 _dl_dprintf (2, "%s: %s: %s\n", (_dl_argv_internal[0]) ?: "<program name unknown>", objname, errstring);
15061
15062}
15063
15064
15065static int any_debug __attribute__ ((section (".data.rel.ro")));
15066
15067
15068
15069static void
15070process_dl_debug (const char *dl_debug)
15071{
15072
15073
15074 static const struct
15075 {
15076 unsigned char len;
15077 const char name[10];
15078 const char helptext[41];
15079 unsigned short int mask;
15080 } debopts[] =
15081 {
15082
15083 { sizeof ("libs") - 1, "libs", "display library search paths",
15084 (1 << 0) | (1 << 1) },
15085 { sizeof ("reloc") - 1, "reloc", "display relocation processing",
15086 (1 << 5) | (1 << 1) },
15087 { sizeof ("files") - 1, "files", "display progress for input file",
15088 (1 << 6) | (1 << 1) },
15089 { sizeof ("symbols") - 1, "symbols", "display symbol table processing",
15090 (1 << 3) | (1 << 1) },
15091 { sizeof ("bindings") - 1, "bindings", "display information about symbol binding",
15092 (1 << 2) | (1 << 1) },
15093 { sizeof ("versions") - 1, "versions", "display version dependencies",
15094 (1 << 4) | (1 << 1) },
15095 { sizeof ("all") - 1, "all", "all previous options combined",
15096 (1 << 0) | (1 << 5) | (1 << 6) | (1 << 3)
15097 | (1 << 2) | (1 << 4) | (1 << 1) },
15098 { sizeof ("statistics") - 1, "statistics", "display relocation statistics",
15099 (1 << 7) },
15100 { sizeof ("unused") - 1, "unused", "determined unused DSOs",
15101 (1 << 8) },
15102 { sizeof ("help") - 1, "help", "display this help message and exit",
15103 (1 << 9) },
15104 };
15105
15106
15107
15108 while (*dl_debug != '\0')
15109 {
15110 if (*dl_debug != ' ' && *dl_debug != ',' && *dl_debug != ':')
15111 {
15112 size_t cnt;
15113 size_t len = 1;
15114
15115 while (dl_debug[len] != '\0' && dl_debug[len] != ' '
15116 && dl_debug[len] != ',' && dl_debug[len] != ':')
15117 ++len;
15118
15119 for (cnt = 0; cnt < (sizeof (debopts) / sizeof (debopts[0])); ++cnt)
15120 if (debopts[cnt].len == len
15121 && memcmp (dl_debug, debopts[cnt].name, len) == 0)
15122 {
15123 _rtld_local_ro._dl_debug_mask |= debopts[cnt].mask;
15124 any_debug = 1;
15125 break;
15126 }
15127
15128 if (cnt == (sizeof (debopts) / sizeof (debopts[0])))
15129 {
15130
15131
15132 char *copy = (__extension__ ({ __const char *__old = (dl_debug); size_t __len = __strnlen (__old, (len)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); }));
15133 _dl_dprintf (2, "warning: debug option `%s' unknown; try LD_DEBUG=help\n", copy);
15134
15135 }
15136
15137 dl_debug += len;
15138 continue;
15139 }
15140
15141 ++dl_debug;
15142 }
15143
15144 if (_rtld_local_ro._dl_debug_mask & (1 << 9))
15145 {
15146 size_t cnt;
15147
15148 _dl_dprintf (1, "Valid options for the LD_DEBUG environment variable are:\n\n");
15149
15150
15151 for (cnt = 0; cnt < (sizeof (debopts) / sizeof (debopts[0])); ++cnt)
15152 _dl_dprintf (1, " %.*s%s%s\n", debopts[cnt].len, debopts[cnt].name, " " + debopts[cnt].len - 3, debopts[cnt].helptext);
15153
15154
15155
15156 _dl_dprintf (1, "\nTo direct the debugging output into a file instead of standard output\na filename can be specified using the LD_DEBUG_OUTPUT environment variable.\n");
15157
15158
15159 exit_internal (0);
15160 }
15161}
15162
15163static void
15164process_dl_audit (char *str)
15165{
15166
15167 char *p;
15168
15169 while ((p = (strsep) (&str, ":")) != ((void *)0))
15170 if (p[0] != '\0'
15171 && (__builtin_expect (! __libc_enable_secure_internal, 1)
15172 || (__extension__ (__builtin_constant_p ('/') && !__builtin_constant_p (p) && ('/') == '\0' ? (char *) __rawmemchr (p, '/') : __builtin_strchr (p, '/'))) == ((void *)0)))
15173 {
15174
15175
15176 struct audit_list *newp = malloc (sizeof (*newp));
15177 newp->name = p;
15178
15179 if (audit_list == ((void *)0))
15180 audit_list = newp->next = newp;
15181 else
15182 {
15183 newp->next = audit_list->next;
15184 audit_list = audit_list->next = newp;
15185 }
15186 }
15187}
15188
15189
15190
15191
15192extern char **_environ __attribute__ ((visibility ("hidden")));
15193
15194
15195static void
15196process_envvars (enum mode *modep)
15197{
15198 char **runp = _environ;
15199 char *envline;
15200 enum mode mode = normal;
15201 char *debug_output = ((void *)0);
15202
15203
15204 _rtld_local_ro._dl_profile_output
15205 = &"/var/tmp\0/var/profile"[__libc_enable_secure_internal ? 9 : 0];
15206
15207 while ((envline = _dl_next_ld_env_entry (&runp)) != ((void *)0))
15208 {
15209 size_t len = 0;
15210
15211 while (envline[len] != '\0' && envline[len] != '=')
15212 ++len;
15213
15214 if (envline[len] != '=')
15215
15216
15217
15218 continue;
15219
15220 switch (len)
15221 {
15222 case 4:
15223
15224 if (memcmp (envline, "WARN", 4) == 0)
15225 _rtld_local_ro._dl_verbose = envline[5] != '\0';
15226 break;
15227
15228 case 5:
15229
15230 if (memcmp (envline, "DEBUG", 5) == 0)
15231 {
15232 process_dl_debug (&envline[6]);
15233 break;
15234 }
15235 if (memcmp (envline, "AUDIT", 5) == 0)
15236 process_dl_audit (&envline[6]);
15237 break;
15238
15239 case 7:
15240
15241 if (memcmp (envline, "VERBOSE", 7) == 0)
15242 {
15243 version_info = envline[8] != '\0';
15244 break;
15245 }
15246
15247
15248 if (memcmp (envline, "PRELOAD", 7) == 0)
15249 {
15250 preloadlist = &envline[8];
15251 break;
15252 }
15253
15254
15255 if (memcmp (envline, "PROFILE", 7) == 0 && envline[8] != '\0')
15256 _rtld_local_ro._dl_profile = &envline[8];
15257 break;
15258
15259 case 8:
15260
15261 if (memcmp (envline, "BIND_NOW", 8) == 0)
15262 {
15263 _rtld_local_ro._dl_lazy = envline[9] == '\0';
15264 break;
15265 }
15266 if (memcmp (envline, "BIND_NOT", 8) == 0)
15267 _rtld_local_ro._dl_bind_not = envline[9] != '\0';
15268 break;
15269
15270 case 9:
15271
15272
15273 if (!__libc_enable_secure_internal
15274 && memcmp (envline, "SHOW_AUXV", 9) == 0)
15275 _dl_show_auxv ();
15276 break;
15277
15278 case 10:
15279
15280 if (memcmp (envline, "HWCAP_MASK", 10) == 0)
15281 _rtld_local_ro._dl_hwcap_mask = __strtoul_internal (&envline[11], ((void *)0),
15282 0, 0);
15283 break;
15284
15285 case 11:
15286
15287 if (!__libc_enable_secure_internal
15288 && memcmp (envline, "ORIGIN_PATH", 11) == 0)
15289 _rtld_local_ro._dl_origin_path = &envline[12];
15290 break;
15291
15292 case 12:
15293
15294 if (memcmp (envline, "LIBRARY_PATH", 12) == 0)
15295 {
15296 library_path = &envline[13];
15297 break;
15298 }
15299
15300
15301 if (memcmp (envline, "DEBUG_OUTPUT", 12) == 0)
15302 {
15303 debug_output = &envline[13];
15304 break;
15305 }
15306
15307 if (!__libc_enable_secure_internal
15308 && memcmp (envline, "DYNAMIC_WEAK", 12) == 0)
15309 _rtld_local_ro._dl_dynamic_weak = 1;
15310 break;
15311
15312 case 13:
15313
15314
15315
15316 if (memcmp (envline, "ASSUME_KERNEL", 13) == 0) { _dl_osversion_init (&envline[14]); break; }
15317
15318 if (!__libc_enable_secure_internal
15319 && memcmp (envline, "USE_LOAD_BIAS", 13) == 0)
15320 {
15321 _rtld_local_ro._dl_use_load_bias = envline[14] == '1' ? -1 : 0;
15322 break;
15323 }
15324
15325 if (memcmp (envline, "POINTER_GUARD", 13) == 0)
15326 _rtld_local_ro._dl_pointer_guard = envline[14] != '0';
15327 break;
15328
15329 case 14:
15330
15331 if (!__libc_enable_secure_internal
15332 && memcmp (envline, "PROFILE_OUTPUT", 14) == 0
15333 && envline[15] != '\0')
15334 _rtld_local_ro._dl_profile_output = &envline[15];
15335 break;
15336
15337 case 16:
15338
15339 if (memcmp (envline, "TRACE_PRELINKING", 16) == 0)
15340 {
15341 mode = trace;
15342 _rtld_local_ro._dl_verbose = 1;
15343 _rtld_local_ro._dl_debug_mask |= (1 << 10);
15344 _rtld_local_ro._dl_trace_prelink = &envline[17];
15345 }
15346 break;
15347
15348 case 20:
15349
15350 if (memcmp (envline, "TRACE_LOADED_OBJECTS", 20) == 0)
15351 mode = trace;
15352 break;
15353# 2659 "rtld.c"
15354 }
15355 }
15356
15357
15358 *modep = mode;
15359
15360
15361
15362 if (__builtin_expect (__libc_enable_secure_internal, 0))
15363 {
15364 static const char unsecure_envvars[] =
15365
15366
15367
15368 "GCONV_PATH\0" "GETCONF_DIR\0" "HOSTALIASES\0" "LD_AUDIT\0" "LD_DEBUG\0" "LD_DEBUG_OUTPUT\0" "LD_DYNAMIC_WEAK\0" "LD_LIBRARY_PATH\0" "LD_ORIGIN_PATH\0" "LD_PRELOAD\0" "LD_PROFILE\0" "LD_SHOW_AUXV\0" "LD_USE_LOAD_BIAS\0" "LOCALDOMAIN\0" "LOCPATH\0" "MALLOC_TRACE\0" "NLSPATH\0" "RESOLV_HOST_CONF\0" "RES_OPTIONS\0" "TMPDIR\0" "TZDIR\0";
15369 const char *nextp;
15370
15371 nextp = unsecure_envvars;
15372 do
15373 {
15374 unsetenv (nextp);
15375
15376 nextp = (char *) (strchr) (nextp, '\0') + 1;
15377 }
15378 while (*nextp != '\0');
15379
15380 if (__access ("/etc/suid-debug", 0) != 0)
15381 {
15382 unsetenv ("MALLOC_CHECK_");
15383 _rtld_local_ro._dl_debug_mask = 0;
15384 }
15385
15386 if (mode != normal)
15387 exit_internal (5);
15388 }
15389
15390
15391
15392 else if (any_debug && debug_output != ((void *)0))
15393 {
15394
15395 const int flags = 01 | 02000 | 0100 | 0400000;
15396
15397
15398
15399 size_t name_len = strlen (debug_output);
15400 char buf[name_len + 12];
15401 char *startp;
15402
15403 buf[name_len + 11] = '\0';
15404 startp = _itoa (__getpid (), &buf[name_len + 11], 10, 0);
15405 *--startp = '.';
15406 startp = memcpy (startp - name_len, debug_output, name_len);
15407
15408 _rtld_local_ro._dl_debug_fd = __open (startp, flags, (0400|0200|(0400 >> 3)|(0200 >> 3)|((0400 >> 3) >> 3)|((0200 >> 3) >> 3)));
15409 if (_rtld_local_ro._dl_debug_fd == -1)
15410
15411 _rtld_local_ro._dl_debug_fd = 1;
15412 }
15413}
15414
15415
15416
15417static void
15418__attribute ((noinline))
15419print_statistics (hp_timing_t *rtld_total_timep)
15420{
15421# 2760 "rtld.c"
15422 unsigned long int num_relative_relocations = 0;
15423 for (Lmid_t ns = 0; ns < 16; ++ns)
15424 {
15425 if (_rtld_local._dl_ns[ns]._ns_loaded == ((void *)0))
15426 continue;
15427
15428 struct r_scope_elem *scope = &_rtld_local._dl_ns[ns]._ns_loaded->l_searchlist;
15429
15430 for (unsigned int i = 0; i < scope->r_nlist; i++)
15431 {
15432 struct link_map *l = scope->r_list [i];
15433
15434 if (l->l_addr != 0 && l->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))])
15435 num_relative_relocations
15436 += l->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))]->d_un.d_val;
15437
15438
15439
15440
15441 if ((l->l_addr != 0 || !l->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf5)))])
15442 && l->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff9)))])
15443
15444
15445
15446
15447
15448 num_relative_relocations
15449 += l->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff9)))]->d_un.d_val;
15450 }
15451 }
15452
15453 _dl_debug_printf (" number of relocations: %lu\n"
15454 " number of relocations from cache: %lu\n"
15455 " number of relative relocations: %lu\n",
15456 _rtld_local._dl_num_relocations,
15457 _rtld_local._dl_num_cache_relocations,
15458 num_relative_relocations);
15459# 2823 "rtld.c"
15460}