diff options
Diffstat (limited to 'vendor/modernc.org/libc/musl_linux_arm.go')
-rw-r--r-- | vendor/modernc.org/libc/musl_linux_arm.go | 2750 |
1 files changed, 2662 insertions, 88 deletions
diff --git a/vendor/modernc.org/libc/musl_linux_arm.go b/vendor/modernc.org/libc/musl_linux_arm.go index dfd805a9b..e73f2ca39 100644 --- a/vendor/modernc.org/libc/musl_linux_arm.go +++ b/vendor/modernc.org/libc/musl_linux_arm.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm.go -pkgname libc -static-locals-prefix _s -Iarch/arm -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c', DO NOT EDIT. +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm.go -pkgname libc -static-locals-prefix _s -Iarch/arm -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. package libc @@ -351,6 +351,12 @@ const ( /* nameser.h:98:1: */ ns_r_badtime = 18 ) +const ( /* pthread_impl.h:58:1: */ + DT_EXITING = 0 + DT_JOINABLE = 1 + DT_DETACHED = 2 +) + type ptrdiff_t = int32 /* <builtin>:3:26 */ type size_t = uint32 /* <builtin>:9:23 */ @@ -361,6 +367,8 @@ func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ return (Bool32((_c == ' ') || ((uint32(_c) - uint32('\t')) < uint32(5)))) } +type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:336:9 */ + type locale_t = uintptr /* alltypes.h:336:32 */ func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */ @@ -675,6 +683,44 @@ func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */ return *(*uint64)(unsafe.Pointer(bp /* &__u */)) } +type __pthread = struct { + self uintptr + dtv uintptr + prev uintptr + next uintptr + sysinfo uintptr_t + canary uintptr_t + canary2 uintptr_t + tid int32 + errno_val int32 + detach_state int32 + cancel int32 + canceldisable uint8 + cancelasync uint8 + tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */ + _ [1]byte + map_base uintptr + map_size size_t + stack uintptr + stack_size size_t + guard_size size_t + result uintptr + cancelbuf uintptr + tsd uintptr + robust_list struct { + head uintptr + off int32 + pending uintptr + } + timer_id int32 + locale locale_t + killlock [1]int32 + dlerror_buf uintptr + stdio_locks uintptr + canary_at_end uintptr_t + dtv_copy uintptr +} /* alltypes.h:266:9 */ + func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */ var c int32 var x int32 @@ -1891,6 +1937,1509 @@ func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */ return Xscalbn(tls, x, n) } +// Upper 6 state bits are a negative integer offset to bound-check next byte +// equivalent to: ( (b-0x80) | (b+offset) ) & ~0x3f + +// Interval [a,b). Either a must be 80 or b must be c0, lower 3 bits clear. + +// Arbitrary encoding for representing code units instead of characters. + +// Get inline definition of MB_CUR_MAX. + +type lconv = struct { + decimal_point uintptr + thousands_sep uintptr + grouping uintptr + int_curr_symbol uintptr + currency_symbol uintptr + mon_decimal_point uintptr + mon_thousands_sep uintptr + mon_grouping uintptr + positive_sign uintptr + negative_sign uintptr + int_frac_digits int8 + frac_digits int8 + p_cs_precedes int8 + p_sep_by_space int8 + n_cs_precedes int8 + n_sep_by_space int8 + p_sign_posn int8 + n_sign_posn int8 + int_p_cs_precedes int8 + int_p_sep_by_space int8 + int_n_cs_precedes int8 + int_n_sep_by_space int8 + int_p_sign_posn int8 + int_n_sign_posn int8 + _ [2]byte +} /* locale.h:24:1 */ + +// Support signed or unsigned plain-char + +// Implementation choices... + +// Arbitrary numbers... + +// POSIX/SUS requirements follow. These numbers come directly +// from SUS and have nothing to do with the host system. + +type __locale_map = struct { + __map uintptr + map_size size_t + name [24]int8 + next uintptr +} /* alltypes.h:336:9 */ + +type tls_module = struct { + next uintptr + image uintptr + len size_t + size size_t + align size_t + offset size_t +} /* libc.h:14:1 */ + +type __libc = struct { + can_do_threads int8 + threaded int8 + secure int8 + need_locks int8 + threads_minus_1 int32 + auxv uintptr + tls_head uintptr + tls_size size_t + tls_align size_t + tls_cnt size_t + page_size size_t + global_locale struct{ cat [6]uintptr } +} /* libc.h:20:1 */ + +type time_t = int64 /* alltypes.h:78:16 */ + +type clockid_t = int32 /* alltypes.h:207:13 */ + +type timespec = struct { + tv_sec time_t + tv_nsec int32 + __12 uint32 /* int : 32 */ +} /* alltypes.h:222:1 */ + +type pthread_t = uintptr /* alltypes.h:266:26 */ + +type pthread_once_t = int32 /* alltypes.h:272:13 */ + +type pthread_key_t = uint32 /* alltypes.h:277:18 */ + +type pthread_spinlock_t = int32 /* alltypes.h:282:13 */ + +type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:287:37 */ + +type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:292:37 */ + +type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:297:37 */ + +type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:302:40 */ + +type __sigset_t = struct{ __bits [32]uint32 } /* alltypes.h:342:9 */ + +type sigset_t = __sigset_t /* alltypes.h:342:71 */ + +type pthread_attr_t = struct{ __u struct{ __i [9]int32 } } /* alltypes.h:365:147 */ + +type pthread_mutex_t = struct{ __u struct{ __i [6]int32 } } /* alltypes.h:370:157 */ + +type pthread_cond_t = struct{ __u struct{ __i [12]int32 } } /* alltypes.h:380:112 */ + +type pthread_rwlock_t = struct{ __u struct{ __i [8]int32 } } /* alltypes.h:390:139 */ + +type pthread_barrier_t = struct{ __u struct{ __i [5]int32 } } /* alltypes.h:395:137 */ + +type sched_param = struct { + sched_priority int32 + __reserved1 int32 + __reserved2 [4]int32 + __reserved3 int32 +} /* sched.h:19:1 */ + +type timer_t = uintptr /* alltypes.h:202:14 */ + +type clock_t = int32 /* alltypes.h:212:14 */ + +type tm = struct { + tm_sec int32 + tm_min int32 + tm_hour int32 + tm_mday int32 + tm_mon int32 + tm_year int32 + tm_wday int32 + tm_yday int32 + tm_isdst int32 + tm_gmtoff int32 + tm_zone uintptr +} /* time.h:38:1 */ + +type itimerspec = struct { + it_interval struct { + tv_sec time_t + tv_nsec int32 + __12 uint32 /* int : 32 */ + } + it_value struct { + tv_sec time_t + tv_nsec int32 + __12 uint32 /* int : 32 */ + } +} /* time.h:80:1 */ + +type sigevent = struct { + sigev_value struct{ sival_int int32 } + sigev_signo int32 + sigev_notify int32 + sigev_notify_function uintptr + sigev_notify_attributes uintptr + __pad [44]int8 +} /* time.h:107:1 */ + +type __ptcb = struct { + __f uintptr + __x uintptr + __next uintptr +} /* alltypes.h:266:9 */ + +type sigaltstack = struct { + ss_sp uintptr + ss_flags int32 + ss_size size_t +} /* signal.h:44:9 */ + +type stack_t = sigaltstack /* signal.h:44:28 */ + +type greg_t = int32 /* signal.h:10:13 */ +type gregset_t = [18]int32 /* signal.h:10:21 */ +type sigcontext = struct { + trap_no uint32 + error_code uint32 + oldmask uint32 + arm_r0 uint32 + arm_r1 uint32 + arm_r2 uint32 + arm_r3 uint32 + arm_r4 uint32 + arm_r5 uint32 + arm_r6 uint32 + arm_r7 uint32 + arm_r8 uint32 + arm_r9 uint32 + arm_r10 uint32 + arm_fp uint32 + arm_ip uint32 + arm_sp uint32 + arm_lr uint32 + arm_pc uint32 + arm_cpsr uint32 + fault_address uint32 +} /* signal.h:11:9 */ + +type mcontext_t = sigcontext /* signal.h:18:3 */ + +type __ucontext = struct { + uc_flags uint32 + uc_link uintptr + uc_stack stack_t + uc_mcontext mcontext_t + uc_sigmask sigset_t + uc_regspace [64]uint64 +} /* signal.h:31:9 */ + +type ucontext_t = __ucontext /* signal.h:38:3 */ + +type sigval = struct{ sival_int int32 } /* time.h:107:1 */ + +type siginfo_t = struct { + si_signo int32 + si_errno int32 + si_code int32 + __si_fields struct { + _ [0]uint32 + __pad [116]int8 + } +} /* signal.h:145:3 */ + +type sigaction = struct { + __sa_handler struct{ sa_handler uintptr } + sa_mask sigset_t + sa_flags int32 + sa_restorer uintptr +} /* signal.h:167:1 */ + +type sig_t = uintptr /* signal.h:251:14 */ + +type sig_atomic_t = int32 /* signal.h:269:13 */ + +func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:46:19: */ + panic(`arch/arm/atomic_arch.h:48:2: assembler statements not supported`) + return int32(0) + //TODO for (;;) { + //TODO register int r0 __asm__("r0") = t; + //TODO register int r1 __asm__("r1") = s; + //TODO register volatile int *r2 __asm__("r2") = p; + //TODO register uintptr_t r3 __asm__("r3") = __a_cas_ptr; + //TODO int old; + //TODO __asm__ __volatile__ ( + //TODO BLX " r3" + //TODO : "+r"(r0), "+r"(r3) : "r"(r1), "r"(r2) + //TODO : "memory", "lr", "ip", "cc" ); + //TODO if (!r0) return t; + //TODO if ((old=*p)!=t) return old; + //TODO } +} + +func a_barrier(tls *TLS) { /* atomic_arch.h:68:20: */ + panic(`arch/arm/atomic_arch.h:70:2: assembler statements not supported`) + //TODO register uintptr_t ip __asm__("ip") = __a_barrier_ptr; + //TODO __asm__ __volatile__( BLX " ip" : "+r"(ip) : : "memory", "cc", "lr" ); +} + +func a_clz_32(tls *TLS, x uint32_t) int32 { /* atomic_arch.h:91:19: */ + panic(`arch/arm/atomic_arch.h:93:2: assembler statements not supported`) + return int32(x) +} + +func a_swap(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:108:19: */ + var old int32 + for ok := true; ok; ok = (a_cas(tls, AtomicLoadUintptr(&p), old, v) != old) { + old = *(*int32)(unsafe.Pointer(AtomicLoadUintptr(&p))) + } + return old +} + +func a_fetch_add(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:119:19: */ + var old int32 + for ok := true; ok; ok = (a_cas(tls, AtomicLoadUintptr(&p), old, (int32(uint32(old)+uint32(v)))) != old) { + old = *(*int32)(unsafe.Pointer(AtomicLoadUintptr(&p))) + } + return old +} + +func a_fetch_and(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:130:19: */ + var old int32 + for ok := true; ok; ok = (a_cas(tls, AtomicLoadUintptr(&p), old, (old&v)) != old) { + old = *(*int32)(unsafe.Pointer(AtomicLoadUintptr(&p))) + } + return old +} + +func a_fetch_or(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:140:19: */ + var old int32 + for ok := true; ok; ok = (a_cas(tls, AtomicLoadUintptr(&p), old, (old|v)) != old) { + old = *(*int32)(unsafe.Pointer(AtomicLoadUintptr(&p))) + } + return old +} + +func a_and(tls *TLS, p uintptr, v int32) { /* atomic.h:151:20: */ + a_fetch_and(tls, AtomicLoadUintptr(&p), v) +} + +func a_or(tls *TLS, p uintptr, v int32) { /* atomic.h:159:20: */ + a_fetch_or(tls, AtomicLoadUintptr(&p), v) +} + +func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic.h:220:20: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + *(*struct{ v uint64_t })(unsafe.Pointer(bp /* u */)) = struct{ v uint64_t }{v: v} + if *(*uint32_t)(unsafe.Pointer((bp /* &u */ /* &.r */))) != 0 { + a_or(tls, AtomicLoadUintptr(&p), int32(*(*uint32_t)(unsafe.Pointer((bp /* &u */ /* &.r */))))) + } + if *(*uint32_t)(unsafe.Pointer((bp /* &u */ /* &.r */) + 1*4)) != 0 { + a_or(tls, (AtomicLoadUintptr(&p) + uintptr(1)*4), int32(*(*uint32_t)(unsafe.Pointer((bp /* &u */ /* &.r */) + 1*4)))) + } +} + +type a_cas_p_undefined_but_pointer_not_32bit = [1]int8 /* atomic.h:229:14 */ + +func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic.h:256:19: */ + return (31 - a_clz_32(tls, (x&-x))) +} + +func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic.h:272:19: */ + if uint32(unsafe.Sizeof(int32(0))) < uint32(8) { + var y uint32_t = uint32_t(x) + if !(y != 0) { + y = (uint32_t(x >> 32)) + return (32 + a_ctz_32(tls, y)) + } + return a_ctz_32(tls, y) + } + return int32(_sdebruijn648[(((x & -x) * 0x022fdd63cc95386d) >> 58)]) +} + +var _sdebruijn648 = [64]int8{ + int8(0), int8(1), int8(2), int8(53), int8(3), int8(7), int8(54), int8(27), int8(4), int8(38), int8(41), int8(8), int8(34), int8(55), int8(48), int8(28), + int8(62), int8(5), int8(39), int8(46), int8(44), int8(42), int8(22), int8(9), int8(24), int8(35), int8(59), int8(56), int8(49), int8(18), int8(29), int8(11), + int8(63), int8(52), int8(6), int8(26), int8(37), int8(40), int8(33), int8(47), int8(61), int8(45), int8(43), int8(21), int8(23), int8(58), int8(17), int8(10), + int8(51), int8(25), int8(36), int8(32), int8(60), int8(20), int8(57), int8(16), int8(50), int8(31), int8(19), int8(15), int8(30), int8(14), int8(13), int8(12), +} /* atomic.h:274:20 */ + +type __timer = struct { + timerid int32 + thread pthread_t +} /* pthread_impl.h:64:1 */ + +func __pthread_self(tls *TLS) pthread_t { /* pthread_arch.h:19:25: */ + var p uintptr_t + panic(`arch/arm/pthread_arch.h:23:2: assembler statements not supported`) + return (uintptr(p - uintptr_t(unsafe.Sizeof(__pthread{})))) +} + +func __wake(tls *TLS, addr uintptr, cnt int32, priv int32) { /* pthread_impl.h:155:20: */ + if priv != 0 { + priv = 128 + } + if cnt < 0 { + cnt = 0x7fffffff + } + _ = (Bool32((X__syscall3(tls, 240, int32(AtomicLoadUintptr(&addr)), (int32(1|priv)), int32(cnt)) != -38) || (X__syscall3(tls, 240, int32(AtomicLoadUintptr(&addr)), 1, int32(cnt)) != 0))) +} + +func __futexwait(tls *TLS, addr uintptr, val int32, priv int32) { /* pthread_impl.h:162:20: */ + if priv != 0 { + priv = 128 + } + _ = (Bool32((X__syscall4(tls, 240, int32(AtomicLoadUintptr(&addr)), (int32(0|priv)), int32(val), 0) != -38) || (X__syscall4(tls, 240, int32(AtomicLoadUintptr(&addr)), 0, int32(val), 0) != 0))) +} + +var X__fsmu8 = [51]uint32_t{ + func() uint32 { + if 0x2 < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0x2)) + }(), func() uint32 { + if 0x3 < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0x3)) + }(), func() uint32 { + if 0x4 < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0x4)) + }(), func() uint32 { + if 0x5 < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0x5)) + }(), func() uint32 { + if 0x6 < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0x6)) + }(), func() uint32 { + if 0x7 < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0x7)) + }(), + func() uint32 { + if 0x8 < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0x8)) + }(), func() uint32 { + if 0x9 < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0x9)) + }(), func() uint32 { + if 0xa < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0xa)) + }(), func() uint32 { + if 0xb < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0xb)) + }(), func() uint32 { + if 0xc < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0xc)) + }(), func() uint32 { + if 0xd < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0xd)) + }(), func() uint32 { + if 0xe < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0xe)) + }(), func() uint32 { + if 0xf < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | uint32_t(0xf)) + }(), + func() uint32 { + if (0x0 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x0 + 16))) + }(), func() uint32 { + if (0x1 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x1 + 16))) + }(), func() uint32 { + if (0x2 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x2 + 16))) + }(), func() uint32 { + if (0x3 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x3 + 16))) + }(), func() uint32 { + if (0x4 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x4 + 16))) + }(), func() uint32 { + if (0x5 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x5 + 16))) + }(), func() uint32 { + if (0x6 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x6 + 16))) + }(), func() uint32 { + if (0x7 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x7 + 16))) + }(), + func() uint32 { + if (0x8 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x8 + 16))) + }(), func() uint32 { + if (0x9 + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0x9 + 16))) + }(), func() uint32 { + if (0xa + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0xa + 16))) + }(), func() uint32 { + if (0xb + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0xb + 16))) + }(), func() uint32 { + if (0xc + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0xc + 16))) + }(), func() uint32 { + if (0xd + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0xd + 16))) + }(), func() uint32 { + if (0xe + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0xe + 16))) + }(), func() uint32 { + if (0xf + 16) < 2 { + return Uint32FromInt32(-1) + } + return (((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) | (uint32_t(0xf + 16))) + }(), + (((func() uint32 { + if 0x0 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x0 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x0)), (((func() uint32 { + if 0x1 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x1 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x1)), (((func() uint32 { + if 0x2 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x2 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x2)), (((func() uint32 { + if 0x3 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x3 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x3)), (((func() uint32 { + if 0x4 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x4 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x4)), (((func() uint32 { + if 0x5 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x5 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x5)), (((func() uint32 { + if 0x6 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x6 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x6)), (((func() uint32 { + if 0x7 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x7 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x7)), + (((func() uint32 { + if 0x8 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x8 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x8)), (((func() uint32 { + if 0x9 == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0x9 == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0x9)), (((func() uint32 { + if 0xa == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0xa == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0xa)), (((func() uint32 { + if 0xb == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0xb == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0xb)), (((func() uint32 { + if 0xc == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0xc == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0xc)), (((func() uint32 { + if 0xd == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0xd == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0xd)), (((func() uint32 { + if 0xe == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0xe == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0xe)), (((func() uint32 { + if 0xf == 0 { + return ((func() uint32 { + if Int32(0xa0) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0xa0))) + }()) << 23) + } + return func() uint32 { + if 0xf == 0xd { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | uint32_t(0xf)), + ((((func() uint32 { + if 0x0 >= 5 { + return uint32(0) + } + return func() uint32 { + if 0x0 == 0 { + return ((func() uint32 { + if Int32(0x90) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x90))) + }()) << 23) + } + return func() uint32 { + if 0x0 == 4 { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0x90))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 12)) | uint32_t(0x0)), ((((func() uint32 { + if 0x1 >= 5 { + return uint32(0) + } + return func() uint32 { + if 0x1 == 0 { + return ((func() uint32 { + if Int32(0x90) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x90))) + }()) << 23) + } + return func() uint32 { + if 0x1 == 4 { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0x90))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 12)) | uint32_t(0x1)), ((((func() uint32 { + if 0x2 >= 5 { + return uint32(0) + } + return func() uint32 { + if 0x2 == 0 { + return ((func() uint32 { + if Int32(0x90) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x90))) + }()) << 23) + } + return func() uint32 { + if 0x2 == 4 { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0x90))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 12)) | uint32_t(0x2)), ((((func() uint32 { + if 0x3 >= 5 { + return uint32(0) + } + return func() uint32 { + if 0x3 == 0 { + return ((func() uint32 { + if Int32(0x90) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x90))) + }()) << 23) + } + return func() uint32 { + if 0x3 == 4 { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0x90))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 12)) | uint32_t(0x3)), ((((func() uint32 { + if 0x4 >= 5 { + return uint32(0) + } + return func() uint32 { + if 0x4 == 0 { + return ((func() uint32 { + if Int32(0x90) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x90))) + }()) << 23) + } + return func() uint32 { + if 0x4 == 4 { + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0x90))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + } + return ((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23) + }() + }() + }()) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 6)) | (uint32_t(((func() uint32 { + if Int32(0x80) == Int32(0x80) { + return (Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))) + } + return (Uint32(Uint32(0) - Uint32FromInt32(0x80))) + }()) << 23)) >> 12)) | uint32_t(0x4)), +} /* internal.c:18:16 */ + +type wint_t = uint32 /* alltypes.h:191:18 */ + +type wctype_t = uint32 /* alltypes.h:196:23 */ + +type __mbstate_t = struct { + __opaque1 uint32 + __opaque2 uint32 +} /* alltypes.h:330:9 */ + +type mbstate_t = __mbstate_t /* alltypes.h:330:63 */ + +func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n size_t, st uintptr) size_t { /* mbrtowc.c:6:8: */ + bp := tls.Alloc(4) + defer tls.Free(4) + + var c uint32 + var s uintptr + var N uint32 + // var dummy wchar_t at bp, 4 + s = src + N = n + + if !(!(st != 0)) { + goto __1 + } + st = uintptr(unsafe.Pointer(&_sinternal_state)) +__1: + ; + c = *(*uint32)(unsafe.Pointer(st)) + + if !(!(s != 0)) { + goto __2 + } + if !(c != 0) { + goto __4 + } + goto ilseq +__4: + ; + return size_t(0) + goto __3 +__2: + if !(!(wc != 0)) { + goto __5 + } + wc = bp /* &dummy */ +__5: + ; +__3: + ; + + if !(!(n != 0)) { + goto __6 + } + return Uint32FromInt32(-2) +__6: + ; + if !(!(c != 0)) { + goto __7 + } + if !(int32(*(*uint8)(unsafe.Pointer(s))) < 0x80) { + goto __8 + } + return BoolUint32(!(!(int32(AssignPtrUint32(wc, wchar_t(*(*uint8)(unsafe.Pointer(s))))) != 0))) +__8: + ; + if !((func() int32 { + if !(!(int32(*(*uintptr)(unsafe.Pointer(((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale /* &.cat */)))) != 0)) { + return 4 + } + return 1 + }()) == 1) { + goto __9 + } + *(*wchar_t)(unsafe.Pointer(wc)) = (wchar_t(0xdfff & int32((int8(*(*uint8)(unsafe.Pointer(s))))))) + return 1 +__9: + ; + if !((uint32(*(*uint8)(unsafe.Pointer(s))) - 0xc2) > (0xf4 - 0xc2)) { + goto __10 + } + goto ilseq +__10: + ; + c = X__fsmu8[(uint32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1)))) - 0xc2)] + n-- +__7: + ; + + if !(n != 0) { + goto __11 + } + if !((((((int32(*(*uint8)(unsafe.Pointer(s)))) >> 3) - 0x10) | (((int32(*(*uint8)(unsafe.Pointer(s)))) >> 3) + ((int32_t(c)) >> 26))) & CplInt32(7)) != 0) { + goto __12 + } + goto ilseq +__12: + ; +loop: + c = ((c << 6) | (uint32(int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1)))) - 0x80))) + n-- + if !(!((c & (uint32(1) << 31)) != 0)) { + goto __13 + } + *(*uint32)(unsafe.Pointer(st)) = uint32(0) + *(*wchar_t)(unsafe.Pointer(wc)) = c + return (N - n) +__13: + ; + if !(n != 0) { + goto __14 + } + if !((uint32(*(*uint8)(unsafe.Pointer(s))) - 0x80) >= uint32(0x40)) { + goto __15 + } + goto ilseq +__15: + ; + goto loop +__14: + ; +__11: + ; + + *(*uint32)(unsafe.Pointer(st)) = c + return Uint32FromInt32(-2) +ilseq: + *(*uint32)(unsafe.Pointer(st)) = uint32(0) + (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 84 + return Uint32FromInt32(-1) +} + +var _sinternal_state uint32 /* mbrtowc.c:8:18: */ + +func Xmbsinit(tls *TLS, st uintptr) int32 { /* mbsinit.c:3:5: */ + return (Bool32(!(st != 0) || !(int32(*(*uint32)(unsafe.Pointer(st))) != 0))) +} + type imaxdiv_t = struct { quot intmax_t rem intmax_t @@ -2200,90 +3749,6 @@ __3: //TODO else UNLOCK(b->lock); } -type time_t = int64 /* alltypes.h:78:16 */ - -type clockid_t = int32 /* alltypes.h:207:13 */ - -type timespec = struct { - tv_sec time_t - tv_nsec int32 - __12 uint32 /* int : 32 */ -} /* alltypes.h:222:1 */ - -type pthread_t = uintptr /* alltypes.h:266:26 */ - -type pthread_once_t = int32 /* alltypes.h:272:13 */ - -type pthread_key_t = uint32 /* alltypes.h:277:18 */ - -type pthread_spinlock_t = int32 /* alltypes.h:282:13 */ - -type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:287:37 */ - -type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:292:37 */ - -type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:297:37 */ - -type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:302:40 */ - -type __sigset_t = struct{ __bits [32]uint32 } /* alltypes.h:342:9 */ - -type sigset_t = __sigset_t /* alltypes.h:342:71 */ - -type pthread_attr_t = struct{ __u struct{ __i [9]int32 } } /* alltypes.h:365:147 */ - -type pthread_mutex_t = struct{ __u struct{ __i [6]int32 } } /* alltypes.h:370:157 */ - -type pthread_cond_t = struct{ __u struct{ __i [12]int32 } } /* alltypes.h:380:112 */ - -type pthread_rwlock_t = struct{ __u struct{ __i [8]int32 } } /* alltypes.h:390:139 */ - -type pthread_barrier_t = struct{ __u struct{ __i [5]int32 } } /* alltypes.h:395:137 */ - -type sched_param = struct { - sched_priority int32 - __reserved1 int32 - __reserved2 [4]int32 - __reserved3 int32 -} /* sched.h:19:1 */ - -type timer_t = uintptr /* alltypes.h:202:14 */ - -type clock_t = int32 /* alltypes.h:212:14 */ - -type tm = struct { - tm_sec int32 - tm_min int32 - tm_hour int32 - tm_mday int32 - tm_mon int32 - tm_year int32 - tm_wday int32 - tm_yday int32 - tm_isdst int32 - tm_gmtoff int32 - tm_zone uintptr -} /* time.h:38:1 */ - -type itimerspec = struct { - it_interval struct { - tv_sec time_t - tv_nsec int32 - __12 uint32 /* int : 32 */ - } - it_value struct { - tv_sec time_t - tv_nsec int32 - __12 uint32 /* int : 32 */ - } -} /* time.h:80:1 */ - -type __ptcb = struct { - __f uintptr - __x uintptr - __next uintptr -} /* pthread.h:206:1 */ - func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */ bp := tls.Alloc(1608) defer tls.Free(1608) @@ -2715,6 +4180,10 @@ func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, return 0 } +func Xgethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname_r.c:6:5: */ + return Xgethostbyname2_r(tls, name, 2, h, buf, buflen, res, err) +} + type if_nameindex = struct { if_index uint32 if_name uintptr @@ -2857,6 +4326,7 @@ type __res_state = struct { defdname [256]int8 pfcode uint32 ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */ + _ [4]byte sort_list [10]struct { addr struct{ s_addr in_addr_t } mask uint32_t @@ -3135,15 +4605,15 @@ func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5 switch i { case 0: *(*uint32)(unsafe.Pointer(bp /* &a[0] */ + 1*4)) = (*(*uint32)(unsafe.Pointer(bp /* &a[0] */)) & uint32(0xffffff)) - AssignShrPtrUint32(bp /* &a */, int(uint32(24))) + AssignShrPtrUint32(bp /* &a */, int(24)) fallthrough case 1: *(*uint32)(unsafe.Pointer(bp /* &a[0] */ + 2*4)) = (*(*uint32)(unsafe.Pointer(bp /* &a[0] */ + 1*4)) & uint32(0xffff)) - AssignShrPtrUint32(bp /* &a */ +1*4, int(uint32(16))) + AssignShrPtrUint32(bp /* &a */ +1*4, int(16)) fallthrough case 2: *(*uint32)(unsafe.Pointer(bp /* &a[0] */ + 3*4)) = (*(*uint32)(unsafe.Pointer(bp /* &a[0] */ + 2*4)) & uint32(0xff)) - AssignShrPtrUint32(bp /* &a */ +2*4, int(uint32(8))) + AssignShrPtrUint32(bp /* &a */ +2*4, int(8)) } for i = 0; i < 4; i++ { if *(*uint32)(unsafe.Pointer(bp /* &a[0] */ + uintptr(i)*4)) > uint32(255) { @@ -3937,6 +5407,30 @@ func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */ return (int32(temper(tls, AssignPtrUint32(seed, ((*(*uint32)(unsafe.Pointer(seed))*uint32(1103515245))+uint32(12345)))) / uint32(2))) } +func X__lockfile(tls *TLS, f uintptr) int32 { /* __lockfile.c:4:5: */ + var owner int32 = (*FILE)(unsafe.Pointer(f)).lock + var tid int32 = (*__pthread)(unsafe.Pointer(__pthread_self(tls))).tid + if (owner & CplInt32(0x40000000)) == tid { + return 0 + } + owner = a_cas(tls, (f + 76 /* &.lock */), 0, tid) + if !(owner != 0) { + return 1 + } + for AssignInt32(&owner, a_cas(tls, (f+76 /* &.lock */), 0, (tid|0x40000000))) != 0 { + if ((owner & 0x40000000) != 0) || (a_cas(tls, (f+76 /* &.lock */), owner, (owner|0x40000000)) == owner) { + __futexwait(tls, (f + 76 /* &.lock */), (owner | 0x40000000), 1) + } + } + return 1 +} + +func X__unlockfile(tls *TLS, f uintptr) { /* __lockfile.c:19:6: */ + if (a_swap(tls, (f+76 /* &.lock */), 0) & 0x40000000) != 0 { + __wake(tls, (f + 76 /* &.lock */), 1, 1) + } +} + func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */ *(*int32)(unsafe.Pointer(f + 72 /* &.mode */)) |= ((*FILE)(unsafe.Pointer(f)).mode - 1) if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase { @@ -3974,6 +5468,940 @@ func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */ return -1 } +func Xsscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) int32 { /* sscanf.c:4:5: */ + var ret int32 + var ap va_list + _ = ap + ap = va + ret = Xvsscanf(tls, s, fmt, ap) + _ = ap + return ret +} + +type wctrans_t = uintptr /* wctype.h:20:19 */ + +func store_int(tls *TLS, dest uintptr, size int32, i uint64) { /* vfscanf.c:22:13: */ + if !(dest != 0) { + return + } + switch size { + case -2: + *(*int8)(unsafe.Pointer(dest)) = int8(i) + break + case -1: + *(*int16)(unsafe.Pointer(dest)) = int16(i) + break + case 0: + *(*int32)(unsafe.Pointer(dest)) = int32(i) + break + case 1: + *(*int32)(unsafe.Pointer(dest)) = int32(i) + break + case 3: + *(*int64)(unsafe.Pointer(dest)) = int64(i) + break + } +} + +func arg_n(tls *TLS, ap va_list, n uint32) uintptr { /* vfscanf.c:44:13: */ + var p uintptr + var i uint32 + var ap2 va_list + _ = ap2 + ap2 = ap + for i = n; i > uint32(1); i-- { + VaUintptr(&ap2) + } + p = VaUintptr(&ap2) + _ = ap2 + return p +} + +func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap va_list) int32 { /* vfscanf.c:56:5: */ + bp := tls.Alloc(276) + defer tls.Free(276) + + var width int32 + var size int32 + var alloc int32 + var base int32 + var p uintptr + var c int32 + var t int32 + var s uintptr + var wcs uintptr + // var st mbstate_t at bp+268, 8 + + var dest uintptr + var invert int32 + var matches int32 + var x uint64 + var y float64 + var pos off_t + // var scanset [257]uint8 at bp, 257 + + var i size_t + var k size_t + // var wc wchar_t at bp+260, 4 + + var __need_unlock int32 + var tmp uintptr + var tmp1 uintptr + alloc = 0 + dest = uintptr(0) + matches = 0 + pos = int64(0) + __need_unlock = func() int32 { + if (*FILE)(unsafe.Pointer((f))).lock >= 0 { + return X__lockfile(tls, f) + } + return 0 + }() + + if !(!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0)) { + goto __1 + } + X__toread(tls, f) +__1: + ; + if !(!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0)) { + goto __2 + } + goto input_fail +__2: + ; + + p = fmt +__3: + if !(*(*uint8)(unsafe.Pointer(p)) != 0) { + goto __5 + } + + alloc = 0 + + if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0) { + goto __6 + } +__7: + if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + 1)))) != 0) { + goto __8 + } + p++ + goto __7 +__8: + ; + X__shlim(tls, f, int64(0)) +__9: + if !(__isspace(tls, func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }()) != 0) { + goto __10 + } + goto __9 +__10: + ; + if (*FILE)(unsafe.Pointer((f))).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + pos = pos + ((*FILE)(unsafe.Pointer((f))).shcnt + (off_t((int32((*FILE)(unsafe.Pointer((f))).rpos) - int32((*FILE)(unsafe.Pointer((f))).buf)) / 1))) + goto __4 +__6: + ; + if !((int32(*(*uint8)(unsafe.Pointer(p))) != '%') || (int32(*(*uint8)(unsafe.Pointer(p + 1))) == '%')) { + goto __11 + } + X__shlim(tls, f, int64(0)) + if !(int32(*(*uint8)(unsafe.Pointer(p))) == '%') { + goto __12 + } + p++ +__14: + if !(__isspace(tls, AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) != 0) { + goto __15 + } + goto __14 +__15: + ; + goto __13 +__12: + c = func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() +__13: + ; + if !(c != int32(*(*uint8)(unsafe.Pointer(p)))) { + goto __16 + } + if (*FILE)(unsafe.Pointer((f))).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if !(c < 0) { + goto __17 + } + goto input_fail +__17: + ; + goto match_fail +__16: + ; + pos = pos + ((*FILE)(unsafe.Pointer((f))).shcnt + (off_t((int32((*FILE)(unsafe.Pointer((f))).rpos) - int32((*FILE)(unsafe.Pointer((f))).buf)) / 1))) + goto __4 +__11: + ; + + p++ + if !(int32(*(*uint8)(unsafe.Pointer(p))) == '*') { + goto __18 + } + dest = uintptr(0) + p++ + goto __19 +__18: + if !((func() int32 { + if 0 != 0 { + return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p)))) + } + return (Bool32(((uint32(*(*uint8)(unsafe.Pointer(p)))) - uint32('0')) < uint32(10))) + }() != 0) && (int32(*(*uint8)(unsafe.Pointer(p + 1))) == '$')) { + goto __20 + } + dest = arg_n(tls, ap, (uint32(int32(*(*uint8)(unsafe.Pointer(p))) - '0'))) + p += uintptr(2) + goto __21 +__20: + dest = VaUintptr(&ap) +__21: + ; +__19: + ; + + width = 0 +__22: + if !(func() int32 { + if 0 != 0 { + return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p)))) + } + return (Bool32(((uint32(*(*uint8)(unsafe.Pointer(p)))) - uint32('0')) < uint32(10))) + }() != 0) { + goto __24 + } + width = (((10 * width) + int32(*(*uint8)(unsafe.Pointer(p)))) - '0') + goto __23 +__23: + p++ + goto __22 + goto __24 +__24: + ; + + if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'm') { + goto __25 + } + wcs = uintptr(0) + s = uintptr(0) + alloc = BoolInt32(!(!(dest != 0))) + p++ + goto __26 +__25: + alloc = 0 +__26: + ; + + size = 0 + switch int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1)))) { + case 'h': + goto __28 + case 'l': + goto __29 + case 'j': + goto __30 + case 'z': + goto __31 + case 't': + goto __32 + case 'L': + goto __33 + case 'd': + goto __34 + case 'i': + goto __35 + case 'o': + goto __36 + case 'u': + goto __37 + case 'x': + goto __38 + case 'a': + goto __39 + case 'e': + goto __40 + case 'f': + goto __41 + case 'g': + goto __42 + case 'A': + goto __43 + case 'E': + goto __44 + case 'F': + goto __45 + case 'G': + goto __46 + case 'X': + goto __47 + case 's': + goto __48 + case 'c': + goto __49 + case '[': + goto __50 + case 'S': + goto __51 + case 'C': + goto __52 + case 'p': + goto __53 + case 'n': + goto __54 + default: + goto __55 + } + goto __27 +__28: + if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'h') { + goto __56 + } + p++ + size = -2 + goto __57 +__56: + size = -1 +__57: + ; + goto __27 +__29: + if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'l') { + goto __58 + } + p++ + size = 3 + goto __59 +__58: + size = 1 +__59: + ; + goto __27 +__30: + size = 3 + goto __27 +__31: +__32: + size = 1 + goto __27 +__33: + size = 2 + goto __27 +__34: +__35: +__36: +__37: +__38: +__39: +__40: +__41: +__42: +__43: +__44: +__45: +__46: +__47: +__48: +__49: +__50: +__51: +__52: +__53: +__54: + p-- + goto __27 +__55: + goto fmt_fail +__27: + ; + + t = int32(*(*uint8)(unsafe.Pointer(p))) + + // C or S + if !((t & 0x2f) == 3) { + goto __60 + } + t = t | (32) + size = 1 +__60: + ; + + switch t { + case 'c': + goto __62 + case '[': + goto __63 + case 'n': + goto __64 + default: + goto __65 + } + goto __61 +__62: + if !(width < 1) { + goto __66 + } + width = 1 +__66: + ; +__63: + goto __61 +__64: + store_int(tls, dest, size, uint64(pos)) + // do not increment match count, etc! + goto __4 +__65: + X__shlim(tls, f, int64(0)) +__67: + if !(__isspace(tls, func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }()) != 0) { + goto __68 + } + goto __67 +__68: + ; + if (*FILE)(unsafe.Pointer((f))).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + pos = pos + ((*FILE)(unsafe.Pointer((f))).shcnt + (off_t((int32((*FILE)(unsafe.Pointer((f))).rpos) - int32((*FILE)(unsafe.Pointer((f))).buf)) / 1))) +__61: + ; + + X__shlim(tls, f, int64(width)) + if !((func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }()) < 0) { + goto __69 + } + goto input_fail +__69: + ; + if (*FILE)(unsafe.Pointer((f))).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + + switch t { + case 's': + goto __71 + case 'c': + goto __72 + case '[': + goto __73 + case 'p': + goto __74 + case 'X': + goto __75 + case 'x': + goto __76 + case 'o': + goto __77 + case 'd': + goto __78 + case 'u': + goto __79 + case 'i': + goto __80 + case 'a': + goto __81 + case 'A': + goto __82 + case 'e': + goto __83 + case 'E': + goto __84 + case 'f': + goto __85 + case 'F': + goto __86 + case 'g': + goto __87 + case 'G': + goto __88 + } + goto __70 +__71: +__72: +__73: + if !((t == 'c') || (t == 's')) { + goto __89 + } + Xmemset(tls, bp /* &scanset[0] */, -1, uint32(unsafe.Sizeof([257]uint8{}))) + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */)) = uint8(0) + if !(t == 's') { + goto __91 + } + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + 10)) = uint8(0) + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + 11)) = uint8(0) + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + 12)) = uint8(0) + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + 13)) = uint8(0) + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + 14)) = uint8(0) + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + 33)) = uint8(0) +__91: + ; + goto __90 +__89: + if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))) == '^') { + goto __92 + } + p++ + invert = 1 + goto __93 +__92: + invert = 0 +__93: + ; + Xmemset(tls, bp /* &scanset[0] */, invert, uint32(unsafe.Sizeof([257]uint8{}))) + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */)) = uint8(0) + if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-') { + goto __94 + } + p++ + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + 46)) = (uint8(1 - invert)) + goto __95 +__94: + if !(int32(*(*uint8)(unsafe.Pointer(p))) == ']') { + goto __96 + } + p++ + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + 94)) = (uint8(1 - invert)) +__96: + ; +__95: + ; +__97: + if !(int32(*(*uint8)(unsafe.Pointer(p))) != ']') { + goto __99 + } + if !(!(int32(*(*uint8)(unsafe.Pointer(p))) != 0)) { + goto __100 + } + goto fmt_fail +__100: + ; + if !(((int32(*(*uint8)(unsafe.Pointer(p))) == '-') && (*(*uint8)(unsafe.Pointer(p + 1)) != 0)) && (int32(*(*uint8)(unsafe.Pointer(p + 1))) != ']')) { + goto __101 + } + c = int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1) + UintptrFromInt32(-1)))) +__102: + if !(c < int32(*(*uint8)(unsafe.Pointer(p)))) { + goto __104 + } + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + uintptr((1 + c)))) = (uint8(1 - invert)) + goto __103 +__103: + c++ + goto __102 + goto __104 +__104: + ; +__101: + ; + *(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + uintptr((1 + int32(*(*uint8)(unsafe.Pointer(p))))))) = (uint8(1 - invert)) + goto __98 +__98: + p++ + goto __97 + goto __99 +__99: + ; +__90: + ; + wcs = uintptr(0) + s = uintptr(0) + i = size_t(0) + if t == 'c' { + k = (uint32(width) + 1) + } else { + k = uint32(31) + } + if !(size == 1) { + goto __105 + } + if !(alloc != 0) { + goto __107 + } + wcs = Xmalloc(tls, (k * size_t(unsafe.Sizeof(wchar_t(0))))) + if !(!(wcs != 0)) { + goto __109 + } + goto alloc_fail +__109: + ; + goto __108 +__107: + wcs = dest +__108: + ; + *(*mbstate_t)(unsafe.Pointer(bp + 268 /* st */)) = mbstate_t{} +__110: + if !(*(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + uintptr(((AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) + 1)))) != 0) { + goto __111 + } + switch Xmbrtowc(tls, bp+260 /* &wc */, func() uintptr { *(*int8)(unsafe.Pointer(bp + 264)) = int8(c); return bp + 264 }(), uint32(1), bp+268 /* &st */) { + case Uint32FromInt32(-1): + goto __113 + case Uint32FromInt32(-2): + goto __114 + } + goto __112 +__113: + goto input_fail +__114: + goto __110 +__112: + ; + if !(wcs != 0) { + goto __115 + } + *(*wchar_t)(unsafe.Pointer(wcs + uintptr(PostIncUint32(&i, 1))*4)) = *(*wchar_t)(unsafe.Pointer(bp + 260 /* wc */)) +__115: + ; + if !((alloc != 0) && (i == k)) { + goto __116 + } + k = k + (k + size_t(1)) + tmp = Xrealloc(tls, wcs, (k * size_t(unsafe.Sizeof(wchar_t(0))))) + if !(!(tmp != 0)) { + goto __117 + } + goto alloc_fail +__117: + ; + wcs = tmp +__116: + ; + goto __110 +__111: + ; + if !(!(Xmbsinit(tls, bp+268 /* &st */) != 0)) { + goto __118 + } + goto input_fail +__118: + ; + goto __106 +__105: + if !(alloc != 0) { + goto __119 + } + s = Xmalloc(tls, k) + if !(!(s != 0)) { + goto __121 + } + goto alloc_fail +__121: + ; +__122: + if !(*(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + uintptr(((AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) + 1)))) != 0) { + goto __123 + } + *(*int8)(unsafe.Pointer(s + uintptr(PostIncUint32(&i, 1)))) = int8(c) + if !(i == k) { + goto __124 + } + k = k + (k + size_t(1)) + tmp1 = Xrealloc(tls, s, k) + if !(!(tmp1 != 0)) { + goto __125 + } + goto alloc_fail +__125: + ; + s = tmp1 +__124: + ; + goto __122 +__123: + ; + goto __120 +__119: + if !(AssignUintptr(&s, dest) != 0) { + goto __126 + } +__128: + if !(*(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + uintptr(((AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) + 1)))) != 0) { + goto __129 + } + *(*int8)(unsafe.Pointer(s + uintptr(PostIncUint32(&i, 1)))) = int8(c) + goto __128 +__129: + ; + goto __127 +__126: +__130: + if !(*(*uint8)(unsafe.Pointer(bp /* &scanset[0] */ + uintptr(((AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer((f))).rpos != (*FILE)(unsafe.Pointer((f))).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) + 1)))) != 0) { + goto __131 + } + goto __130 +__131: + ; +__127: + ; +__120: + ; +__106: + ; + if (*FILE)(unsafe.Pointer((f))).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if !(!(((*FILE)(unsafe.Pointer((f))).shcnt + (off_t((int32((*FILE)(unsafe.Pointer((f))).rpos) - int32((*FILE)(unsafe.Pointer((f))).buf)) / 1))) != 0)) { + goto __132 + } + goto match_fail +__132: + ; + if !((t == 'c') && (((*FILE)(unsafe.Pointer((f))).shcnt + (off_t((int32((*FILE)(unsafe.Pointer((f))).rpos) - int32((*FILE)(unsafe.Pointer((f))).buf)) / 1))) != off_t(width))) { + goto __133 + } + goto match_fail +__133: + ; + if !(alloc != 0) { + goto __134 + } + if !(size == 1) { + goto __135 + } + *(*uintptr)(unsafe.Pointer(dest)) = wcs + goto __136 +__135: + *(*uintptr)(unsafe.Pointer(dest)) = s +__136: + ; +__134: + ; + if !(t != 'c') { + goto __137 + } + if !(wcs != 0) { + goto __138 + } + *(*wchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = wchar_t(0) +__138: + ; + if !(s != 0) { + goto __139 + } + *(*int8)(unsafe.Pointer(s + uintptr(i))) = int8(0) +__139: + ; +__137: + ; + goto __70 +__74: +__75: +__76: + base = 16 + goto int_common +__77: + base = 8 + goto int_common +__78: +__79: + base = 10 + goto int_common +__80: + base = 0 +int_common: + x = X__intscan(tls, f, uint32(base), 0, ((2 * uint64(0x7fffffffffffffff)) + uint64(1))) + if !(!(((*FILE)(unsafe.Pointer((f))).shcnt + (off_t((int32((*FILE)(unsafe.Pointer((f))).rpos) - int32((*FILE)(unsafe.Pointer((f))).buf)) / 1))) != 0)) { + goto __140 + } + goto match_fail +__140: + ; + if !((t == 'p') && (dest != 0)) { + goto __141 + } + *(*uintptr)(unsafe.Pointer(dest)) = uintptr(uintptr_t(x)) + goto __142 +__141: + store_int(tls, dest, size, x) +__142: + ; + goto __70 +__81: +__82: +__83: +__84: +__85: +__86: +__87: +__88: + y = X__floatscan(tls, f, size, 0) + if !(!(((*FILE)(unsafe.Pointer((f))).shcnt + (off_t((int32((*FILE)(unsafe.Pointer((f))).rpos) - int32((*FILE)(unsafe.Pointer((f))).buf)) / 1))) != 0)) { + goto __143 + } + goto match_fail +__143: + ; + if !(dest != 0) { + goto __144 + } + switch size { + case 0: + goto __146 + case 1: + goto __147 + case 2: + goto __148 + } + goto __145 +__146: + *(*float32)(unsafe.Pointer(dest)) = float32(y) + goto __145 +__147: + *(*float64)(unsafe.Pointer(dest)) = y + goto __145 +__148: + *(*float64)(unsafe.Pointer(dest)) = y + goto __145 +__145: + ; +__144: + ; + goto __70 +__70: + ; + + pos = pos + ((*FILE)(unsafe.Pointer((f))).shcnt + (off_t((int32((*FILE)(unsafe.Pointer((f))).rpos) - int32((*FILE)(unsafe.Pointer((f))).buf)) / 1))) + if !(dest != 0) { + goto __149 + } + matches++ +__149: + ; + goto __4 +__4: + p++ + goto __3 + goto __5 +__5: + ; + if !(0 != 0) { + goto __150 + } +fmt_fail: +alloc_fail: +input_fail: + if !(!(matches != 0)) { + goto __151 + } + matches-- +__151: + ; +match_fail: + if !(alloc != 0) { + goto __152 + } + Xfree(tls, s) + Xfree(tls, wcs) +__152: + ; +__150: + ; +__153: + if !(__need_unlock != 0) { + goto __156 + } + X__unlockfile(tls, f) +__156: + ; + goto __154 +__154: + if 0 != 0 { + goto __153 + } + goto __155 +__155: + ; + return matches +} + +func string_read(tls *TLS, f uintptr, buf uintptr, len size_t) size_t { /* vsscanf.c:4:15: */ + var src uintptr = (*FILE)(unsafe.Pointer(f)).cookie + var k size_t = (len + size_t(256)) + var end uintptr = Xmemchr(tls, src, 0, k) + if end != 0 { + k = (size_t((int32(end) - int32(src)) / 1)) + } + if k < len { + len = k + } + Xmemcpy(tls, buf, src, len) + (*FILE)(unsafe.Pointer(f)).rpos = (src + uintptr(len)) + (*FILE)(unsafe.Pointer(f)).rend = (src + uintptr(k)) + (*FILE)(unsafe.Pointer(f)).cookie = (src + uintptr(k)) + return len +} + +func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c:18:5: */ + bp := tls.Alloc(144) + defer tls.Free(144) + + *(*FILE)(unsafe.Pointer(bp /* f */)) = FILE{read: *(*uintptr)(unsafe.Pointer(&struct { + f func(*TLS, uintptr, uintptr, size_t) size_t + }{string_read})), buf: s, lock: -1, cookie: s} + return Xvfscanf(tls, bp /* &f */, fmt, ap) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(144) defer tls.Free(144) @@ -4233,5 +6661,151 @@ func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */ var _sp uintptr /* strtok.c:5:14: */ +func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */ + return *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 3*4)) +} + +func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */ + *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 3*4)) + return 0 +} + +// +// int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t *restrict size) +// { +// *size = a->_a_guardsize; +// return 0; +// } +// +// int pthread_attr_getinheritsched(const pthread_attr_t *restrict a, int *restrict inherit) +// { +// *inherit = a->_a_sched; +// return 0; +// } +// +// int pthread_attr_getschedparam(const pthread_attr_t *restrict a, struct sched_param *restrict param) +// { +// param->sched_priority = a->_a_prio; +// return 0; +// } +// +// int pthread_attr_getschedpolicy(const pthread_attr_t *restrict a, int *restrict policy) +// { +// *policy = a->_a_policy; +// return 0; +// } +// +// int pthread_attr_getscope(const pthread_attr_t *restrict a, int *restrict scope) +// { +// *scope = PTHREAD_SCOPE_SYSTEM; +// return 0; +// } +// +// int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict addr, size_t *restrict size) +// { +// if (!a->_a_stackaddr) +// return EINVAL; +// *size = a->_a_stacksize; +// *addr = (void *)(a->_a_stackaddr - *size); +// return 0; +// } +// +// int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict size) +// { +// *size = a->_a_stacksize; +// return 0; +// } +// +// int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared) +// { +// *pshared = !!a->__attr; +// return 0; +// } +// +// int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk) +// { +// *clk = a->__attr & 0x7fffffff; +// return 0; +// } +// +// int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared) +// { +// *pshared = a->__attr>>31; +// return 0; +// } +// +// int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict a, int *restrict protocol) +// { +// *protocol = PTHREAD_PRIO_NONE; +// return 0; +// } +// int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared) +// { +// *pshared = a->__attr / 128U % 2; +// return 0; +// } +// +// int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust) +// { +// *robust = a->__attr / 4U % 2; +// return 0; +// } + +func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */ + return (int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3))) +} + +// int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type) +// { +// *type = a->__attr & 3; +// return 0; +// } +// +// int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared) +// { +// *pshared = a->__attr[0]; +// return 0; +// } + +func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */ + if uint32(state) > 1 { + return 22 + } + *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 3*4)) = state + return 0 +} + +func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */ + return (*(*int32)(unsafe.Pointer((m /* &.__u */ /* &.__i */))) & 15) +} + +// int __pthread_mutex_lock(pthread_mutex_t *m) +// { +// if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL +// && !a_cas(&m->_m_lock, 0, EBUSY)) +// return 0; +// +// return __pthread_mutex_timedlock(m, 0); +// } +// +// weak_alias(__pthread_mutex_lock, pthread_mutex_lock); + +func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */ + return 0 +} + +func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */ + *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{} + return 0 +} + +func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */ + if uint32(type1) > uint32(2) { + return 22 + } + (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & Uint32FromInt32(CplInt32(3))) | uint32(type1)) + return 0 +} + var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data |