hs-bindgen (empty) → 1.0.0.0
raw patch · 3015 files changed
+565552/−0 lines, 3015 filesdep +Diffdep +aesondep +ansi-terminal
Dependencies added: Diff, aeson, ansi-terminal, array, async, base, base-compat, base16-bytestring, bytestring, c-expr-dsl, c-expr-runtime, containers, contra-tracer, cryptohash-sha256, data-default, debruijn, deepseq, directory, doxygen-parser, edit-distance, exceptions, filepath, fin, hs-bindgen, hs-bindgen-runtime, language-c, libclang-bindings, mtl, optics, optics-core, optparse-applicative, parsec, pretty, prettyprinter, primitive, process, regex-pcre-builtin, some, syb, tasty, tasty-hunit, tasty-quickcheck, template-haskell, temporary, text, transformers, unliftio-core, utf8-string, vec, vector, yaml
This diff is very large; some files are shown as “too large to diff”. Download the raw patch for the complete diff.
Files
- CHANGELOG.md +537/−0
- LICENSE +29/−0
- README.md +9/−0
- app/HsBindgen/App.hs +617/−0
- app/HsBindgen/App/Output.hs +160/−0
- app/HsBindgen/Cli.hs +58/−0
- app/HsBindgen/Cli/BindingSpec.hs +47/−0
- app/HsBindgen/Cli/BindingSpec/StdLib.hs +76/−0
- app/HsBindgen/Cli/GenTests.hs +76/−0
- app/HsBindgen/Cli/Info.hs +99/−0
- app/HsBindgen/Cli/Info/BuiltinMacros.hs +231/−0
- app/HsBindgen/Cli/Info/Doxygen.hs +86/−0
- app/HsBindgen/Cli/Info/IncludeGraph.hs +137/−0
- app/HsBindgen/Cli/Info/Instances.hs +62/−0
- app/HsBindgen/Cli/Info/Libclang.hs +110/−0
- app/HsBindgen/Cli/Info/ResolveHeader.hs +107/−0
- app/HsBindgen/Cli/Info/UseDeclGraph.hs +89/−0
- app/HsBindgen/Cli/Internal.hs +45/−0
- app/HsBindgen/Cli/Internal/Frontend.hs +149/−0
- app/HsBindgen/Cli/Preprocess.hs +127/−0
- app/HsBindgen/Cli/ToolSupport.hs +47/−0
- app/HsBindgen/Cli/ToolSupport/Literate.hs +160/−0
- app/hs-bindgen-cli.hs +144/−0
- bootstrap/standard_headers.h +119/−0
- clang-ast-dump/Main.hs +519/−0
- hs-bindgen.cabal +681/−0
- known-issues.md +140/−0
- musl-include/COPYRIGHT +193/−0
- musl-include/VERSION +1/−0
- musl-include/aarch64/aio.h +73/−0
- musl-include/aarch64/alloca.h +19/−0
- musl-include/aarch64/ar.h +25/−0
- musl-include/aarch64/arpa/ftp.h +35/−0
- musl-include/aarch64/arpa/inet.h +31/−0
- musl-include/aarch64/arpa/nameser.h +526/−0
- musl-include/aarch64/arpa/nameser_compat.h +2/−0
- musl-include/aarch64/arpa/telnet.h +251/−0
- musl-include/aarch64/arpa/tftp.h +31/−0
- musl-include/aarch64/assert.h +23/−0
- musl-include/aarch64/bits/alltypes.h +423/−0
- musl-include/aarch64/bits/dirent.h +11/−0
- musl-include/aarch64/bits/errno.h +134/−0
- musl-include/aarch64/bits/fcntl.h +38/−0
- musl-include/aarch64/bits/fenv.h +19/−0
- musl-include/aarch64/bits/float.h +16/−0
- musl-include/aarch64/bits/hwcap.h +52/−0
- musl-include/aarch64/bits/io.h +0/−0
- musl-include/aarch64/bits/ioctl.h +115/−0
- musl-include/aarch64/bits/ioctl_fix.h +0/−0
- musl-include/aarch64/bits/ipc.h +11/−0
- musl-include/aarch64/bits/ipcstat.h +1/−0
- musl-include/aarch64/bits/kd.h +1/−0
- musl-include/aarch64/bits/limits.h +0/−0
- musl-include/aarch64/bits/link.h +1/−0
- musl-include/aarch64/bits/mman.h +2/−0
- musl-include/aarch64/bits/msg.h +12/−0
- musl-include/aarch64/bits/poll.h +0/−0
- musl-include/aarch64/bits/posix.h +2/−0
- musl-include/aarch64/bits/ptrace.h +0/−0
- musl-include/aarch64/bits/reg.h +2/−0
- musl-include/aarch64/bits/resource.h +0/−0
- musl-include/aarch64/bits/sem.h +14/−0
- musl-include/aarch64/bits/setjmp.h +1/−0
- musl-include/aarch64/bits/shm.h +24/−0
- musl-include/aarch64/bits/signal.h +153/−0
- musl-include/aarch64/bits/socket.h +0/−0
- musl-include/aarch64/bits/soundcard.h +1/−0
- musl-include/aarch64/bits/stat.h +18/−0
- musl-include/aarch64/bits/statfs.h +7/−0
- musl-include/aarch64/bits/stdint.h +20/−0
- musl-include/aarch64/bits/syscall.h +613/−0
- musl-include/aarch64/bits/termios.h +166/−0
- musl-include/aarch64/bits/user.h +16/−0
- musl-include/aarch64/bits/vt.h +1/−0
- musl-include/aarch64/byteswap.h +26/−0
- musl-include/aarch64/complex.h +133/−0
- musl-include/aarch64/cpio.h +29/−0
- musl-include/aarch64/crypt.h +20/−0
- musl-include/aarch64/ctype.h +77/−0
- musl-include/aarch64/dirent.h +75/−0
- musl-include/aarch64/dlfcn.h +46/−0
- musl-include/aarch64/elf.h +3414/−0
- musl-include/aarch64/endian.h +80/−0
- musl-include/aarch64/err.h +25/−0
- musl-include/aarch64/errno.h +27/−0
- musl-include/aarch64/fcntl.h +218/−0
- musl-include/aarch64/features.h +40/−0
- musl-include/aarch64/fenv.h +28/−0
- musl-include/aarch64/float.h +52/−0
- musl-include/aarch64/fmtmsg.h +47/−0
- musl-include/aarch64/fnmatch.h +24/−0
- musl-include/aarch64/ftw.h +41/−0
- musl-include/aarch64/getopt.h +30/−0
- musl-include/aarch64/glob.h +52/−0
- musl-include/aarch64/grp.h +53/−0
- musl-include/aarch64/iconv.h +24/−0
- musl-include/aarch64/ifaddrs.h +35/−0
- musl-include/aarch64/inttypes.h +229/−0
- musl-include/aarch64/iso646.h +20/−0
- musl-include/aarch64/langinfo.h +98/−0
- musl-include/aarch64/lastlog.h +1/−0
- musl-include/aarch64/libgen.h +15/−0
- musl-include/aarch64/libintl.h +33/−0
- musl-include/aarch64/limits.h +166/−0
- musl-include/aarch64/link.h +53/−0
- musl-include/aarch64/locale.h +88/−0
- musl-include/aarch64/malloc.h +25/−0
- musl-include/aarch64/math.h +442/−0
- musl-include/aarch64/memory.h +1/−0
- musl-include/aarch64/mntent.h +43/−0
- musl-include/aarch64/monetary.h +23/−0
- musl-include/aarch64/mqueue.h +41/−0
- musl-include/aarch64/net/ethernet.h +55/−0
- musl-include/aarch64/net/if.h +141/−0
- musl-include/aarch64/net/if_arp.h +142/−0
- musl-include/aarch64/net/route.h +124/−0
- musl-include/aarch64/netdb.h +157/−0
- musl-include/aarch64/netinet/ether.h +22/−0
- musl-include/aarch64/netinet/icmp6.h +305/−0
- musl-include/aarch64/netinet/if_ether.h +149/−0
- musl-include/aarch64/netinet/igmp.h +45/−0
- musl-include/aarch64/netinet/in.h +417/−0
- musl-include/aarch64/netinet/in_systm.h +9/−0
- musl-include/aarch64/netinet/ip.h +199/−0
- musl-include/aarch64/netinet/ip6.h +141/−0
- musl-include/aarch64/netinet/ip_icmp.h +193/−0
- musl-include/aarch64/netinet/tcp.h +305/−0
- musl-include/aarch64/netinet/udp.h +46/−0
- musl-include/aarch64/netpacket/packet.h +62/−0
- musl-include/aarch64/nl_types.h +22/−0
- musl-include/aarch64/paths.h +31/−0
- musl-include/aarch64/poll.h +57/−0
- musl-include/aarch64/pthread.h +244/−0
- musl-include/aarch64/pty.h +18/−0
- musl-include/aarch64/pwd.h +50/−0
- musl-include/aarch64/regex.h +62/−0
- musl-include/aarch64/resolv.h +142/−0
- musl-include/aarch64/sched.h +148/−0
- musl-include/aarch64/scsi/scsi.h +150/−0
- musl-include/aarch64/scsi/scsi_ioctl.h +11/−0
- musl-include/aarch64/scsi/sg.h +129/−0
- musl-include/aarch64/search.h +63/−0
- musl-include/aarch64/semaphore.h +39/−0
- musl-include/aarch64/setjmp.h +49/−0
- musl-include/aarch64/shadow.h +44/−0
- musl-include/aarch64/signal.h +304/−0
- musl-include/aarch64/spawn.h +83/−0
- musl-include/aarch64/stdalign.h +20/−0
- musl-include/aarch64/stdarg.h +21/−0
- musl-include/aarch64/stdbool.h +14/−0
- musl-include/aarch64/stdc-predef.h +18/−0
- musl-include/aarch64/stddef.h +27/−0
- musl-include/aarch64/stdint.h +117/−0
- musl-include/aarch64/stdio.h +224/−0
- musl-include/aarch64/stdio_ext.h +34/−0
- musl-include/aarch64/stdlib.h +179/−0
- musl-include/aarch64/stdnoreturn.h +7/−0
- musl-include/aarch64/string.h +104/−0
- musl-include/aarch64/strings.h +40/−0
- musl-include/aarch64/stropts.h +139/−0
- musl-include/aarch64/sys/acct.h +72/−0
- musl-include/aarch64/sys/auxv.h +17/−0
- musl-include/aarch64/sys/cachectl.h +22/−0
- musl-include/aarch64/sys/dir.h +2/−0
- musl-include/aarch64/sys/epoll.h +69/−0
- musl-include/aarch64/sys/errno.h +2/−0
- musl-include/aarch64/sys/eventfd.h +26/−0
- musl-include/aarch64/sys/fanotify.h +111/−0
- musl-include/aarch64/sys/fcntl.h +2/−0
- musl-include/aarch64/sys/file.h +21/−0
- musl-include/aarch64/sys/fsuid.h +20/−0
- musl-include/aarch64/sys/inotify.h +58/−0
- musl-include/aarch64/sys/io.h +17/−0
- musl-include/aarch64/sys/ioctl.h +120/−0
- musl-include/aarch64/sys/ipc.h +42/−0
- musl-include/aarch64/sys/kd.h +1/−0
- musl-include/aarch64/sys/klog.h +14/−0
- musl-include/aarch64/sys/membarrier.h +21/−0
- musl-include/aarch64/sys/mman.h +152/−0
- musl-include/aarch64/sys/mount.h +75/−0
- musl-include/aarch64/sys/msg.h +53/−0
- musl-include/aarch64/sys/mtio.h +188/−0
- musl-include/aarch64/sys/param.h +35/−0
- musl-include/aarch64/sys/personality.h +49/−0
- musl-include/aarch64/sys/poll.h +2/−0
- musl-include/aarch64/sys/prctl.h +186/−0
- musl-include/aarch64/sys/procfs.h +63/−0
- musl-include/aarch64/sys/ptrace.h +147/−0
- musl-include/aarch64/sys/quota.h +102/−0
- musl-include/aarch64/sys/random.h +20/−0
- musl-include/aarch64/sys/reboot.h +20/−0
- musl-include/aarch64/sys/reg.h +9/−0
- musl-include/aarch64/sys/resource.h +116/−0
- musl-include/aarch64/sys/select.h +46/−0
- musl-include/aarch64/sys/sem.h +72/−0
- musl-include/aarch64/sys/sendfile.h +22/−0
- musl-include/aarch64/sys/shm.h +70/−0
- musl-include/aarch64/sys/signal.h +2/−0
- musl-include/aarch64/sys/signalfd.h +49/−0
- musl-include/aarch64/sys/socket.h +415/−0
- musl-include/aarch64/sys/soundcard.h +1/−0
- musl-include/aarch64/sys/stat.h +182/−0
- musl-include/aarch64/sys/statfs.h +32/−0
- musl-include/aarch64/sys/statvfs.h +57/−0
- musl-include/aarch64/sys/stropts.h +1/−0
- musl-include/aarch64/sys/swap.h +21/−0
- musl-include/aarch64/sys/syscall.h +6/−0
- musl-include/aarch64/sys/sysinfo.h +36/−0
- musl-include/aarch64/sys/syslog.h +1/−0
- musl-include/aarch64/sys/sysmacros.h +15/−0
- musl-include/aarch64/sys/termios.h +2/−0
- musl-include/aarch64/sys/time.h +76/−0
- musl-include/aarch64/sys/timeb.h +28/−0
- musl-include/aarch64/sys/timerfd.h +32/−0
- musl-include/aarch64/sys/times.h +25/−0
- musl-include/aarch64/sys/timex.h +103/−0
- musl-include/aarch64/sys/ttydefaults.h +34/−0
- musl-include/aarch64/sys/types.h +85/−0
- musl-include/aarch64/sys/ucontext.h +1/−0
- musl-include/aarch64/sys/uio.h +55/−0
- musl-include/aarch64/sys/un.h +31/−0
- musl-include/aarch64/sys/user.h +16/−0
- musl-include/aarch64/sys/utsname.h +29/−0
- musl-include/aarch64/sys/vfs.h +1/−0
- musl-include/aarch64/sys/vt.h +1/−0
- musl-include/aarch64/sys/wait.h +67/−0
- musl-include/aarch64/sys/xattr.h +32/−0
- musl-include/aarch64/syscall.h +1/−0
- musl-include/aarch64/sysexits.h +21/−0
- musl-include/aarch64/syslog.h +100/−0
- musl-include/aarch64/tar.h +33/−0
- musl-include/aarch64/termios.h +50/−0
- musl-include/aarch64/tgmath.h +270/−0
- musl-include/aarch64/threads.h +93/−0
- musl-include/aarch64/time.h +168/−0
- musl-include/aarch64/uchar.h +29/−0
- musl-include/aarch64/ucontext.h +25/−0
- musl-include/aarch64/ulimit.h +17/−0
- musl-include/aarch64/unistd.h +479/−0
- musl-include/aarch64/utime.h +29/−0
- musl-include/aarch64/utmp.h +52/−0
- musl-include/aarch64/utmpx.h +67/−0
- musl-include/aarch64/values.h +39/−0
- musl-include/aarch64/wait.h +2/−0
- musl-include/aarch64/wchar.h +207/−0
- musl-include/aarch64/wctype.h +79/−0
- musl-include/aarch64/wordexp.h +41/−0
- musl-include/arm/aio.h +73/−0
- musl-include/arm/alloca.h +19/−0
- musl-include/arm/ar.h +25/−0
- musl-include/arm/arpa/ftp.h +35/−0
- musl-include/arm/arpa/inet.h +31/−0
- musl-include/arm/arpa/nameser.h +526/−0
- musl-include/arm/arpa/nameser_compat.h +2/−0
- musl-include/arm/arpa/telnet.h +251/−0
- musl-include/arm/arpa/tftp.h +31/−0
- musl-include/arm/assert.h +23/−0
- musl-include/arm/bits/alltypes.h +408/−0
- musl-include/arm/bits/dirent.h +11/−0
- musl-include/arm/bits/errno.h +134/−0
- musl-include/arm/bits/fcntl.h +40/−0
- musl-include/arm/bits/fenv.h +23/−0
- musl-include/arm/bits/float.h +16/−0
- musl-include/arm/bits/hwcap.h +53/−0
- musl-include/arm/bits/io.h +0/−0
- musl-include/arm/bits/ioctl.h +115/−0
- musl-include/arm/bits/ioctl_fix.h +2/−0
- musl-include/arm/bits/ipc.h +11/−0
- musl-include/arm/bits/ipcstat.h +1/−0
- musl-include/arm/bits/kd.h +1/−0
- musl-include/arm/bits/limits.h +0/−0
- musl-include/arm/bits/link.h +1/−0
- musl-include/arm/bits/mman.h +0/−0
- musl-include/arm/bits/msg.h +18/−0
- musl-include/arm/bits/poll.h +0/−0
- musl-include/arm/bits/posix.h +2/−0
- musl-include/arm/bits/ptrace.h +25/−0
- musl-include/arm/bits/reg.h +3/−0
- musl-include/arm/bits/resource.h +0/−0
- musl-include/arm/bits/sem.h +18/−0
- musl-include/arm/bits/setjmp.h +1/−0
- musl-include/arm/bits/shm.h +31/−0
- musl-include/arm/bits/signal.h +86/−0
- musl-include/arm/bits/socket.h +0/−0
- musl-include/arm/bits/soundcard.h +1/−0
- musl-include/arm/bits/stat.h +25/−0
- musl-include/arm/bits/statfs.h +7/−0
- musl-include/arm/bits/stdint.h +20/−0
- musl-include/arm/bits/syscall.h +820/−0
- musl-include/arm/bits/termios.h +166/−0
- musl-include/arm/bits/user.h +36/−0
- musl-include/arm/bits/vt.h +1/−0
- musl-include/arm/byteswap.h +26/−0
- musl-include/arm/complex.h +133/−0
- musl-include/arm/cpio.h +29/−0
- musl-include/arm/crypt.h +20/−0
- musl-include/arm/ctype.h +77/−0
- musl-include/arm/dirent.h +75/−0
- musl-include/arm/dlfcn.h +46/−0
- musl-include/arm/elf.h +3414/−0
- musl-include/arm/endian.h +80/−0
- musl-include/arm/err.h +25/−0
- musl-include/arm/errno.h +27/−0
- musl-include/arm/fcntl.h +218/−0
- musl-include/arm/features.h +40/−0
- musl-include/arm/fenv.h +28/−0
- musl-include/arm/float.h +52/−0
- musl-include/arm/fmtmsg.h +47/−0
- musl-include/arm/fnmatch.h +24/−0
- musl-include/arm/ftw.h +41/−0
- musl-include/arm/getopt.h +30/−0
- musl-include/arm/glob.h +52/−0
- musl-include/arm/grp.h +53/−0
- musl-include/arm/iconv.h +24/−0
- musl-include/arm/ifaddrs.h +35/−0
- musl-include/arm/inttypes.h +229/−0
- musl-include/arm/iso646.h +20/−0
- musl-include/arm/langinfo.h +98/−0
- musl-include/arm/lastlog.h +1/−0
- musl-include/arm/libgen.h +15/−0
- musl-include/arm/libintl.h +33/−0
- musl-include/arm/limits.h +166/−0
- musl-include/arm/link.h +53/−0
- musl-include/arm/locale.h +88/−0
- musl-include/arm/malloc.h +25/−0
- musl-include/arm/math.h +442/−0
- musl-include/arm/memory.h +1/−0
- musl-include/arm/mntent.h +43/−0
- musl-include/arm/monetary.h +23/−0
- musl-include/arm/mqueue.h +41/−0
- musl-include/arm/net/ethernet.h +55/−0
- musl-include/arm/net/if.h +141/−0
- musl-include/arm/net/if_arp.h +142/−0
- musl-include/arm/net/route.h +124/−0
- musl-include/arm/netdb.h +157/−0
- musl-include/arm/netinet/ether.h +22/−0
- musl-include/arm/netinet/icmp6.h +305/−0
- musl-include/arm/netinet/if_ether.h +149/−0
- musl-include/arm/netinet/igmp.h +45/−0
- musl-include/arm/netinet/in.h +417/−0
- musl-include/arm/netinet/in_systm.h +9/−0
- musl-include/arm/netinet/ip.h +199/−0
- musl-include/arm/netinet/ip6.h +141/−0
- musl-include/arm/netinet/ip_icmp.h +193/−0
- musl-include/arm/netinet/tcp.h +305/−0
- musl-include/arm/netinet/udp.h +46/−0
- musl-include/arm/netpacket/packet.h +62/−0
- musl-include/arm/nl_types.h +22/−0
- musl-include/arm/paths.h +31/−0
- musl-include/arm/poll.h +57/−0
- musl-include/arm/pthread.h +244/−0
- musl-include/arm/pty.h +18/−0
- musl-include/arm/pwd.h +50/−0
- musl-include/arm/regex.h +62/−0
- musl-include/arm/resolv.h +142/−0
- musl-include/arm/sched.h +148/−0
- musl-include/arm/scsi/scsi.h +150/−0
- musl-include/arm/scsi/scsi_ioctl.h +11/−0
- musl-include/arm/scsi/sg.h +129/−0
- musl-include/arm/search.h +63/−0
- musl-include/arm/semaphore.h +39/−0
- musl-include/arm/setjmp.h +49/−0
- musl-include/arm/shadow.h +44/−0
- musl-include/arm/signal.h +304/−0
- musl-include/arm/spawn.h +83/−0
- musl-include/arm/stdalign.h +20/−0
- musl-include/arm/stdarg.h +21/−0
- musl-include/arm/stdbool.h +14/−0
- musl-include/arm/stdc-predef.h +18/−0
- musl-include/arm/stddef.h +27/−0
- musl-include/arm/stdint.h +117/−0
- musl-include/arm/stdio.h +224/−0
- musl-include/arm/stdio_ext.h +34/−0
- musl-include/arm/stdlib.h +179/−0
- musl-include/arm/stdnoreturn.h +7/−0
- musl-include/arm/string.h +104/−0
- musl-include/arm/strings.h +40/−0
- musl-include/arm/stropts.h +139/−0
- musl-include/arm/sys/acct.h +72/−0
- musl-include/arm/sys/auxv.h +17/−0
- musl-include/arm/sys/cachectl.h +22/−0
- musl-include/arm/sys/dir.h +2/−0
- musl-include/arm/sys/epoll.h +69/−0
- musl-include/arm/sys/errno.h +2/−0
- musl-include/arm/sys/eventfd.h +26/−0
- musl-include/arm/sys/fanotify.h +111/−0
- musl-include/arm/sys/fcntl.h +2/−0
- musl-include/arm/sys/file.h +21/−0
- musl-include/arm/sys/fsuid.h +20/−0
- musl-include/arm/sys/inotify.h +58/−0
- musl-include/arm/sys/io.h +17/−0
- musl-include/arm/sys/ioctl.h +120/−0
- musl-include/arm/sys/ipc.h +42/−0
- musl-include/arm/sys/kd.h +1/−0
- musl-include/arm/sys/klog.h +14/−0
- musl-include/arm/sys/membarrier.h +21/−0
- musl-include/arm/sys/mman.h +152/−0
- musl-include/arm/sys/mount.h +75/−0
- musl-include/arm/sys/msg.h +53/−0
- musl-include/arm/sys/mtio.h +188/−0
- musl-include/arm/sys/param.h too large to diff
- musl-include/arm/sys/personality.h too large to diff
- musl-include/arm/sys/poll.h too large to diff
- musl-include/arm/sys/prctl.h too large to diff
- musl-include/arm/sys/procfs.h too large to diff
- musl-include/arm/sys/ptrace.h too large to diff
- musl-include/arm/sys/quota.h too large to diff
- musl-include/arm/sys/random.h too large to diff
- musl-include/arm/sys/reboot.h too large to diff
- musl-include/arm/sys/reg.h too large to diff
- musl-include/arm/sys/resource.h too large to diff
- musl-include/arm/sys/select.h too large to diff
- musl-include/arm/sys/sem.h too large to diff
- musl-include/arm/sys/sendfile.h too large to diff
- musl-include/arm/sys/shm.h too large to diff
- musl-include/arm/sys/signal.h too large to diff
- musl-include/arm/sys/signalfd.h too large to diff
- musl-include/arm/sys/socket.h too large to diff
- musl-include/arm/sys/soundcard.h too large to diff
- musl-include/arm/sys/stat.h too large to diff
- musl-include/arm/sys/statfs.h too large to diff
- musl-include/arm/sys/statvfs.h too large to diff
- musl-include/arm/sys/stropts.h too large to diff
- musl-include/arm/sys/swap.h too large to diff
- musl-include/arm/sys/syscall.h too large to diff
- musl-include/arm/sys/sysinfo.h too large to diff
- musl-include/arm/sys/syslog.h too large to diff
- musl-include/arm/sys/sysmacros.h too large to diff
- musl-include/arm/sys/termios.h too large to diff
- musl-include/arm/sys/time.h too large to diff
- musl-include/arm/sys/timeb.h too large to diff
- musl-include/arm/sys/timerfd.h too large to diff
- musl-include/arm/sys/times.h too large to diff
- musl-include/arm/sys/timex.h too large to diff
- musl-include/arm/sys/ttydefaults.h too large to diff
- musl-include/arm/sys/types.h too large to diff
- musl-include/arm/sys/ucontext.h too large to diff
- musl-include/arm/sys/uio.h too large to diff
- musl-include/arm/sys/un.h too large to diff
- musl-include/arm/sys/user.h too large to diff
- musl-include/arm/sys/utsname.h too large to diff
- musl-include/arm/sys/vfs.h too large to diff
- musl-include/arm/sys/vt.h too large to diff
- musl-include/arm/sys/wait.h too large to diff
- musl-include/arm/sys/xattr.h too large to diff
- musl-include/arm/syscall.h too large to diff
- musl-include/arm/sysexits.h too large to diff
- musl-include/arm/syslog.h too large to diff
- musl-include/arm/tar.h too large to diff
- musl-include/arm/termios.h too large to diff
- musl-include/arm/tgmath.h too large to diff
- musl-include/arm/threads.h too large to diff
- musl-include/arm/time.h too large to diff
- musl-include/arm/uchar.h too large to diff
- musl-include/arm/ucontext.h too large to diff
- musl-include/arm/ulimit.h too large to diff
- musl-include/arm/unistd.h too large to diff
- musl-include/arm/utime.h too large to diff
- musl-include/arm/utmp.h too large to diff
- musl-include/arm/utmpx.h too large to diff
- musl-include/arm/values.h too large to diff
- musl-include/arm/wait.h too large to diff
- musl-include/arm/wchar.h too large to diff
- musl-include/arm/wctype.h too large to diff
- musl-include/arm/wordexp.h too large to diff
- musl-include/i386/aio.h too large to diff
- musl-include/i386/alloca.h too large to diff
- musl-include/i386/ar.h too large to diff
- musl-include/i386/arpa/ftp.h too large to diff
- musl-include/i386/arpa/inet.h too large to diff
- musl-include/i386/arpa/nameser.h too large to diff
- musl-include/i386/arpa/nameser_compat.h too large to diff
- musl-include/i386/arpa/telnet.h too large to diff
- musl-include/i386/arpa/tftp.h too large to diff
- musl-include/i386/assert.h too large to diff
- musl-include/i386/bits/alltypes.h too large to diff
- musl-include/i386/bits/dirent.h too large to diff
- musl-include/i386/bits/errno.h too large to diff
- musl-include/i386/bits/fcntl.h too large to diff
- musl-include/i386/bits/fenv.h too large to diff
- musl-include/i386/bits/float.h too large to diff
- musl-include/i386/bits/hwcap.h too large to diff
- musl-include/i386/bits/io.h too large to diff
- musl-include/i386/bits/ioctl.h too large to diff
- musl-include/i386/bits/ioctl_fix.h too large to diff
- musl-include/i386/bits/ipc.h too large to diff
- musl-include/i386/bits/ipcstat.h too large to diff
- musl-include/i386/bits/kd.h too large to diff
- musl-include/i386/bits/limits.h too large to diff
- musl-include/i386/bits/link.h too large to diff
- musl-include/i386/bits/mman.h too large to diff
- musl-include/i386/bits/msg.h too large to diff
- musl-include/i386/bits/poll.h too large to diff
- musl-include/i386/bits/posix.h too large to diff
- musl-include/i386/bits/ptrace.h too large to diff
- musl-include/i386/bits/reg.h too large to diff
- musl-include/i386/bits/resource.h too large to diff
- musl-include/i386/bits/sem.h too large to diff
- musl-include/i386/bits/setjmp.h too large to diff
- musl-include/i386/bits/shm.h too large to diff
- musl-include/i386/bits/signal.h too large to diff
- musl-include/i386/bits/socket.h too large to diff
- musl-include/i386/bits/soundcard.h too large to diff
- musl-include/i386/bits/stat.h too large to diff
- musl-include/i386/bits/statfs.h too large to diff
- musl-include/i386/bits/stdint.h too large to diff
- musl-include/i386/bits/syscall.h too large to diff
- musl-include/i386/bits/termios.h too large to diff
- musl-include/i386/bits/user.h too large to diff
- musl-include/i386/bits/vt.h too large to diff
- musl-include/i386/byteswap.h too large to diff
- musl-include/i386/complex.h too large to diff
- musl-include/i386/cpio.h too large to diff
- musl-include/i386/crypt.h too large to diff
- musl-include/i386/ctype.h too large to diff
- musl-include/i386/dirent.h too large to diff
- musl-include/i386/dlfcn.h too large to diff
- musl-include/i386/elf.h too large to diff
- musl-include/i386/endian.h too large to diff
- musl-include/i386/err.h too large to diff
- musl-include/i386/errno.h too large to diff
- musl-include/i386/fcntl.h too large to diff
- musl-include/i386/features.h too large to diff
- musl-include/i386/fenv.h too large to diff
- musl-include/i386/float.h too large to diff
- musl-include/i386/fmtmsg.h too large to diff
- musl-include/i386/fnmatch.h too large to diff
- musl-include/i386/ftw.h too large to diff
- musl-include/i386/getopt.h too large to diff
- musl-include/i386/glob.h too large to diff
- musl-include/i386/grp.h too large to diff
- musl-include/i386/iconv.h too large to diff
- musl-include/i386/ifaddrs.h too large to diff
- musl-include/i386/inttypes.h too large to diff
- musl-include/i386/iso646.h too large to diff
- musl-include/i386/langinfo.h too large to diff
- musl-include/i386/lastlog.h too large to diff
- musl-include/i386/libgen.h too large to diff
- musl-include/i386/libintl.h too large to diff
- musl-include/i386/limits.h too large to diff
- musl-include/i386/link.h too large to diff
- musl-include/i386/locale.h too large to diff
- musl-include/i386/malloc.h too large to diff
- musl-include/i386/math.h too large to diff
- musl-include/i386/memory.h too large to diff
- musl-include/i386/mntent.h too large to diff
- musl-include/i386/monetary.h too large to diff
- musl-include/i386/mqueue.h too large to diff
- musl-include/i386/net/ethernet.h too large to diff
- musl-include/i386/net/if.h too large to diff
- musl-include/i386/net/if_arp.h too large to diff
- musl-include/i386/net/route.h too large to diff
- musl-include/i386/netdb.h too large to diff
- musl-include/i386/netinet/ether.h too large to diff
- musl-include/i386/netinet/icmp6.h too large to diff
- musl-include/i386/netinet/if_ether.h too large to diff
- musl-include/i386/netinet/igmp.h too large to diff
- musl-include/i386/netinet/in.h too large to diff
- musl-include/i386/netinet/in_systm.h too large to diff
- musl-include/i386/netinet/ip.h too large to diff
- musl-include/i386/netinet/ip6.h too large to diff
- musl-include/i386/netinet/ip_icmp.h too large to diff
- musl-include/i386/netinet/tcp.h too large to diff
- musl-include/i386/netinet/udp.h too large to diff
- musl-include/i386/netpacket/packet.h too large to diff
- musl-include/i386/nl_types.h too large to diff
- musl-include/i386/paths.h too large to diff
- musl-include/i386/poll.h too large to diff
- musl-include/i386/pthread.h too large to diff
- musl-include/i386/pty.h too large to diff
- musl-include/i386/pwd.h too large to diff
- musl-include/i386/regex.h too large to diff
- musl-include/i386/resolv.h too large to diff
- musl-include/i386/sched.h too large to diff
- musl-include/i386/scsi/scsi.h too large to diff
- musl-include/i386/scsi/scsi_ioctl.h too large to diff
- musl-include/i386/scsi/sg.h too large to diff
- musl-include/i386/search.h too large to diff
- musl-include/i386/semaphore.h too large to diff
- musl-include/i386/setjmp.h too large to diff
- musl-include/i386/shadow.h too large to diff
- musl-include/i386/signal.h too large to diff
- musl-include/i386/spawn.h too large to diff
- musl-include/i386/stdalign.h too large to diff
- musl-include/i386/stdarg.h too large to diff
- musl-include/i386/stdbool.h too large to diff
- musl-include/i386/stdc-predef.h too large to diff
- musl-include/i386/stddef.h too large to diff
- musl-include/i386/stdint.h too large to diff
- musl-include/i386/stdio.h too large to diff
- musl-include/i386/stdio_ext.h too large to diff
- musl-include/i386/stdlib.h too large to diff
- musl-include/i386/stdnoreturn.h too large to diff
- musl-include/i386/string.h too large to diff
- musl-include/i386/strings.h too large to diff
- musl-include/i386/stropts.h too large to diff
- musl-include/i386/sys/acct.h too large to diff
- musl-include/i386/sys/auxv.h too large to diff
- musl-include/i386/sys/cachectl.h too large to diff
- musl-include/i386/sys/dir.h too large to diff
- musl-include/i386/sys/epoll.h too large to diff
- musl-include/i386/sys/errno.h too large to diff
- musl-include/i386/sys/eventfd.h too large to diff
- musl-include/i386/sys/fanotify.h too large to diff
- musl-include/i386/sys/fcntl.h too large to diff
- musl-include/i386/sys/file.h too large to diff
- musl-include/i386/sys/fsuid.h too large to diff
- musl-include/i386/sys/inotify.h too large to diff
- musl-include/i386/sys/io.h too large to diff
- musl-include/i386/sys/ioctl.h too large to diff
- musl-include/i386/sys/ipc.h too large to diff
- musl-include/i386/sys/kd.h too large to diff
- musl-include/i386/sys/klog.h too large to diff
- musl-include/i386/sys/membarrier.h too large to diff
- musl-include/i386/sys/mman.h too large to diff
- musl-include/i386/sys/mount.h too large to diff
- musl-include/i386/sys/msg.h too large to diff
- musl-include/i386/sys/mtio.h too large to diff
- musl-include/i386/sys/param.h too large to diff
- musl-include/i386/sys/personality.h too large to diff
- musl-include/i386/sys/poll.h too large to diff
- musl-include/i386/sys/prctl.h too large to diff
- musl-include/i386/sys/procfs.h too large to diff
- musl-include/i386/sys/ptrace.h too large to diff
- musl-include/i386/sys/quota.h too large to diff
- musl-include/i386/sys/random.h too large to diff
- musl-include/i386/sys/reboot.h too large to diff
- musl-include/i386/sys/reg.h too large to diff
- musl-include/i386/sys/resource.h too large to diff
- musl-include/i386/sys/select.h too large to diff
- musl-include/i386/sys/sem.h too large to diff
- musl-include/i386/sys/sendfile.h too large to diff
- musl-include/i386/sys/shm.h too large to diff
- musl-include/i386/sys/signal.h too large to diff
- musl-include/i386/sys/signalfd.h too large to diff
- musl-include/i386/sys/socket.h too large to diff
- musl-include/i386/sys/soundcard.h too large to diff
- musl-include/i386/sys/stat.h too large to diff
- musl-include/i386/sys/statfs.h too large to diff
- musl-include/i386/sys/statvfs.h too large to diff
- musl-include/i386/sys/stropts.h too large to diff
- musl-include/i386/sys/swap.h too large to diff
- musl-include/i386/sys/syscall.h too large to diff
- musl-include/i386/sys/sysinfo.h too large to diff
- musl-include/i386/sys/syslog.h too large to diff
- musl-include/i386/sys/sysmacros.h too large to diff
- musl-include/i386/sys/termios.h too large to diff
- musl-include/i386/sys/time.h too large to diff
- musl-include/i386/sys/timeb.h too large to diff
- musl-include/i386/sys/timerfd.h too large to diff
- musl-include/i386/sys/times.h too large to diff
- musl-include/i386/sys/timex.h too large to diff
- musl-include/i386/sys/ttydefaults.h too large to diff
- musl-include/i386/sys/types.h too large to diff
- musl-include/i386/sys/ucontext.h too large to diff
- musl-include/i386/sys/uio.h too large to diff
- musl-include/i386/sys/un.h too large to diff
- musl-include/i386/sys/user.h too large to diff
- musl-include/i386/sys/utsname.h too large to diff
- musl-include/i386/sys/vfs.h too large to diff
- musl-include/i386/sys/vt.h too large to diff
- musl-include/i386/sys/wait.h too large to diff
- musl-include/i386/sys/xattr.h too large to diff
- musl-include/i386/syscall.h too large to diff
- musl-include/i386/sysexits.h too large to diff
- musl-include/i386/syslog.h too large to diff
- musl-include/i386/tar.h too large to diff
- musl-include/i386/termios.h too large to diff
- musl-include/i386/tgmath.h too large to diff
- musl-include/i386/threads.h too large to diff
- musl-include/i386/time.h too large to diff
- musl-include/i386/uchar.h too large to diff
- musl-include/i386/ucontext.h too large to diff
- musl-include/i386/ulimit.h too large to diff
- musl-include/i386/unistd.h too large to diff
- musl-include/i386/utime.h too large to diff
- musl-include/i386/utmp.h too large to diff
- musl-include/i386/utmpx.h too large to diff
- musl-include/i386/values.h too large to diff
- musl-include/i386/wait.h too large to diff
- musl-include/i386/wchar.h too large to diff
- musl-include/i386/wctype.h too large to diff
- musl-include/i386/wordexp.h too large to diff
- musl-include/x86_64/aio.h too large to diff
- musl-include/x86_64/alloca.h too large to diff
- musl-include/x86_64/ar.h too large to diff
- musl-include/x86_64/arpa/ftp.h too large to diff
- musl-include/x86_64/arpa/inet.h too large to diff
- musl-include/x86_64/arpa/nameser.h too large to diff
- musl-include/x86_64/arpa/nameser_compat.h too large to diff
- musl-include/x86_64/arpa/telnet.h too large to diff
- musl-include/x86_64/arpa/tftp.h too large to diff
- musl-include/x86_64/assert.h too large to diff
- musl-include/x86_64/bits/alltypes.h too large to diff
- musl-include/x86_64/bits/dirent.h too large to diff
- musl-include/x86_64/bits/errno.h too large to diff
- musl-include/x86_64/bits/fcntl.h too large to diff
- musl-include/x86_64/bits/fenv.h too large to diff
- musl-include/x86_64/bits/float.h too large to diff
- musl-include/x86_64/bits/hwcap.h too large to diff
- musl-include/x86_64/bits/io.h too large to diff
- musl-include/x86_64/bits/ioctl.h too large to diff
- musl-include/x86_64/bits/ioctl_fix.h too large to diff
- musl-include/x86_64/bits/ipc.h too large to diff
- musl-include/x86_64/bits/ipcstat.h too large to diff
- musl-include/x86_64/bits/kd.h too large to diff
- musl-include/x86_64/bits/limits.h too large to diff
- musl-include/x86_64/bits/link.h too large to diff
- musl-include/x86_64/bits/mman.h too large to diff
- musl-include/x86_64/bits/msg.h too large to diff
- musl-include/x86_64/bits/poll.h too large to diff
- musl-include/x86_64/bits/posix.h too large to diff
- musl-include/x86_64/bits/ptrace.h too large to diff
- musl-include/x86_64/bits/reg.h too large to diff
- musl-include/x86_64/bits/resource.h too large to diff
- musl-include/x86_64/bits/sem.h too large to diff
- musl-include/x86_64/bits/setjmp.h too large to diff
- musl-include/x86_64/bits/shm.h too large to diff
- musl-include/x86_64/bits/signal.h too large to diff
- musl-include/x86_64/bits/socket.h too large to diff
- musl-include/x86_64/bits/soundcard.h too large to diff
- musl-include/x86_64/bits/stat.h too large to diff
- musl-include/x86_64/bits/statfs.h too large to diff
- musl-include/x86_64/bits/stdint.h too large to diff
- musl-include/x86_64/bits/syscall.h too large to diff
- musl-include/x86_64/bits/termios.h too large to diff
- musl-include/x86_64/bits/user.h too large to diff
- musl-include/x86_64/bits/vt.h too large to diff
- musl-include/x86_64/byteswap.h too large to diff
- musl-include/x86_64/complex.h too large to diff
- musl-include/x86_64/cpio.h too large to diff
- musl-include/x86_64/crypt.h too large to diff
- musl-include/x86_64/ctype.h too large to diff
- musl-include/x86_64/dirent.h too large to diff
- musl-include/x86_64/dlfcn.h too large to diff
- musl-include/x86_64/elf.h too large to diff
- musl-include/x86_64/endian.h too large to diff
- musl-include/x86_64/err.h too large to diff
- musl-include/x86_64/errno.h too large to diff
- musl-include/x86_64/fcntl.h too large to diff
- musl-include/x86_64/features.h too large to diff
- musl-include/x86_64/fenv.h too large to diff
- musl-include/x86_64/float.h too large to diff
- musl-include/x86_64/fmtmsg.h too large to diff
- musl-include/x86_64/fnmatch.h too large to diff
- musl-include/x86_64/ftw.h too large to diff
- musl-include/x86_64/getopt.h too large to diff
- musl-include/x86_64/glob.h too large to diff
- musl-include/x86_64/grp.h too large to diff
- musl-include/x86_64/iconv.h too large to diff
- musl-include/x86_64/ifaddrs.h too large to diff
- musl-include/x86_64/inttypes.h too large to diff
- musl-include/x86_64/iso646.h too large to diff
- musl-include/x86_64/langinfo.h too large to diff
- musl-include/x86_64/lastlog.h too large to diff
- musl-include/x86_64/libgen.h too large to diff
- musl-include/x86_64/libintl.h too large to diff
- musl-include/x86_64/limits.h too large to diff
- musl-include/x86_64/link.h too large to diff
- musl-include/x86_64/locale.h too large to diff
- musl-include/x86_64/malloc.h too large to diff
- musl-include/x86_64/math.h too large to diff
- musl-include/x86_64/memory.h too large to diff
- musl-include/x86_64/mntent.h too large to diff
- musl-include/x86_64/monetary.h too large to diff
- musl-include/x86_64/mqueue.h too large to diff
- musl-include/x86_64/net/ethernet.h too large to diff
- musl-include/x86_64/net/if.h too large to diff
- musl-include/x86_64/net/if_arp.h too large to diff
- musl-include/x86_64/net/route.h too large to diff
- musl-include/x86_64/netdb.h too large to diff
- musl-include/x86_64/netinet/ether.h too large to diff
- musl-include/x86_64/netinet/icmp6.h too large to diff
- musl-include/x86_64/netinet/if_ether.h too large to diff
- musl-include/x86_64/netinet/igmp.h too large to diff
- musl-include/x86_64/netinet/in.h too large to diff
- musl-include/x86_64/netinet/in_systm.h too large to diff
- musl-include/x86_64/netinet/ip.h too large to diff
- musl-include/x86_64/netinet/ip6.h too large to diff
- musl-include/x86_64/netinet/ip_icmp.h too large to diff
- musl-include/x86_64/netinet/tcp.h too large to diff
- musl-include/x86_64/netinet/udp.h too large to diff
- musl-include/x86_64/netpacket/packet.h too large to diff
- musl-include/x86_64/nl_types.h too large to diff
- musl-include/x86_64/paths.h too large to diff
- musl-include/x86_64/poll.h too large to diff
- musl-include/x86_64/pthread.h too large to diff
- musl-include/x86_64/pty.h too large to diff
- musl-include/x86_64/pwd.h too large to diff
- musl-include/x86_64/regex.h too large to diff
- musl-include/x86_64/resolv.h too large to diff
- musl-include/x86_64/sched.h too large to diff
- musl-include/x86_64/scsi/scsi.h too large to diff
- musl-include/x86_64/scsi/scsi_ioctl.h too large to diff
- musl-include/x86_64/scsi/sg.h too large to diff
- musl-include/x86_64/search.h too large to diff
- musl-include/x86_64/semaphore.h too large to diff
- musl-include/x86_64/setjmp.h too large to diff
- musl-include/x86_64/shadow.h too large to diff
- musl-include/x86_64/signal.h too large to diff
- musl-include/x86_64/spawn.h too large to diff
- musl-include/x86_64/stdalign.h too large to diff
- musl-include/x86_64/stdarg.h too large to diff
- musl-include/x86_64/stdbool.h too large to diff
- musl-include/x86_64/stdc-predef.h too large to diff
- musl-include/x86_64/stddef.h too large to diff
- musl-include/x86_64/stdint.h too large to diff
- musl-include/x86_64/stdio.h too large to diff
- musl-include/x86_64/stdio_ext.h too large to diff
- musl-include/x86_64/stdlib.h too large to diff
- musl-include/x86_64/stdnoreturn.h too large to diff
- musl-include/x86_64/string.h too large to diff
- musl-include/x86_64/strings.h too large to diff
- musl-include/x86_64/stropts.h too large to diff
- musl-include/x86_64/sys/acct.h too large to diff
- musl-include/x86_64/sys/auxv.h too large to diff
- musl-include/x86_64/sys/cachectl.h too large to diff
- musl-include/x86_64/sys/dir.h too large to diff
- musl-include/x86_64/sys/epoll.h too large to diff
- musl-include/x86_64/sys/errno.h too large to diff
- musl-include/x86_64/sys/eventfd.h too large to diff
- musl-include/x86_64/sys/fanotify.h too large to diff
- musl-include/x86_64/sys/fcntl.h too large to diff
- musl-include/x86_64/sys/file.h too large to diff
- musl-include/x86_64/sys/fsuid.h too large to diff
- musl-include/x86_64/sys/inotify.h too large to diff
- musl-include/x86_64/sys/io.h too large to diff
- musl-include/x86_64/sys/ioctl.h too large to diff
- musl-include/x86_64/sys/ipc.h too large to diff
- musl-include/x86_64/sys/kd.h too large to diff
- musl-include/x86_64/sys/klog.h too large to diff
- musl-include/x86_64/sys/membarrier.h too large to diff
- musl-include/x86_64/sys/mman.h too large to diff
- musl-include/x86_64/sys/mount.h too large to diff
- musl-include/x86_64/sys/msg.h too large to diff
- musl-include/x86_64/sys/mtio.h too large to diff
- musl-include/x86_64/sys/param.h too large to diff
- musl-include/x86_64/sys/personality.h too large to diff
- musl-include/x86_64/sys/poll.h too large to diff
- musl-include/x86_64/sys/prctl.h too large to diff
- musl-include/x86_64/sys/procfs.h too large to diff
- musl-include/x86_64/sys/ptrace.h too large to diff
- musl-include/x86_64/sys/quota.h too large to diff
- musl-include/x86_64/sys/random.h too large to diff
- musl-include/x86_64/sys/reboot.h too large to diff
- musl-include/x86_64/sys/reg.h too large to diff
- musl-include/x86_64/sys/resource.h too large to diff
- musl-include/x86_64/sys/select.h too large to diff
- musl-include/x86_64/sys/sem.h too large to diff
- musl-include/x86_64/sys/sendfile.h too large to diff
- musl-include/x86_64/sys/shm.h too large to diff
- musl-include/x86_64/sys/signal.h too large to diff
- musl-include/x86_64/sys/signalfd.h too large to diff
- musl-include/x86_64/sys/socket.h too large to diff
- musl-include/x86_64/sys/soundcard.h too large to diff
- musl-include/x86_64/sys/stat.h too large to diff
- musl-include/x86_64/sys/statfs.h too large to diff
- musl-include/x86_64/sys/statvfs.h too large to diff
- musl-include/x86_64/sys/stropts.h too large to diff
- musl-include/x86_64/sys/swap.h too large to diff
- musl-include/x86_64/sys/syscall.h too large to diff
- musl-include/x86_64/sys/sysinfo.h too large to diff
- musl-include/x86_64/sys/syslog.h too large to diff
- musl-include/x86_64/sys/sysmacros.h too large to diff
- musl-include/x86_64/sys/termios.h too large to diff
- musl-include/x86_64/sys/time.h too large to diff
- musl-include/x86_64/sys/timeb.h too large to diff
- musl-include/x86_64/sys/timerfd.h too large to diff
- musl-include/x86_64/sys/times.h too large to diff
- musl-include/x86_64/sys/timex.h too large to diff
- musl-include/x86_64/sys/ttydefaults.h too large to diff
- musl-include/x86_64/sys/types.h too large to diff
- musl-include/x86_64/sys/ucontext.h too large to diff
- musl-include/x86_64/sys/uio.h too large to diff
- musl-include/x86_64/sys/un.h too large to diff
- musl-include/x86_64/sys/user.h too large to diff
- musl-include/x86_64/sys/utsname.h too large to diff
- musl-include/x86_64/sys/vfs.h too large to diff
- musl-include/x86_64/sys/vt.h too large to diff
- musl-include/x86_64/sys/wait.h too large to diff
- musl-include/x86_64/sys/xattr.h too large to diff
- musl-include/x86_64/syscall.h too large to diff
- musl-include/x86_64/sysexits.h too large to diff
- musl-include/x86_64/syslog.h too large to diff
- musl-include/x86_64/tar.h too large to diff
- musl-include/x86_64/termios.h too large to diff
- musl-include/x86_64/tgmath.h too large to diff
- musl-include/x86_64/threads.h too large to diff
- musl-include/x86_64/time.h too large to diff
- musl-include/x86_64/uchar.h too large to diff
- musl-include/x86_64/ucontext.h too large to diff
- musl-include/x86_64/ulimit.h too large to diff
- musl-include/x86_64/unistd.h too large to diff
- musl-include/x86_64/utime.h too large to diff
- musl-include/x86_64/utmp.h too large to diff
- musl-include/x86_64/utmpx.h too large to diff
- musl-include/x86_64/values.h too large to diff
- musl-include/x86_64/wait.h too large to diff
- musl-include/x86_64/wchar.h too large to diff
- musl-include/x86_64/wctype.h too large to diff
- musl-include/x86_64/wordexp.h too large to diff
- src-internal/Data/Digraph.hs too large to diff
- src-internal/HsBindgen.hs too large to diff
- src-internal/HsBindgen/Artefact.hs too large to diff
- src-internal/HsBindgen/ArtefactM.hs too large to diff
- src-internal/HsBindgen/Backend.hs too large to diff
- src-internal/HsBindgen/Backend/Category.hs too large to diff
- src-internal/HsBindgen/Backend/Category/ApplyChoice.hs too large to diff
- src-internal/HsBindgen/Backend/Extensions.hs too large to diff
- src-internal/HsBindgen/Backend/Global.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/AST.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/AST/CompletePragma.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/AST/Strategy.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/CallConv.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Haddock/Documentation.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Haddock/Translation.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Name.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Origin.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/Field.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/ForeignImport.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/Function.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/Instances.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/Monad.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/Newtype.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/Structure.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/ToFromFunPtr.hs too large to diff
- src-internal/HsBindgen/Backend/Hs/Translation/Union.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Names.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Pretty.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Pretty/CAPI.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Pretty/Comment.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Pretty/Common.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Pretty/Decl.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Pretty/Expr.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Pretty/Type.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Render.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Translation.hs too large to diff
- src-internal/HsBindgen/Backend/HsModule/Translation/Doxygen.hs too large to diff
- src-internal/HsBindgen/Backend/Level.hs too large to diff
- src-internal/HsBindgen/Backend/Runtime.hs too large to diff
- src-internal/HsBindgen/Backend/SHs/AST.hs too large to diff
- src-internal/HsBindgen/Backend/SHs/AST/Expr.hs too large to diff
- src-internal/HsBindgen/Backend/SHs/AST/Type.hs too large to diff
- src-internal/HsBindgen/Backend/SHs/Simplify.hs too large to diff
- src-internal/HsBindgen/Backend/SHs/Translation.hs too large to diff
- src-internal/HsBindgen/Backend/SHs/Translation/Common.hs too large to diff
- src-internal/HsBindgen/Backend/SHs/Translation/MapFunction.hs too large to diff
- src-internal/HsBindgen/Backend/TH/Translation.hs too large to diff
- src-internal/HsBindgen/Backend/UniqueSymbol.hs too large to diff
- src-internal/HsBindgen/BindingSpec.hs too large to diff
- src-internal/HsBindgen/BindingSpec/Gen.hs too large to diff
- src-internal/HsBindgen/BindingSpec/Private/Common.hs too large to diff
- src-internal/HsBindgen/BindingSpec/Private/Stdlib.hs too large to diff
- src-internal/HsBindgen/BindingSpec/Private/V1.hs too large to diff
- src-internal/HsBindgen/BindingSpec/Private/Version.hs too large to diff
- src-internal/HsBindgen/Boot.hs too large to diff
- src-internal/HsBindgen/Cache.hs too large to diff
- src-internal/HsBindgen/Clang.hs too large to diff
- src-internal/HsBindgen/Clang/CompareVersions.hs too large to diff
- src-internal/HsBindgen/Clang/Discover.hs too large to diff
- src-internal/HsBindgen/Clang/ExtraClangArgs.hs too large to diff
- src-internal/HsBindgen/Clang/Macos.hs too large to diff
- src-internal/HsBindgen/Clang/Tokens.hs too large to diff
- src-internal/HsBindgen/Config.hs too large to diff
- src-internal/HsBindgen/Config/ClangArgs.hs too large to diff
- src-internal/HsBindgen/Config/Internal.hs too large to diff
- src-internal/HsBindgen/Config/MangleCandidate.hs too large to diff
- src-internal/HsBindgen/Config/MangleCandidate/ReservedNames.hs too large to diff
- src-internal/HsBindgen/Config/Prelims.hs too large to diff
- src-internal/HsBindgen/Doxygen.hs too large to diff
- src-internal/HsBindgen/Eff.hs too large to diff
- src-internal/HsBindgen/Errors.hs too large to diff
- src-internal/HsBindgen/Frontend.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/DeclIndex.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/DeclIndex/ResolveMacro.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/DeclUseGraph.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/DeclUseGraph/Construction.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/DeclUseGraph/Definition.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/DeclUseGraph/Query.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/Deps.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/IncludeGraph.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/Typedefs.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/UnnamedIdUsage.hs too large to diff
- src-internal/HsBindgen/Frontend/Analysis/UseDeclGraph.hs too large to diff
- src-internal/HsBindgen/Frontend/DeclMeta.hs too large to diff
- src-internal/HsBindgen/Frontend/LanguageC.hs too large to diff
- src-internal/HsBindgen/Frontend/LanguageC/Error.hs too large to diff
- src-internal/HsBindgen/Frontend/LanguageC/Monad.hs too large to diff
- src-internal/HsBindgen/Frontend/LanguageC/PartialAST.hs too large to diff
- src-internal/HsBindgen/Frontend/LanguageC/PartialAST/FromLanC.hs too large to diff
- src-internal/HsBindgen/Frontend/LanguageC/PartialAST/ToBindgen.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/AdjustTypes.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/AdjustTypes/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ConstructTranslationUnit.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ConstructTranslationUnit/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/EnrichComments.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/EnrichComments/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/FillUnnamedIds.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/FillUnnamedIds/ChooseNames.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/FillUnnamedIds/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Final.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/MangleNames.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/MangleNames/CreateNames.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/MangleNames/DetectClashes.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/MangleNames/Error.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/MangleNames/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/MangleNames/Names.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/MangleNames/ResolveNames.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Builtin.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Context.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Decl.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Decl/Field.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Decl/ImplicitFields.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Decl/Macro.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Decl/Members.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Monad/Decl.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Monad/SourceRangeMap.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Monad/Type.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Msg.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Result.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Parse/Type.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/AST.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Flatten.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/IsPass/Msg.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Lexer.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Parser.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Preprocessor.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Printer.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Printer/Util.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Simplifier.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Tracer.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/PrepareReparse/Update.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ReparseMacroExpansions.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ReparseMacroExpansions/ForgetAnn.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ReparseMacroExpansions/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ReparseMacroExpansions/IsPass/Msg.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ReparseMacroExpansions/LanC.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ReparseMacroExpansions/Zip.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ReparseMacroExpansions/Zip/Error.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ResolveBindingSpecs.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/ResolveBindingSpecs/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Select.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/Select/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/SimplifyAST.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/SimplifyAST/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/TranslateTypes.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/TranslateTypes/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/TranslateTypes/IsPass/Msg.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/TranslateTypes/Translation.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/TypecheckMacros.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/TypecheckMacros/IsPass.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/TypecheckMacros/KnownTypes.hs too large to diff
- src-internal/HsBindgen/Frontend/Pass/TypecheckMacros/Typecheck.hs too large to diff
- src-internal/HsBindgen/Frontend/Predicate.hs too large to diff
- src-internal/HsBindgen/Frontend/PrettyC.hs too large to diff
- src-internal/HsBindgen/Frontend/ProcessIncludes.hs too large to diff
- src-internal/HsBindgen/Frontend/RootHeader.hs too large to diff
- src-internal/HsBindgen/Frontend/TranslationUnit.hs too large to diff
- src-internal/HsBindgen/Guasi.hs too large to diff
- src-internal/HsBindgen/IR/C.hs too large to diff
- src-internal/HsBindgen/IR/C/Conflict.hs too large to diff
- src-internal/HsBindgen/IR/C/Decl.hs too large to diff
- src-internal/HsBindgen/IR/C/DeclPath.hs too large to diff
- src-internal/HsBindgen/IR/C/HashDefine.hs too large to diff
- src-internal/HsBindgen/IR/C/HashIncludeArg.hs too large to diff
- src-internal/HsBindgen/IR/C/LocationInfo.hs too large to diff
- src-internal/HsBindgen/IR/C/Naming.hs too large to diff
- src-internal/HsBindgen/IR/C/PrettyPrinter.hs too large to diff
- src-internal/HsBindgen/IR/C/RootDirective.hs too large to diff
- src-internal/HsBindgen/IR/C/Type.hs too large to diff
- src-internal/HsBindgen/IR/Hs.hs too large to diff
- src-internal/HsBindgen/IR/Hs/Type.hs too large to diff
- src-internal/HsBindgen/IR/Pass.hs too large to diff
- src-internal/HsBindgen/IR/Pass/Ann.hs too large to diff
- src-internal/HsBindgen/IR/Pass/CommentDecl.hs too large to diff
- src-internal/HsBindgen/IR/Pass/Definition.hs too large to diff
- src-internal/HsBindgen/IR/Pass/ExtBinding.hs too large to diff
- src-internal/HsBindgen/IR/Pass/Id.hs too large to diff
- src-internal/HsBindgen/IR/Pass/Macro.hs too large to diff
- src-internal/HsBindgen/IR/Pass/Msg.hs too large to diff
- src-internal/HsBindgen/IR/Pass/ScopedName.hs too large to diff
- src-internal/HsBindgen/IR/Pass/Types.hs too large to diff
- src-internal/HsBindgen/IR/Translation.hs too large to diff
- src-internal/HsBindgen/Imports.hs too large to diff
- src-internal/HsBindgen/Instances.hs too large to diff
- src-internal/HsBindgen/Language/C.hs too large to diff
- src-internal/HsBindgen/Language/Haskell.hs too large to diff
- src-internal/HsBindgen/Macro/Empty.hs too large to diff
- src-internal/HsBindgen/Macro/Error.hs too large to diff
- src-internal/HsBindgen/Macro/Flip.hs too large to diff
- src-internal/HsBindgen/Macro/Interface.hs too large to diff
- src-internal/HsBindgen/Macro/Parse.hs too large to diff
- src-internal/HsBindgen/Macro/Raw.hs too large to diff
- src-internal/HsBindgen/Macro/Raw/Lang.hs too large to diff
- src-internal/HsBindgen/Macro/Raw/Parse.hs too large to diff
- src-internal/HsBindgen/Macro/Syntax.hs too large to diff
- src-internal/HsBindgen/Macro/Type.hs too large to diff
- src-internal/HsBindgen/Macro/UniqueExpansion.hs too large to diff
- src-internal/HsBindgen/Macro/UniqueExpansion/Parse.hs too large to diff
- src-internal/HsBindgen/Macro/UniqueExpansion/Types.hs too large to diff
- src-internal/HsBindgen/NameHint.hs too large to diff
- src-internal/HsBindgen/Orphans.hs too large to diff
- src-internal/HsBindgen/Resolve.hs too large to diff
- src-internal/HsBindgen/TH/Internal.hs too large to diff
- src-internal/HsBindgen/Test.hs too large to diff
- src-internal/HsBindgen/Test/C.hs too large to diff
- src-internal/HsBindgen/Test/Hs.hs too large to diff
- src-internal/HsBindgen/Test/Internal.hs too large to diff
- src-internal/HsBindgen/Test/Readme.hs too large to diff
- src-internal/HsBindgen/TraceMsg.hs too large to diff
- src-internal/HsBindgen/Util/Monad.hs too large to diff
- src-internal/HsBindgen/Util/Process.hs too large to diff
- src-internal/HsBindgen/Util/Rational.hs too large to diff
- src-internal/HsBindgen/Util/Tracer.hs too large to diff
- src-internal/Text/SimplePrettyPrint.hs too large to diff
- src/HsBindgen/Internal/Macro/CExpr.hs too large to diff
- src/HsBindgen/Internal/Macro/CExpr/Global.hs too large to diff
- src/HsBindgen/Internal/Macro/CExpr/Parse.hs too large to diff
- src/HsBindgen/Internal/Macro/CExpr/Resolution.hs too large to diff
- src/HsBindgen/Internal/Macro/CExpr/Translation/Type.hs too large to diff
- src/HsBindgen/Internal/Macro/CExpr/Translation/Value.hs too large to diff
- src/HsBindgen/Internal/Macro/CExpr/Type.hs too large to diff
- src/HsBindgen/Internal/Macro/CExpr/Typecheck.hs too large to diff
- src/HsBindgen/Macro.hs too large to diff
- src/HsBindgen/TH.hs too large to diff
- test-artefacts/fixtures/arrays/array/Example.hs too large to diff
- test-artefacts/fixtures/arrays/array/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/arrays/array/Example/Global.hs too large to diff
- test-artefacts/fixtures/arrays/array/Example/Safe.hs too large to diff
- test-artefacts/fixtures/arrays/array/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/arrays/array/bindingspec.yaml too large to diff
- test-artefacts/fixtures/arrays/array/th.txt too large to diff
- test-artefacts/fixtures/arrays/const_qualifier/Example.hs too large to diff
- test-artefacts/fixtures/arrays/const_qualifier/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/arrays/const_qualifier/Example/Safe.hs too large to diff
- test-artefacts/fixtures/arrays/const_qualifier/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/arrays/const_qualifier/bindingspec.yaml too large to diff
- test-artefacts/fixtures/arrays/const_qualifier/th.txt too large to diff
- test-artefacts/fixtures/arrays/multi_dim/Example.hs too large to diff
- test-artefacts/fixtures/arrays/multi_dim/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/arrays/multi_dim/Example/Safe.hs too large to diff
- test-artefacts/fixtures/arrays/multi_dim/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/arrays/multi_dim/bindingspec.yaml too large to diff
- test-artefacts/fixtures/arrays/multi_dim/th.txt too large to diff
- test-artefacts/fixtures/attributes/asm/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/attributes/asm/Example/Global.hs too large to diff
- test-artefacts/fixtures/attributes/asm/Example/Safe.hs too large to diff
- test-artefacts/fixtures/attributes/asm/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/attributes/asm/bindingspec.yaml too large to diff
- test-artefacts/fixtures/attributes/asm/th.txt too large to diff
- test-artefacts/fixtures/attributes/attributes/Example.hs too large to diff
- test-artefacts/fixtures/attributes/attributes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/attributes/attributes/th.txt too large to diff
- test-artefacts/fixtures/attributes/deprecated/bindingspec.yaml too large to diff
- test-artefacts/fixtures/attributes/deprecated/th.txt too large to diff
- test-artefacts/fixtures/attributes/type_attributes/Example.hs too large to diff
- test-artefacts/fixtures/attributes/type_attributes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/attributes/type_attributes/th.txt too large to diff
- test-artefacts/fixtures/attributes/visibility/edge-cases/nested_types/Example.hs too large to diff
- test-artefacts/fixtures/attributes/visibility/edge-cases/nested_types/bindingspec.yaml too large to diff
- test-artefacts/fixtures/attributes/visibility/edge-cases/nested_types/th.txt too large to diff
- test-artefacts/fixtures/attributes/visibility/functions/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/attributes/visibility/functions/Example/Safe.hs too large to diff
- test-artefacts/fixtures/attributes/visibility/functions/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/attributes/visibility/functions/bindingspec.yaml too large to diff
- test-artefacts/fixtures/attributes/visibility/functions/th.txt too large to diff
- test-artefacts/fixtures/attributes/visibility/types/Example.hs too large to diff
- test-artefacts/fixtures/attributes/visibility/types/bindingspec.yaml too large to diff
- test-artefacts/fixtures/attributes/visibility/types/th.txt too large to diff
- test-artefacts/fixtures/attributes/visibility/variables/Example/Global.hs too large to diff
- test-artefacts/fixtures/attributes/visibility/variables/bindingspec.yaml too large to diff
- test-artefacts/fixtures/attributes/visibility/variables/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/enum/closed/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/enum/closed/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/enum/closed/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/enum/mismatch/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/enum/mismatch/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/enum/mismatch/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/enum/open/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/enum/open/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/enum/open/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array_known_size/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array_known_size/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array_known_size/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array_known_size/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array_known_size/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/array_known_size/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/enum/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/enum/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/enum/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/enum/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/enum/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/enum/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function_pointer/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function_pointer/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function_pointer/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function_pointer/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function_pointer/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/function_pointer/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/struct/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/struct/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/struct/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/struct/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/struct/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/union/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/union/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/union/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/union/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/union/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/macro/union/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array_known_size/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array_known_size/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array_known_size/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array_known_size/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array_known_size/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/array_known_size/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/enum/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/enum/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/enum/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/enum/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/enum/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/enum/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function_pointer/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function_pointer/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function_pointer/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function_pointer/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function_pointer/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/function_pointer/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/struct/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/struct/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/struct/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/struct/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/struct/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/union/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/union/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/union/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/union/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/union/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/fun_arg/typedef/union/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_both/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_both/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_both/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_struct/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_struct/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_typedef/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_typedef/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/name/squash_typedef/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/name/type/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/name/type/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/name/type/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/omit_type/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/omit_type/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/omit_type/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/relative_include/sub/consumer/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/relative_include/sub/consumer/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/relative_include/sub/consumer/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/relative_include/sub/consumer/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/relative_include/sub/consumer/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/relative_include/sub/consumer/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/rep/emptydata/staticsize/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/rep/emptydata/staticsize/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/rep/emptydata/staticsize/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/bool/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/bool/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/bool/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/instances.1.c11-parse-all/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/instances.1.c11-parse-all/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/instances.1.c11-parse-all/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/instances.1.c23-parse-all/Example.hs too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/instances.1.c23-parse-all/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/instances.1.c23-parse-all/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/return_values/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/return_values/Example/Global.hs too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/return_values/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/return_values/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/return_values/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/stdlib/return_values/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/macro_trans_dep_missing/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/macro_trans_dep_missing/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/macro_trans_dep_missing/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/macro_trans_dep_missing/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/macro_trans_dep_missing/th.txt too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/typedef_trans_dep_missing/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/typedef_trans_dep_missing/Example/Safe.hs too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/typedef_trans_dep_missing/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/typedef_trans_dep_missing/bindingspec.yaml too large to diff
- test-artefacts/fixtures/binding-specs/trans_dep/typedef_trans_dep_missing/th.txt too large to diff
- test-artefacts/fixtures/comprehensive/c2hsc/Example.hs too large to diff
- test-artefacts/fixtures/comprehensive/c2hsc/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/comprehensive/c2hsc/Example/Global.hs too large to diff
- test-artefacts/fixtures/comprehensive/c2hsc/Example/Safe.hs too large to diff
- test-artefacts/fixtures/comprehensive/c2hsc/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/comprehensive/c2hsc/bindingspec.yaml too large to diff
- test-artefacts/fixtures/comprehensive/c2hsc/th.txt too large to diff
- test-artefacts/fixtures/comprehensive/smoke/Example.hs too large to diff
- test-artefacts/fixtures/comprehensive/smoke/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/comprehensive/smoke/Example/Global.hs too large to diff
- test-artefacts/fixtures/comprehensive/smoke/Example/Safe.hs too large to diff
- test-artefacts/fixtures/comprehensive/smoke/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/comprehensive/smoke/bindingspec.yaml too large to diff
- test-artefacts/fixtures/comprehensive/smoke/th.txt too large to diff
- test-artefacts/fixtures/declarations/declaration_unselected_b/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/declaration_unselected_b/th.txt too large to diff
- test-artefacts/fixtures/declarations/declarations_required_for_scoping/Example.hs too large to diff
- test-artefacts/fixtures/declarations/declarations_required_for_scoping/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/declarations/declarations_required_for_scoping/Example/Safe.hs too large to diff
- test-artefacts/fixtures/declarations/declarations_required_for_scoping/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/declarations/declarations_required_for_scoping/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/declarations_required_for_scoping/th.txt too large to diff
- test-artefacts/fixtures/declarations/definitions/Example.hs too large to diff
- test-artefacts/fixtures/declarations/definitions/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/declarations/definitions/Example/Global.hs too large to diff
- test-artefacts/fixtures/declarations/definitions/Example/Safe.hs too large to diff
- test-artefacts/fixtures/declarations/definitions/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/declarations/definitions/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/definitions/th.txt too large to diff
- test-artefacts/fixtures/declarations/duplicate_field_name_omit/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/duplicate_field_name_omit/th.txt too large to diff
- test-artefacts/fixtures/declarations/field_name_reuse_omit/Example.hs too large to diff
- test-artefacts/fixtures/declarations/field_name_reuse_omit/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/declarations/field_name_reuse_omit/Example/Global.hs too large to diff
- test-artefacts/fixtures/declarations/field_name_reuse_omit/Example/Safe.hs too large to diff
- test-artefacts/fixtures/declarations/field_name_reuse_omit/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/declarations/field_name_reuse_omit/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/field_name_reuse_omit/th.txt too large to diff
- test-artefacts/fixtures/declarations/forward_declaration/Example.hs too large to diff
- test-artefacts/fixtures/declarations/forward_declaration/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/forward_declaration/th.txt too large to diff
- test-artefacts/fixtures/declarations/name_collision/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/name_collision/th.txt too large to diff
- test-artefacts/fixtures/declarations/name_collision_aux/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/name_collision_aux/th.txt too large to diff
- test-artefacts/fixtures/declarations/opaque_declaration/Example.hs too large to diff
- test-artefacts/fixtures/declarations/opaque_declaration/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/opaque_declaration/th.txt too large to diff
- test-artefacts/fixtures/declarations/redeclaration/Example.hs too large to diff
- test-artefacts/fixtures/declarations/redeclaration/Example/Global.hs too large to diff
- test-artefacts/fixtures/declarations/redeclaration/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/redeclaration/th.txt too large to diff
- test-artefacts/fixtures/declarations/redeclaration_main_header/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/declarations/redeclaration_main_header/Example/Safe.hs too large to diff
- test-artefacts/fixtures/declarations/redeclaration_main_header/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/declarations/redeclaration_main_header/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/redeclaration_main_header/th.txt too large to diff
- test-artefacts/fixtures/declarations/select_scoping/Example.hs too large to diff
- test-artefacts/fixtures/declarations/select_scoping/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/select_scoping/th.txt too large to diff
- test-artefacts/fixtures/declarations/tentative_definitions/Example/Global.hs too large to diff
- test-artefacts/fixtures/declarations/tentative_definitions/bindingspec.yaml too large to diff
- test-artefacts/fixtures/declarations/tentative_definitions/th.txt too large to diff
- test-artefacts/fixtures/documentation/data_kind_pragma/Example.hs too large to diff
- test-artefacts/fixtures/documentation/data_kind_pragma/bindingspec.yaml too large to diff
- test-artefacts/fixtures/documentation/data_kind_pragma/th.txt too large to diff
- test-artefacts/fixtures/documentation/doxygen_docs/Example.hs too large to diff
- test-artefacts/fixtures/documentation/doxygen_docs/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/documentation/doxygen_docs/Example/Global.hs too large to diff
- test-artefacts/fixtures/documentation/doxygen_docs/Example/Safe.hs too large to diff
- test-artefacts/fixtures/documentation/doxygen_docs/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/documentation/doxygen_docs/bindingspec.yaml too large to diff
- test-artefacts/fixtures/documentation/doxygen_docs/th.txt too large to diff
- test-artefacts/fixtures/documentation/javadoc_banner/Example.hs too large to diff
- test-artefacts/fixtures/documentation/javadoc_banner/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/documentation/javadoc_banner/Example/Safe.hs too large to diff
- test-artefacts/fixtures/documentation/javadoc_banner/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/documentation/javadoc_banner/bindingspec.yaml too large to diff
- test-artefacts/fixtures/documentation/javadoc_banner/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/adios/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/adios/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/adios/Example/Global.hs too large to diff
- test-artefacts/fixtures/edge-cases/adios/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/adios/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/adios/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/adios/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/aux_funptr_newtypes/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/aux_funptr_newtypes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/aux_funptr_newtypes/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/clang_generated_collision/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/clang_generated_collision/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/distilled_lib_1/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/distilled_lib_1/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/distilled_lib_1/Example/Global.hs too large to diff
- test-artefacts/fixtures/edge-cases/distilled_lib_1/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/distilled_lib_1/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/distilled_lib_1/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/distilled_lib_1/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/duplicate/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/duplicate/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/duplicate_record_field/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/duplicate_record_field/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/duplicate_record_field/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/enum_as_array_size/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/enum_as_array_size/Example/Global.hs too large to diff
- test-artefacts/fixtures/edge-cases/enum_as_array_size/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/enum_as_array_size/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/flam/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/flam/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/flam/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/flam_functions/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/flam_functions/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/flam_functions/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/flam_functions/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/flam_functions/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/flam_functions/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/headers/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/headers/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/include_macro_parent/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/include_macro_parent/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/include_macro_parent/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/iterator/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/iterator/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/iterator/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/iterator/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/iterator/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/iterator/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/mangle_fun_param_names/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/mangle_fun_param_names/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/mangle_fun_param_names/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/mangle_fun_param_names/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/mangle_fun_param_names/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/mangle_fun_param_names/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/names/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/names/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/names/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/names/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/names/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/ordinary_unnamed_decl_parent/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/ordinary_unnamed_decl_parent/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/ordinary_unnamed_decl_parent/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/ordinary_unnamed_decl_parent/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/ordinary_unnamed_decl_parent/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/prelude_names/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/prelude_names/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/prelude_names/Example/Global.hs too large to diff
- test-artefacts/fixtures/edge-cases/prelude_names/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/prelude_names/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/prelude_names/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/prelude_names/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/select_no_match/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/select_no_match/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/spec_examples/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/spec_examples/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/spec_examples/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/spec_examples/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/spec_examples/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/spec_examples/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/thread_local/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/thread_local/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/typedef_bitfield/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/typedef_bitfield/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/typedef_bitfield/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/typedef_void/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/typedef_void/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/typedef_void/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_fields/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_fields/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_fields/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_typedefs/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_typedefs/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_typedefs/Example/Safe.hs too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_typedefs/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_typedefs/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/unnamed_type_multiple_typedefs/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/unsupported_builtin/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/unsupported_builtin/th.txt too large to diff
- test-artefacts/fixtures/edge-cases/uses_utf8/Example.hs too large to diff
- test-artefacts/fixtures/edge-cases/uses_utf8/bindingspec.yaml too large to diff
- test-artefacts/fixtures/edge-cases/uses_utf8/th.txt too large to diff
- test-artefacts/fixtures/functions/callbacks/Example.hs too large to diff
- test-artefacts/fixtures/functions/callbacks/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/callbacks/Example/Global.hs too large to diff
- test-artefacts/fixtures/functions/callbacks/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/callbacks/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/callbacks/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/callbacks/th.txt too large to diff
- test-artefacts/fixtures/functions/circular_dependency_fun/Example.hs too large to diff
- test-artefacts/fixtures/functions/circular_dependency_fun/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/circular_dependency_fun/th.txt too large to diff
- test-artefacts/fixtures/functions/decls_in_signature/Example.hs too large to diff
- test-artefacts/fixtures/functions/decls_in_signature/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/decls_in_signature/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/decls_in_signature/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/decls_in_signature/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/decls_in_signature/th.txt too large to diff
- test-artefacts/fixtures/functions/fun_attributes/Example.hs too large to diff
- test-artefacts/fixtures/functions/fun_attributes/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/fun_attributes/Example/Global.hs too large to diff
- test-artefacts/fixtures/functions/fun_attributes/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/fun_attributes/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/fun_attributes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/fun_attributes/th.txt too large to diff
- test-artefacts/fixtures/functions/fun_attributes_conflict/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/fun_attributes_conflict/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/fun_attributes_conflict/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/fun_attributes_conflict/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/fun_attributes_conflict/th.txt too large to diff
- test-artefacts/fixtures/functions/hash_defines.1.select_all/Example.hs too large to diff
- test-artefacts/fixtures/functions/hash_defines.1.select_all/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/hash_defines.1.select_all/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/hash_defines.1.select_all/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/hash_defines.1.select_all/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/hash_defines.1.select_all/th.txt too large to diff
- test-artefacts/fixtures/functions/hash_defines/Example.hs too large to diff
- test-artefacts/fixtures/functions/hash_defines/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/hash_defines/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/hash_defines/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/hash_defines/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/hash_defines/th.txt too large to diff
- test-artefacts/fixtures/functions/heap_types/struct/Example.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/heap_types/struct/th.txt too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const/Example.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const/th.txt too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_member/Example.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_member/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_member/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_member/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_member/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_member/th.txt too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_typedef/Example.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_typedef/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_typedef/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_typedef/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_typedef/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/heap_types/struct_const_typedef/th.txt too large to diff
- test-artefacts/fixtures/functions/heap_types/union/Example.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/heap_types/union/th.txt too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const/Example.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const/th.txt too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_member/Example.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_member/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_member/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_member/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_member/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_member/th.txt too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_typedef/Example.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_typedef/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_typedef/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_typedef/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_typedef/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/heap_types/union_const_typedef/th.txt too large to diff
- test-artefacts/fixtures/functions/libc_builtins/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/libc_builtins/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/libc_builtins/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/libc_builtins/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/libc_builtins/th.txt too large to diff
- test-artefacts/fixtures/functions/not_visible_decl/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/not_visible_decl/th.txt too large to diff
- test-artefacts/fixtures/functions/simple_func.1.rename/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/simple_func.1.rename/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/simple_func.1.rename/th.txt too large to diff
- test-artefacts/fixtures/functions/simple_func/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/simple_func/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/simple_func/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/simple_func/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/simple_func/th.txt too large to diff
- test-artefacts/fixtures/functions/typedef_funptr/Example.hs too large to diff
- test-artefacts/fixtures/functions/typedef_funptr/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/typedef_funptr/th.txt too large to diff
- test-artefacts/fixtures/functions/varargs/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/functions/varargs/Example/Safe.hs too large to diff
- test-artefacts/fixtures/functions/varargs/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/functions/varargs/bindingspec.yaml too large to diff
- test-artefacts/fixtures/functions/varargs/th.txt too large to diff
- test-artefacts/fixtures/globals/globals/Example.hs too large to diff
- test-artefacts/fixtures/globals/globals/Example/Global.hs too large to diff
- test-artefacts/fixtures/globals/globals/bindingspec.yaml too large to diff
- test-artefacts/fixtures/globals/globals/th.txt too large to diff
- test-artefacts/fixtures/globals/untagged/Example.hs too large to diff
- test-artefacts/fixtures/globals/untagged/Example/Global.hs too large to diff
- test-artefacts/fixtures/globals/untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/globals/untagged/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/redefined.hash_define/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/redefined/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/redefined/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/redefined/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/uses.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/uses.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/uses.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/uses.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/uses.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/uses.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/uses.no_slicing.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/uses.no_slicing.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/uses.no_slicing.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/uses.no_slicing.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/uses.no_slicing.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/uses.no_slicing.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/uses.no_slicing/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/uses.no_slicing/th.txt too large to diff
- test-artefacts/fixtures/macros/command_line/uses/Example.hs too large to diff
- test-artefacts/fixtures/macros/command_line/uses/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/command_line/uses/th.txt too large to diff
- test-artefacts/fixtures/macros/empty_body.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/empty_body.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/empty_body.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/empty_body.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/empty_body.parse_empty_macros.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/empty_body.parse_empty_macros.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/empty_body.parse_empty_macros.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/empty_body.parse_empty_macros.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/empty_body.parse_empty_macros.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/empty_body.parse_empty_macros/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/empty_body.parse_empty_macros/th.txt too large to diff
- test-artefacts/fixtures/macros/empty_body/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/empty_body/th.txt too large to diff
- test-artefacts/fixtures/macros/gnu_variadic.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/gnu_variadic.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/gnu_variadic.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/gnu_variadic.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/gnu_variadic.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/gnu_variadic/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/gnu_variadic/th.txt too large to diff
- test-artefacts/fixtures/macros/issue_890.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/issue_890.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/issue_890.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/issue_890.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/issue_890.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/issue_890/Example.hs too large to diff
- test-artefacts/fixtures/macros/issue_890/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/issue_890/th.txt too large to diff
- test-artefacts/fixtures/macros/keyword_params.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/keyword_params.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/keyword_params.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/keyword_params.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/keyword_params.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/keyword_params/Example.hs too large to diff
- test-artefacts/fixtures/macros/keyword_params/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/keyword_params/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_comma.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_comma.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_comma.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_comma.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_comma.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_comma/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_comma/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_comma/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_ext_binding_dep/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_functions.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_functions.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_functions.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_functions.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_functions.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_functions/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_functions/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_functions/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_in_fundecl_vs_typedef/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_redefines_global/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.default.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.default.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.default.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.default.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.default.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.default/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.default/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.enable_macro_warnings.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.enable_macro_warnings.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.enable_macro_warnings.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.enable_macro_warnings.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.enable_macro_warnings.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.enable_macro_warnings/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_resolution_log_level.enable_macro_warnings/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_strings.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_strings.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_strings.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_strings.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_strings.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_strings/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_strings/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_strings/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_ptr_qualifiers.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_ptr_qualifiers.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_ptr_qualifiers.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_type_ptr_qualifiers.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_ptr_qualifiers.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_ptr_qualifiers/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_type_ptr_qualifiers/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_ptr_qualifiers/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_unresolved_tagged.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_unresolved_tagged.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_unresolved_tagged.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_type_unresolved_tagged.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_unresolved_tagged.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_unresolved_tagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_unresolved_tagged/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_void.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_void.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_void.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_type_void.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_void.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_type_void/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_type_void/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_typedef_struct/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_types.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_types.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_types.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_types.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_types.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_types.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macro_types/Example.hs too large to diff
- test-artefacts/fixtures/macros/macro_types/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macro_types/th.txt too large to diff
- test-artefacts/fixtures/macros/macros.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macros.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/macros.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/macros.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macros.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/macros/Example.hs too large to diff
- test-artefacts/fixtures/macros/macros/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/macros/th.txt too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like/Example.hs too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/object_like_as_function_like/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/elaborate.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/elaborate.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/elaborate.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/elaborate.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/elaborate.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/elaborate.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/elaborate/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/elaborate/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/elaborate/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/first_parse_then_typecheck.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/first_parse_then_typecheck.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/first_parse_then_typecheck.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/first_parse_then_typecheck.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/first_parse_then_typecheck.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/first_parse_then_typecheck/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/first_parse_then_typecheck/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/first_parse_then_typecheck/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/intermittent_include_conditional/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/macro_typedef_scope_multiple/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/simple.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/simple.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/simple.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/simple.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/simple.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/parse/simple/Example.hs too large to diff
- test-artefacts/fixtures/macros/parse/simple/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/parse/simple/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/def_undef_def/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/different.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/different/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/different/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/different/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/different_value.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/different_value.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/different_value.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/different_value.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/different_value/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/different_value/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_semantics/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_syntax/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_value.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_value.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_value.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_value.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_value.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_value/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_value/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/identical_value/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/main_header.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/main_header.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/main_header.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/main_header.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/main_header.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/main_header/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/main_header/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/main_header/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/noguard.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/noguard.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/noguard.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/noguard.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/noguard.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/noguard/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/noguard/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/noguard/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/same_line_tag_field/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic/Example.hs too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/redeclaration/variadic/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/arithmetic_types/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/cref_attributes/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/defer_wrong/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/end_in_macro_arg/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/functions.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/functions.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/functions.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/functions.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/functions/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/functions/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/functions/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/gnu_attributes/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_struct/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_typedef/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_union/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/struct_in_variable/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_struct/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_typedef/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_union/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable.1.empty/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable.2.raw/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable/Example.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable/Example/Global.hs too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/reparse/nesting/union_in_variable/th.txt too large to diff
- test-artefacts/fixtures/macros/reparse/th.txt too large to diff
- test-artefacts/fixtures/macros/undef.1.empty/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/undef.1.empty/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/undef.1.empty/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/undef.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/undef.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/undef.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/undef.2.raw/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/undef.2.raw/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/undef.2.raw/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/undef.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/undef.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/undef/Example.hs too large to diff
- test-artefacts/fixtures/macros/undef/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/macros/undef/Example/Safe.hs too large to diff
- test-artefacts/fixtures/macros/undef/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/macros/undef/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/undef/th.txt too large to diff
- test-artefacts/fixtures/macros/wrong_source_location.1.empty/Example.hs too large to diff
- test-artefacts/fixtures/macros/wrong_source_location.1.empty/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/wrong_source_location.1.empty/th.txt too large to diff
- test-artefacts/fixtures/macros/wrong_source_location.2.raw/Example.hs too large to diff
- test-artefacts/fixtures/macros/wrong_source_location.2.raw/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/wrong_source_location.2.raw/th.txt too large to diff
- test-artefacts/fixtures/macros/wrong_source_location/Example.hs too large to diff
- test-artefacts/fixtures/macros/wrong_source_location/bindingspec.yaml too large to diff
- test-artefacts/fixtures/macros/wrong_source_location/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/circular_includes/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/circular_includes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/circular_includes/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/circular_macro/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/circular_macro/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/delay_traces/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/delay_traces/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_selected/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_selected/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_selected/Example/Safe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_selected/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_selected/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_selected/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_unselected/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_unselected/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_unselected/Example/Safe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_unselected/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_unselected/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/macro_unselected/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_selected/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_selected/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_selected/Example/Safe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_selected/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_selected/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_selected/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_unselected/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_unselected/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_unselected/Example/Safe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_unselected/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_unselected/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/program-slicing/typedef_unselected/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_selection/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_selection/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_selection/Example/Safe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_selection/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_selection/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_selection/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_simple/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_simple/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_simple/Example/Safe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_simple/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_simple/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/program_slicing_simple/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_bad/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_bad/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_bad/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.1.deselect_failed/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.1.deselect_failed/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.1.deselect_failed/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.2.program_slicing/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.2.program_slicing/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.2.program_slicing/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.3.select_ok/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.3.select_ok/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail.3.select_ok/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_fail/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_foo/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_foo/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_matches_c_names.1.positive_case/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_matches_c_names.1.positive_case/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_matches_c_names.1.positive_case/Example/Safe.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_matches_c_names.1.positive_case/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_matches_c_names.1.positive_case/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_matches_c_names.1.positive_case/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_matches_c_names.2.negative_case/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_matches_c_names.2.negative_case/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_merge_traces/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_merge_traces/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_omit_external_a/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_omit_external_a/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_omit_external_a/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_omit_external_b/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/selection_omit_external_b/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_omit_external_b/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_omit_prescriptive/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_omit_prescriptive/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/selection_squash_typedef/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/selection_squash_typedef/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/typedef_analysis/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/typedef_analysis/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/typedef_analysis/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/typedef_block/Example.hs too large to diff
- test-artefacts/fixtures/program-analysis/typedef_block/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/typedef_block/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/typedef_name_clash/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/typedef_name_clash/th.txt too large to diff
- test-artefacts/fixtures/program-analysis/typedef_suffix_clash/bindingspec.yaml too large to diff
- test-artefacts/fixtures/program-analysis/typedef_suffix_clash/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/anon_in_nonanon/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/anon_in_nonanon/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/anon_in_nonanon/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/bitfield/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/bitfield/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/bitfield/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/drop_indirect_fields_1/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/drop_indirect_fields_1/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/drop_indirect_fields_1/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/drop_indirect_fields_2/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/drop_indirect_fields_2/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/drop_indirect_fields_2/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/duplicate_field_names/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/duplicate_field_names/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/duplicate_field_names/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/empty_anon/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/empty_anon/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/multi_nesting.omit_field_prefixes/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/multi_nesting.omit_field_prefixes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/multi_nesting.omit_field_prefixes/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/multi_nesting/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/multi_nesting/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/multi_nesting/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/padding/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/padding/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/padding/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/reparse/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/reparse/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/edge-cases/reparse/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_enum_tagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_enum_tagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_enum_tagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_enum_untagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_enum_untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_enum_untagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_struct_tagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_struct_tagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_struct_tagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_struct_untagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_struct_untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_struct_untagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_union_tagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_union_tagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_union_tagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_union_untagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_union_untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/multi_nesting_union_untagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_enum_tagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_enum_tagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_enum_tagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_enum_untagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_enum_untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_enum_untagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_struct_tagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_struct_tagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_struct_tagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_struct_untagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_struct_untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_struct_untagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_union_tagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_union_tagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_union_tagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_union_untagged/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_union_untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/indirect-fields/single_nesting_union_untagged/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/struct/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/struct/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/struct_in_struct/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/struct_in_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/struct_in_struct/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/struct_in_union/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/struct_in_union/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/struct_in_union/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/union/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/union/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/union/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/union_in_struct/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/union_in_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/union_in_struct/th.txt too large to diff
- test-artefacts/fixtures/types/anonymous/union_in_union/Example.hs too large to diff
- test-artefacts/fixtures/types/anonymous/union_in_union/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/anonymous/union_in_union/th.txt too large to diff
- test-artefacts/fixtures/types/complex/complex_non_float_test/Example/Global.hs too large to diff
- test-artefacts/fixtures/types/complex/complex_non_float_test/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/complex/complex_non_float_test/th.txt too large to diff
- test-artefacts/fixtures/types/complex/hsb_complex_test/Example.hs too large to diff
- test-artefacts/fixtures/types/complex/hsb_complex_test/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/types/complex/hsb_complex_test/Example/Global.hs too large to diff
- test-artefacts/fixtures/types/complex/hsb_complex_test/Example/Safe.hs too large to diff
- test-artefacts/fixtures/types/complex/hsb_complex_test/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/types/complex/hsb_complex_test/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/complex/hsb_complex_test/th.txt too large to diff
- test-artefacts/fixtures/types/complex/vector_test/Example.hs too large to diff
- test-artefacts/fixtures/types/complex/vector_test/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/types/complex/vector_test/Example/Safe.hs too large to diff
- test-artefacts/fixtures/types/complex/vector_test/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/types/complex/vector_test/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/complex/vector_test/th.txt too large to diff
- test-artefacts/fixtures/types/enums/enum_cpp_syntax/Example.hs too large to diff
- test-artefacts/fixtures/types/enums/enum_cpp_syntax/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/enums/enum_cpp_syntax/th.txt too large to diff
- test-artefacts/fixtures/types/enums/enum_unsigned_values/Example.hs too large to diff
- test-artefacts/fixtures/types/enums/enum_unsigned_values/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/enums/enum_unsigned_values/th.txt too large to diff
- test-artefacts/fixtures/types/enums/enums/Example.hs too large to diff
- test-artefacts/fixtures/types/enums/enums/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/enums/enums/th.txt too large to diff
- test-artefacts/fixtures/types/enums/nested_enums/Example.hs too large to diff
- test-artefacts/fixtures/types/enums/nested_enums/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/enums/nested_enums/th.txt too large to diff
- test-artefacts/fixtures/types/enums/untagged_enum_toplevel/Example.hs too large to diff
- test-artefacts/fixtures/types/enums/untagged_enum_toplevel/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/enums/untagged_enum_toplevel/th.txt too large to diff
- test-artefacts/fixtures/types/nested/nested_types/Example.hs too large to diff
- test-artefacts/fixtures/types/nested/nested_types/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/nested/nested_types/th.txt too large to diff
- test-artefacts/fixtures/types/primitives/bool/Example.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/primitives/bool/th.txt too large to diff
- test-artefacts/fixtures/types/primitives/bool_c23/Example/Global.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_c23/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/primitives/bool_c23/th.txt too large to diff
- test-artefacts/fixtures/types/primitives/bool_macro_override/Example.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_macro_override/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_macro_override/Example/Safe.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_macro_override/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_macro_override/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/primitives/bool_macro_override/th.txt too large to diff
- test-artefacts/fixtures/types/primitives/bool_typedef_override/Example.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_typedef_override/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_typedef_override/Example/Safe.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_typedef_override/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/types/primitives/bool_typedef_override/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/primitives/bool_typedef_override/th.txt too large to diff
- test-artefacts/fixtures/types/primitives/fixedwidth/Example.hs too large to diff
- test-artefacts/fixtures/types/primitives/fixedwidth/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/primitives/fixedwidth/th.txt too large to diff
- test-artefacts/fixtures/types/primitives/least_fast/Example.hs too large to diff
- test-artefacts/fixtures/types/primitives/least_fast/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/types/primitives/least_fast/Example/Safe.hs too large to diff
- test-artefacts/fixtures/types/primitives/least_fast/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/types/primitives/least_fast/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/primitives/least_fast/th.txt too large to diff
- test-artefacts/fixtures/types/primitives/primitive_insts/Example.hs too large to diff
- test-artefacts/fixtures/types/primitives/primitive_insts/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/primitives/primitive_insts/th.txt too large to diff
- test-artefacts/fixtures/types/primitives/primitive_types/Example.hs too large to diff
- test-artefacts/fixtures/types/primitives/primitive_types/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/primitives/primitive_types/th.txt too large to diff
- test-artefacts/fixtures/types/qualifiers/const_typedefs/Example.hs too large to diff
- test-artefacts/fixtures/types/qualifiers/const_typedefs/Example/Global.hs too large to diff
- test-artefacts/fixtures/types/qualifiers/const_typedefs/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/qualifiers/const_typedefs/th.txt too large to diff
- test-artefacts/fixtures/types/qualifiers/type_qualifiers/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/types/qualifiers/type_qualifiers/Example/Global.hs too large to diff
- test-artefacts/fixtures/types/qualifiers/type_qualifiers/Example/Safe.hs too large to diff
- test-artefacts/fixtures/types/qualifiers/type_qualifiers/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/types/qualifiers/type_qualifiers/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/qualifiers/type_qualifiers/th.txt too large to diff
- test-artefacts/fixtures/types/scoping/deep_nesting/Example.hs too large to diff
- test-artefacts/fixtures/types/scoping/deep_nesting/Example/Global.hs too large to diff
- test-artefacts/fixtures/types/scoping/deep_nesting/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/scoping/deep_nesting/th.txt too large to diff
- test-artefacts/fixtures/types/scoping/nesting/Example.hs too large to diff
- test-artefacts/fixtures/types/scoping/nesting/Example/Global.hs too large to diff
- test-artefacts/fixtures/types/scoping/nesting/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/scoping/nesting/th.txt too large to diff
- test-artefacts/fixtures/types/scoping/wide_nesting/Example.hs too large to diff
- test-artefacts/fixtures/types/scoping/wide_nesting/Example/Global.hs too large to diff
- test-artefacts/fixtures/types/scoping/wide_nesting/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/scoping/wide_nesting/th.txt too large to diff
- test-artefacts/fixtures/types/special/long_double/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/special/long_double/th.txt too large to diff
- test-artefacts/fixtures/types/special/parse_failure_long_double/Example.hs too large to diff
- test-artefacts/fixtures/types/special/parse_failure_long_double/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/types/special/parse_failure_long_double/Example/Safe.hs too large to diff
- test-artefacts/fixtures/types/special/parse_failure_long_double/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/types/special/parse_failure_long_double/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/special/parse_failure_long_double/th.txt too large to diff
- test-artefacts/fixtures/types/special/small_floats/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/special/small_floats/th.txt too large to diff
- test-artefacts/fixtures/types/structs/bitfields/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/bitfields/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/bitfields/th.txt too large to diff
- test-artefacts/fixtures/types/structs/circular_dependency_struct/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/circular_dependency_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/circular_dependency_struct/th.txt too large to diff
- test-artefacts/fixtures/types/structs/padding/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/padding/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/padding/th.txt too large to diff
- test-artefacts/fixtures/types/structs/recursive_struct/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/recursive_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/recursive_struct/th.txt too large to diff
- test-artefacts/fixtures/types/structs/simple_structs.omit_field_prefixes/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/simple_structs.omit_field_prefixes/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/simple_structs.omit_field_prefixes/th.txt too large to diff
- test-artefacts/fixtures/types/structs/simple_structs.post_qualified/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/simple_structs.post_qualified/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/simple_structs.post_qualified/th.txt too large to diff
- test-artefacts/fixtures/types/structs/simple_structs/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/simple_structs/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/simple_structs/th.txt too large to diff
- test-artefacts/fixtures/types/structs/struct_arg/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/struct_arg/Example/FunPtr.hs too large to diff
- test-artefacts/fixtures/types/structs/struct_arg/Example/Safe.hs too large to diff
- test-artefacts/fixtures/types/structs/struct_arg/Example/Unsafe.hs too large to diff
- test-artefacts/fixtures/types/structs/struct_arg/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/struct_arg/th.txt too large to diff
- test-artefacts/fixtures/types/structs/tagged_vs_untagged/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/tagged_vs_untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/tagged_vs_untagged/th.txt too large to diff
- test-artefacts/fixtures/types/structs/untagged/Example.hs too large to diff
- test-artefacts/fixtures/types/structs/untagged/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/untagged/th.txt too large to diff
- test-artefacts/fixtures/types/structs/untagged_struct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/structs/untagged_struct/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/array/Example.hs too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/array/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/array/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/block/Example.hs too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/block/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/block/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/direct/Example.hs too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/direct/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/direct/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/multi_level/Example.hs too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/multi_level/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/multi_level/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/pointer/Example.hs too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/pointer/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/pointer/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/qual/Example.hs too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/qual/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/auxiliary/function-pointer/qual/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/typedef_vs_macro/Example.hs too large to diff
- test-artefacts/fixtures/types/typedefs/typedef_vs_macro/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/typedef_vs_macro/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/typedefs/Example.hs too large to diff
- test-artefacts/fixtures/types/typedefs/typedefs/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/typedefs/th.txt too large to diff
- test-artefacts/fixtures/types/typedefs/typenames/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/typedefs/typenames/th.txt too large to diff
- test-artefacts/fixtures/types/unions/bitfields/Example.hs too large to diff
- test-artefacts/fixtures/types/unions/bitfields/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/unions/bitfields/th.txt too large to diff
- test-artefacts/fixtures/types/unions/nested_unions/Example.hs too large to diff
- test-artefacts/fixtures/types/unions/nested_unions/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/unions/nested_unions/th.txt too large to diff
- test-artefacts/fixtures/types/unions/unions/Example.hs too large to diff
- test-artefacts/fixtures/types/unions/unions/bindingspec.yaml too large to diff
- test-artefacts/fixtures/types/unions/unions/th.txt too large to diff
- test-artefacts/headers/comments.h too large to diff
- test-artefacts/headers/duplicate_record_field.h too large to diff
- test-artefacts/headers/golden/arrays/array.h too large to diff
- test-artefacts/headers/golden/arrays/const_qualifier.h too large to diff
- test-artefacts/headers/golden/arrays/failing/array_res_1.h too large to diff
- test-artefacts/headers/golden/arrays/failing/array_res_2.h too large to diff
- test-artefacts/headers/golden/arrays/failing/array_res_3.h too large to diff
- test-artefacts/headers/golden/arrays/failing/array_res_4.h too large to diff
- test-artefacts/headers/golden/arrays/failing/array_res_5.h too large to diff
- test-artefacts/headers/golden/arrays/failing/array_res_6.h too large to diff
- test-artefacts/headers/golden/arrays/failing/array_res_7.h too large to diff
- test-artefacts/headers/golden/arrays/failing/array_res_8.h too large to diff
- test-artefacts/headers/golden/arrays/failing/selection_bad.h too large to diff
- test-artefacts/headers/golden/arrays/failing/selection_bad_size_t.h too large to diff
- test-artefacts/headers/golden/arrays/multi_dim.h too large to diff
- test-artefacts/headers/golden/attributes/asm.h too large to diff
- test-artefacts/headers/golden/attributes/attributes.h too large to diff
- test-artefacts/headers/golden/attributes/deprecated.h too large to diff
- test-artefacts/headers/golden/attributes/type_attributes.h too large to diff
- test-artefacts/headers/golden/attributes/visibility/edge-cases/nested_types.h too large to diff
- test-artefacts/headers/golden/attributes/visibility/functions.h too large to diff
- test-artefacts/headers/golden/attributes/visibility/types.h too large to diff
- test-artefacts/headers/golden/attributes/visibility/variables.h too large to diff
- test-artefacts/headers/golden/binding-specs/bs_pre_target_mismatch.h too large to diff
- test-artefacts/headers/golden/binding-specs/bs_pre_target_mismatch_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/enum/closed.h too large to diff
- test-artefacts/headers/golden/binding-specs/enum/closed_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/enum/mismatch.h too large to diff
- test-artefacts/headers/golden/binding-specs/enum/mismatch_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/enum/open.h too large to diff
- test-artefacts/headers/golden/binding-specs/enum/open_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/array.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/array.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/array_known_size.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/array_known_size.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/enum.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/enum.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/function.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/function.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/function_pointer.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/function_pointer.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/struct.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/struct.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/union.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/macro/union.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/array.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/array.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/array_known_size.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/array_known_size.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/enum.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/enum.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/function.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/function.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/function_pointer.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/function_pointer.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/struct.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/struct.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/union.h too large to diff
- test-artefacts/headers/golden/binding-specs/fun_arg/typedef/union.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/name/squash_both.h too large to diff
- test-artefacts/headers/golden/binding-specs/name/squash_both_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/name/squash_struct.h too large to diff
- test-artefacts/headers/golden/binding-specs/name/squash_struct_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/name/squash_typedef.h too large to diff
- test-artefacts/headers/golden/binding-specs/name/squash_typedef_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/name/type.h too large to diff
- test-artefacts/headers/golden/binding-specs/name/type_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/omit_type.h too large to diff
- test-artefacts/headers/golden/binding-specs/omit_type_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/relative_include/core.h too large to diff
- test-artefacts/headers/golden/binding-specs/relative_include/sub/consumer.h too large to diff
- test-artefacts/headers/golden/binding-specs/relative_include/sub/consumer.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/rep/emptydata/pt.h too large to diff
- test-artefacts/headers/golden/binding-specs/rep/emptydata/staticsize.h too large to diff
- test-artefacts/headers/golden/binding-specs/rep/emptydata/staticsize_deps.h too large to diff
- test-artefacts/headers/golden/binding-specs/rep/emptydata/staticsize_p.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/stdlib/bool.h too large to diff
- test-artefacts/headers/golden/binding-specs/stdlib/instances.h too large to diff
- test-artefacts/headers/golden/binding-specs/stdlib/return_values.h too large to diff
- test-artefacts/headers/golden/binding-specs/trans_dep/macro_trans_dep_missing.h too large to diff
- test-artefacts/headers/golden/binding-specs/trans_dep/macro_trans_dep_missing.yaml too large to diff
- test-artefacts/headers/golden/binding-specs/trans_dep/typedef_trans_dep_missing.h too large to diff
- test-artefacts/headers/golden/binding-specs/trans_dep/typedef_trans_dep_missing.yaml too large to diff
- test-artefacts/headers/golden/comprehensive/c2hsc.h too large to diff
- test-artefacts/headers/golden/comprehensive/smoke.h too large to diff
- test-artefacts/headers/golden/declarations/declaration_unselected_a.h too large to diff
- test-artefacts/headers/golden/declarations/declaration_unselected_b.h too large to diff
- test-artefacts/headers/golden/declarations/declarations_required_for_scoping.h too large to diff
- test-artefacts/headers/golden/declarations/definitions.h too large to diff
- test-artefacts/headers/golden/declarations/duplicate_field_name_omit.h too large to diff
- test-artefacts/headers/golden/declarations/failing/tentative_definitions_linkage.h too large to diff
- test-artefacts/headers/golden/declarations/field_name_reuse_omit.h too large to diff
- test-artefacts/headers/golden/declarations/forward_declaration.h too large to diff
- test-artefacts/headers/golden/declarations/name_collision.h too large to diff
- test-artefacts/headers/golden/declarations/name_collision_aux.h too large to diff
- test-artefacts/headers/golden/declarations/opaque_declaration.h too large to diff
- test-artefacts/headers/golden/declarations/redeclaration.h too large to diff
- test-artefacts/headers/golden/declarations/redeclaration_main_header.h too large to diff
- test-artefacts/headers/golden/declarations/redeclaration_main_header_inner.h too large to diff
- test-artefacts/headers/golden/declarations/select_scoping.h too large to diff
- test-artefacts/headers/golden/declarations/select_scoping_header.h too large to diff
- test-artefacts/headers/golden/declarations/tentative_definitions.h too large to diff
- test-artefacts/headers/golden/documentation/data_kind_pragma.h too large to diff
- test-artefacts/headers/golden/documentation/doxygen_docs.h too large to diff
- test-artefacts/headers/golden/documentation/javadoc_banner.h too large to diff
- test-artefacts/headers/golden/edge-cases/adios.h too large to diff
- test-artefacts/headers/golden/edge-cases/aux_funptr_newtypes.h too large to diff
- test-artefacts/headers/golden/edge-cases/clang_generated_collision.h too large to diff
- test-artefacts/headers/golden/edge-cases/distilled_lib_1.h too large to diff
- test-artefacts/headers/golden/edge-cases/duplicate.h too large to diff
- test-artefacts/headers/golden/edge-cases/duplicate_macro.h too large to diff
- test-artefacts/headers/golden/edge-cases/duplicate_record_field.h too large to diff
- test-artefacts/headers/golden/edge-cases/enum_as_array_size.h too large to diff
- test-artefacts/headers/golden/edge-cases/flam.h too large to diff
- test-artefacts/headers/golden/edge-cases/flam_functions.h too large to diff
- test-artefacts/headers/golden/edge-cases/headers.h too large to diff
- test-artefacts/headers/golden/edge-cases/include_macro_child.h too large to diff
- test-artefacts/headers/golden/edge-cases/include_macro_parent.h too large to diff
- test-artefacts/headers/golden/edge-cases/iterator.h too large to diff
- test-artefacts/headers/golden/edge-cases/mangle_fun_param_names.h too large to diff
- test-artefacts/headers/golden/edge-cases/names.h too large to diff
- test-artefacts/headers/golden/edge-cases/ordinary_unnamed_decl_child.h too large to diff
- test-artefacts/headers/golden/edge-cases/ordinary_unnamed_decl_parent.h too large to diff
- test-artefacts/headers/golden/edge-cases/prelude_names.h too large to diff
- test-artefacts/headers/golden/edge-cases/select_no_match.h too large to diff
- test-artefacts/headers/golden/edge-cases/spec_examples.h too large to diff
- test-artefacts/headers/golden/edge-cases/thread_local.h too large to diff
- test-artefacts/headers/golden/edge-cases/typedef_bitfield.h too large to diff
- test-artefacts/headers/golden/edge-cases/typedef_void.h too large to diff
- test-artefacts/headers/golden/edge-cases/unnamed_type_multiple_fields.h too large to diff
- test-artefacts/headers/golden/edge-cases/unnamed_type_multiple_typedefs.h too large to diff
- test-artefacts/headers/golden/edge-cases/unsupported_builtin.h too large to diff
- test-artefacts/headers/golden/edge-cases/uses_utf8.h too large to diff
- test-artefacts/headers/golden/functions/callbacks.h too large to diff
- test-artefacts/headers/golden/functions/circular_dependency_fun.h too large to diff
- test-artefacts/headers/golden/functions/decls_in_signature.h too large to diff
- test-artefacts/headers/golden/functions/fun_attributes.h too large to diff
- test-artefacts/headers/golden/functions/fun_attributes_conflict.h too large to diff
- test-artefacts/headers/golden/functions/hash_defines.h too large to diff
- test-artefacts/headers/golden/functions/heap_types/struct.h too large to diff
- test-artefacts/headers/golden/functions/heap_types/struct_const.h too large to diff
- test-artefacts/headers/golden/functions/heap_types/struct_const_member.h too large to diff
- test-artefacts/headers/golden/functions/heap_types/struct_const_typedef.h too large to diff
- test-artefacts/headers/golden/functions/heap_types/union.h too large to diff
- test-artefacts/headers/golden/functions/heap_types/union_const.h too large to diff
- test-artefacts/headers/golden/functions/heap_types/union_const_member.h too large to diff
- test-artefacts/headers/golden/functions/heap_types/union_const_typedef.h too large to diff
- test-artefacts/headers/golden/functions/libc_builtins.h too large to diff
- test-artefacts/headers/golden/functions/not_visible_decl.h too large to diff
- test-artefacts/headers/golden/functions/simple_func.h too large to diff
- test-artefacts/headers/golden/functions/typedef_funptr.h too large to diff
- test-artefacts/headers/golden/functions/varargs.h too large to diff
- test-artefacts/headers/golden/globals/globals.h too large to diff
- test-artefacts/headers/golden/globals/untagged.h too large to diff
- test-artefacts/headers/golden/macros/command_line/redefined.h too large to diff
- test-artefacts/headers/golden/macros/command_line/uses.h too large to diff
- test-artefacts/headers/golden/macros/empty_body.h too large to diff
- test-artefacts/headers/golden/macros/gnu_variadic.h too large to diff
- test-artefacts/headers/golden/macros/issue_890.h too large to diff
- test-artefacts/headers/golden/macros/keyword_params.h too large to diff
- test-artefacts/headers/golden/macros/macro_comma.h too large to diff
- test-artefacts/headers/golden/macros/macro_ext_binding_dep.h too large to diff
- test-artefacts/headers/golden/macros/macro_ext_binding_dep.yaml too large to diff
- test-artefacts/headers/golden/macros/macro_functions.h too large to diff
- test-artefacts/headers/golden/macros/macro_in_fundecl.h too large to diff
- test-artefacts/headers/golden/macros/macro_in_fundecl_vs_typedef.h too large to diff
- test-artefacts/headers/golden/macros/macro_redefines_global.h too large to diff
- test-artefacts/headers/golden/macros/macro_resolution_log_level.h too large to diff
- test-artefacts/headers/golden/macros/macro_strings.h too large to diff
- test-artefacts/headers/golden/macros/macro_type_ptr_qualifiers.h too large to diff
- test-artefacts/headers/golden/macros/macro_type_unresolved_tagged.h too large to diff
- test-artefacts/headers/golden/macros/macro_type_void.h too large to diff
- test-artefacts/headers/golden/macros/macro_typedef_struct.h too large to diff
- test-artefacts/headers/golden/macros/macro_types.h too large to diff
- test-artefacts/headers/golden/macros/macros.h too large to diff
- test-artefacts/headers/golden/macros/object_like_as_function_like.h too large to diff
- test-artefacts/headers/golden/macros/parse/elaborate.h too large to diff
- test-artefacts/headers/golden/macros/parse/elaborate_inner.h too large to diff
- test-artefacts/headers/golden/macros/parse/first_parse_then_typecheck.h too large to diff
- test-artefacts/headers/golden/macros/parse/intermittent_include.h too large to diff
- test-artefacts/headers/golden/macros/parse/intermittent_include_conditional.h too large to diff
- test-artefacts/headers/golden/macros/parse/intermittent_include_conditional_inner.h too large to diff
- test-artefacts/headers/golden/macros/parse/intermittent_include_inner.h too large to diff
- test-artefacts/headers/golden/macros/parse/macro_typedef_scope.h too large to diff
- test-artefacts/headers/golden/macros/parse/macro_typedef_scope_multiple.h too large to diff
- test-artefacts/headers/golden/macros/parse/macro_typedef_scope_multiple_inner1.h too large to diff
- test-artefacts/headers/golden/macros/parse/macro_typedef_scope_multiple_inner2.h too large to diff
- test-artefacts/headers/golden/macros/parse/simple.h too large to diff
- test-artefacts/headers/golden/macros/parse/simple_inner.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/def_undef_def.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/different.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/different_value.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/identical_semantics.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/identical_syntax.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/identical_value.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/main_header.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/main_header_inner.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/noguard.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/noguard_inner.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/same_line_tag_field.h too large to diff
- test-artefacts/headers/golden/macros/redeclaration/variadic.h too large to diff
- test-artefacts/headers/golden/macros/reparse.h too large to diff
- test-artefacts/headers/golden/macros/reparse/arithmetic_types.h too large to diff
- test-artefacts/headers/golden/macros/reparse/cref_attributes.h too large to diff
- test-artefacts/headers/golden/macros/reparse/defer_wrong.h too large to diff
- test-artefacts/headers/golden/macros/reparse/end_in_macro_arg.h too large to diff
- test-artefacts/headers/golden/macros/reparse/functions.h too large to diff
- test-artefacts/headers/golden/macros/reparse/gnu_attributes.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting/struct_in_struct.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting/struct_in_typedef.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting/struct_in_union.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting/struct_in_variable.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting/union_in_struct.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting/union_in_typedef.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting/union_in_union.h too large to diff
- test-artefacts/headers/golden/macros/reparse/nesting/union_in_variable.h too large to diff
- test-artefacts/headers/golden/macros/undef.h too large to diff
- test-artefacts/headers/golden/macros/wrong_source_location.h too large to diff
- test-artefacts/headers/golden/manual/zero_copy.h too large to diff
- test-artefacts/headers/golden/program-analysis/circular_includes.h too large to diff
- test-artefacts/headers/golden/program-analysis/circular_includes_inner.h too large to diff
- test-artefacts/headers/golden/program-analysis/circular_macro.h too large to diff
- test-artefacts/headers/golden/program-analysis/delay_traces.h too large to diff
- test-artefacts/headers/golden/program-analysis/program-slicing/macro_selected.h too large to diff
- test-artefacts/headers/golden/program-analysis/program-slicing/macro_selected_t.h too large to diff
- test-artefacts/headers/golden/program-analysis/program-slicing/macro_unselected.h too large to diff
- test-artefacts/headers/golden/program-analysis/program-slicing/macro_unselected_t.h too large to diff
- test-artefacts/headers/golden/program-analysis/program-slicing/typedef_selected.h too large to diff
- test-artefacts/headers/golden/program-analysis/program-slicing/typedef_selected_t.h too large to diff
- test-artefacts/headers/golden/program-analysis/program-slicing/typedef_unselected.h too large to diff
- test-artefacts/headers/golden/program-analysis/program-slicing/typedef_unselected_t.h too large to diff
- test-artefacts/headers/golden/program-analysis/program_slicing_selection.h too large to diff
- test-artefacts/headers/golden/program-analysis/program_slicing_simple.h too large to diff
- test-artefacts/headers/golden/program-analysis/program_slicing_simple.yaml too large to diff
- test-artefacts/headers/golden/program-analysis/selection_bad.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_bad_size_t.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_fail.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_foo.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_foo_t.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_matches_c_names.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_matches_c_names.yaml too large to diff
- test-artefacts/headers/golden/program-analysis/selection_merge_traces.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_omit_external.yaml too large to diff
- test-artefacts/headers/golden/program-analysis/selection_omit_external_a.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_omit_external_b.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_omit_external_root.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_omit_prescriptive.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_omit_prescriptive.yaml too large to diff
- test-artefacts/headers/golden/program-analysis/selection_squash_struct.h too large to diff
- test-artefacts/headers/golden/program-analysis/selection_squash_typedef.h too large to diff
- test-artefacts/headers/golden/program-analysis/typedef_analysis.h too large to diff
- test-artefacts/headers/golden/program-analysis/typedef_block.h too large to diff
- test-artefacts/headers/golden/program-analysis/typedef_name_clash.h too large to diff
- test-artefacts/headers/golden/program-analysis/typedef_suffix_clash.h too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/anon_in_nonanon.h too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/bitfield.h too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/drop_indirect_fields.h too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/drop_indirect_fields_1.ext.yaml too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/drop_indirect_fields_2.ext.yaml too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/duplicate_field_names.h too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/empty_anon.h too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/multi_nesting.h too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/padding.h too large to diff
- test-artefacts/headers/golden/types/anonymous/edge-cases/reparse.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/_internal_macros.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/multi_nesting_enum_tagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/multi_nesting_enum_untagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/multi_nesting_struct_tagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/multi_nesting_struct_untagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/multi_nesting_union_tagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/multi_nesting_union_untagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/single_nesting_enum_tagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/single_nesting_enum_untagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/single_nesting_struct_tagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/single_nesting_struct_untagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/single_nesting_union_tagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/indirect-fields/single_nesting_union_untagged.h too large to diff
- test-artefacts/headers/golden/types/anonymous/struct.h too large to diff
- test-artefacts/headers/golden/types/anonymous/struct_in_struct.h too large to diff
- test-artefacts/headers/golden/types/anonymous/struct_in_union.h too large to diff
- test-artefacts/headers/golden/types/anonymous/union.h too large to diff
- test-artefacts/headers/golden/types/anonymous/union_in_struct.h too large to diff
- test-artefacts/headers/golden/types/anonymous/union_in_union.h too large to diff
- test-artefacts/headers/golden/types/complex/complex_non_float_test.h too large to diff
- test-artefacts/headers/golden/types/complex/hsb_complex_test.h too large to diff
- test-artefacts/headers/golden/types/complex/vector_test.h too large to diff
- test-artefacts/headers/golden/types/enums/enum_cpp_syntax.h too large to diff
- test-artefacts/headers/golden/types/enums/enum_unsigned_values.h too large to diff
- test-artefacts/headers/golden/types/enums/enums.h too large to diff
- test-artefacts/headers/golden/types/enums/nested_enums.h too large to diff
- test-artefacts/headers/golden/types/enums/untagged_enum_toplevel.h too large to diff
- test-artefacts/headers/golden/types/nested/nested_types.h too large to diff
- test-artefacts/headers/golden/types/primitives/bool.h too large to diff
- test-artefacts/headers/golden/types/primitives/bool_c23.h too large to diff
- test-artefacts/headers/golden/types/primitives/bool_macro_override.h too large to diff
- test-artefacts/headers/golden/types/primitives/bool_typedef_override.h too large to diff
- test-artefacts/headers/golden/types/primitives/fixedwidth.h too large to diff
- test-artefacts/headers/golden/types/primitives/least_fast.h too large to diff
- test-artefacts/headers/golden/types/primitives/primitive_insts.h too large to diff
- test-artefacts/headers/golden/types/primitives/primitive_types.h too large to diff
- test-artefacts/headers/golden/types/qualifiers/const_typedefs.h too large to diff
- test-artefacts/headers/golden/types/qualifiers/type_qualifiers.h too large to diff
- test-artefacts/headers/golden/types/scoping/deep_nesting.h too large to diff
- test-artefacts/headers/golden/types/scoping/nesting.h too large to diff
- test-artefacts/headers/golden/types/scoping/wide_nesting.h too large to diff
- test-artefacts/headers/golden/types/special/long_double.h too large to diff
- test-artefacts/headers/golden/types/special/parse_failure_long_double.h too large to diff
- test-artefacts/headers/golden/types/special/small_floats.h too large to diff
- test-artefacts/headers/golden/types/structs/bitfields.h too large to diff
- test-artefacts/headers/golden/types/structs/circular_dependency_struct.h too large to diff
- test-artefacts/headers/golden/types/structs/padding.h too large to diff
- test-artefacts/headers/golden/types/structs/recursive_struct.h too large to diff
- test-artefacts/headers/golden/types/structs/simple_structs.h too large to diff
- test-artefacts/headers/golden/types/structs/struct_arg.h too large to diff
- test-artefacts/headers/golden/types/structs/tagged_vs_untagged.h too large to diff
- test-artefacts/headers/golden/types/structs/untagged.h too large to diff
- test-artefacts/headers/golden/types/structs/untagged_struct.h too large to diff
- test-artefacts/headers/golden/types/typedefs/auxiliary/function-pointer/array.h too large to diff
- test-artefacts/headers/golden/types/typedefs/auxiliary/function-pointer/block.h too large to diff
- test-artefacts/headers/golden/types/typedefs/auxiliary/function-pointer/direct.h too large to diff
- test-artefacts/headers/golden/types/typedefs/auxiliary/function-pointer/multi_level.h too large to diff
- test-artefacts/headers/golden/types/typedefs/auxiliary/function-pointer/pointer.h too large to diff
- test-artefacts/headers/golden/types/typedefs/auxiliary/function-pointer/qual.h too large to diff
- test-artefacts/headers/golden/types/typedefs/typedef_vs_macro.h too large to diff
- test-artefacts/headers/golden/types/typedefs/typedefs.h too large to diff
- test-artefacts/headers/golden/types/typedefs/typenames.h too large to diff
- test-artefacts/headers/golden/types/unions/bitfields.h too large to diff
- test-artefacts/headers/golden/types/unions/nested_unions.h too large to diff
- test-artefacts/headers/golden/types/unions/unions.h too large to diff
- test-artefacts/headers/invalid_standard_types.h too large to diff
- test-artefacts/headers/minimal.h too large to diff
- test-artefacts/headers/standard_types.h too large to diff
- test-artefacts/headers/static_counter.h too large to diff
- test-artefacts/headers/test_01.h too large to diff
- test-artefacts/headers/test_02.h too large to diff
- test/common/Test/Common/HsBindgen/Trace.hs too large to diff
- test/common/Test/Common/HsBindgen/Trace/Patterns.hs too large to diff
- test/common/Test/Common/HsBindgen/Trace/Predicate.hs too large to diff
- test/common/Test/Common/Util/AnsiDiff.hs too large to diff
- test/common/Test/Common/Util/Cabal.hs too large to diff
- test/common/Test/Common/Util/Tasty.hs too large to diff
- test/common/Test/Common/Util/Tasty/Golden.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Clang.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Fixtures/Haddock.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Fixtures/TestCases.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Fixtures/Utils.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Frontend/LanguageC.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Frontend/Pass/PrepareReparse.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Arrays.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Attributes.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/BindingSpecs.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Comprehensive.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Declarations.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Documentation.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/EdgeCases.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Functions.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Globals.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Infra/Check/BindingSpec.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Infra/Check/FailureBindgen.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Infra/Check/FailureLibclang.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Infra/Check/PP.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Infra/Check/TH.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Infra/TestCase.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Infra/TestCaseTree.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Macros.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Macros/Lang.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Macros/Redeclaration.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Macros/Reparse.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/ProgramAnalysis.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Golden/Types.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Integration/ExitCode.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Integration/OverwritePolicy.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Macro/CExpr.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Macro/Infra.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Macro/Syntax.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Macro/Syntax/Clang.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Macro/UniqueExpansion.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/PPFixtures.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/PPFixtures/Compile.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/PPFixtures/TestCases.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Prop/Selection.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Resources.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/THFixtures.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/THFixtures/Compile.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/THFixtures/Generate.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/THFixtures/TestCases.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Unit/ClangArgs.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Unit/Digraph.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Unit/Frontend.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Unit/Pretty.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Unit/RootDirective.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Unit/Runtime.hs too large to diff
- test/hs-bindgen/Test/HsBindgen/Unit/Tracer.hs too large to diff
- test/hs-bindgen/test-hs-bindgen.hs too large to diff
- test/literate/Test/Literate/Test01.lhs too large to diff
- test/literate/Test/Literate/Test02.lhs too large to diff
- test/literate/Test/Literate/TestPointer.lhs too large to diff
- test/literate/Test/Literate/TestSafe.lhs too large to diff
- test/literate/Test/Literate/TestSafeAndUnsafe.lhs too large to diff
- test/literate/Test/Literate/TestUnsafe.lhs too large to diff
- test/literate/test-literate.hs too large to diff
- test/th/Test/TH/RecordDot.hs too large to diff
- test/th/Test/TH/StaticCounterA.hs too large to diff
- test/th/Test/TH/StaticCounterB.hs too large to diff
- test/th/Test/TH/Test01.hs too large to diff
- test/th/Test/TH/Test02.hs too large to diff
- test/th/test-th.hs too large to diff
@@ -0,0 +1,537 @@+# Revision history for hs-bindgen++## 1.0.0.0 -- 2026-10-08++### Breaking changes++* Drop support for GHC 9.2.+* Bindings generated by earlier versions do not compile against the new+ `hs-bindgen-runtime`; regenerate them. See the `hs-bindgen-runtime`+ changelog.+* Macros defined on the command line are no longer passed to Clang as `-D`+ arguments but are *root directives*: an ordered list of `#include` and+ `#define` directives. The root header is rendered from this list, and the+ generated C wrapper source starts with the same rendering, so that binding+ generation and binding compilation agree by construction. The wrapper+ translation unit of a module therefore includes every main header.+ Previously, `-D FOO` had to be stated twice: once for `hs-bindgen` and once+ as `ghc-options: -optc-DFOO` in the `.cabal` file. See [issue+ #2214][is-2214] and the [C stages][manual-c-stages] manual page.+ * The CLI option `-D`/`--define-macro` is replaced by `--hash-define NAME+ VALUE`. The order of `--hash-define` and `HEADER` arguments matters.+ `--hash-define` takes *two* arguments: `-DFOO` becomes `--hash-define FOO+ 1`; an empty replacement list is `--hash-define FOO ''`.+ * `ClangArgsConfig.defineMacros` is removed. In Template Haskell mode, use+ the new `hashDefine :: String -> String -> BindgenM ()` next to+ `hashInclude`. This is `#define` syntax, not `-D` syntax: `hashDefine+ "FOO" ""` is `#define FOO`, `hashDefine "FOO" "1"` is `#define FOO 1`.+ * As before, raw `-D` options passed via `argsBefore`/`argsInner`/`argsAfter`+ or `BINDGEN_EXTRA_CLANG_ARGS` reach binding generation only, not the+ compilation of the C wrapper.+* Macros defined by `-D` Clang options or by `#define` root directives are now+ declarations. See [issue #2280][is-2280].+ * They are not in any header, so the default selection predicate does not+ select them; program slicing selects the ones a selected declaration uses.+ * Consider `struct S { T x; };` with `-DT=int`. Previously, `x` was a+ `CInt`. Now, `S` is deselected without program slicing, just as if `T`+ were defined in a header that is not a main header; with program slicing,+ `x` has the macro type `T`.+ * `--select-all` selects all of these macros, including those the Clang+ driver defines itself, such as `__GCC_HAVE_DWARF2_CFI_ASM`. So does+ `--select-by-decl-name` when its pattern matches their names. See also the+ new selection predicate `--select-from-all-headers`.+ * Generated binding specifications do not list these macros.+* The `IncludeDir` data constructors have been renamed: `Dir` → `AbsDir` and+ `Pkg` → `PkgDir`. Their paths are now checked in Template Haskell mode: a+ relative `AbsDir` path warns (it is resolved against the working directory of+ the compiler invocation), and an absolute `PkgDir` path is an error (the+ package root would be discarded). See [issue #2217][is-2217].+* The `SelectPredicate` type has been renamed to `SelectionPredicate`, and the+ `selectPredicate` field of `Config_` has been renamed to+ `selectionPredicate`.+* The `--select-by-header-path` regex now matches against canonical absolute+ paths. See [issue #2236][is-2236].+* The `--path-style` CLI option and the corresponding `PathStyle` type and+ `haddockPathStyle` field of `Config_` have been removed. They had no effect:+ generated Haddock comments show the header path as written in the `#include`+ directive. See [issue #2266][is-2266].+* The `--log-show-time` CLI option has been removed. Trace output no longer+ includes timestamps.+* CLI exit codes have changed. Exit code 2 is now used for CLI usage errors;+ a failed call to `libclang` now exits with code 3 (previously 2), and an+ error in `hs-bindgen` with code 4 (previously 3). See the invocation section+ of the manual.+* The `LLVM_CONFIG` environment variable is no longer used to locate+ `llvm-config`. Set `LLVM_PATH`, or configure `PATH` so that the desired+ `llvm-config` is found.+* Generated field names referencing anonymous structs and unions are now+ prefixed with `anon'`. This highlights that the field is generated by+ `hs-bindgen`; the tick ensures that the name cannot clash with a C field,+ since ticks are not allowed in C identifiers. Since anonymous structs and+ unions are named after the generated fields, these names now also include an+ `anon'` infix. Code rarely needs to refer to these names: the fields of an+ anonymous struct or union can be accessed as indirect fields of the+ enclosing struct or union (see below). See [issue #2064][is-2064] and [PR+ #2070][pr-2070].+* Tagged types that would clash with the name of a typedef that refers to them+ are now disambiguated with a `_struct`/`_union`/`_enum` suffix (mirroring the+ C keyword) instead of `_Aux`. Clash detection now also looks through arrays,+ blocks, and function types (argument and result types), not just pointers,+ so e.g. `typedef struct {…} foo[10];` no longer produces clashing names.+ Qualifiers (e.g. `const`) are treated as transparent, so `typedef const+ struct {…} foo;` is now squashed like its unqualified counterpart. This+ renames affected generated identifiers. See [issue #1445][is-1445].+* Derived names (data constructors, record fields, union getters and setters,+ enum constants, and `_Aux` types for flexible array members and function+ pointers) are now checked for collisions. A declaration whose derived names+ collide is deselected with a warning instead of producing uncompilable+ Haskell. In particular, under `OmitFieldPrefixes`, a struct with two fields+ that mangle to the same Haskell name is deselected. See [issue+ #1432][is-1432].+* Modules generated under `OmitFieldPrefixes` now enable `NoFieldSelectors` (in+ addition to `DuplicateRecordFields`). No top-level field selector is emitted,+ so an unprefixed field name can no longer clash with a non-field declaration+ of the same name; fields are accessed via `HasField`/record dot syntax.+* Remove the generated union getters and setters (e.g. `get_u_c`). Use the new+ `get` and `set` functions from `hs-bindgen-runtime` instead. See [issue+ #2060][is-2060] and [PR #2091][pr-2091].+* Character literal macros are now translated to `CChar` (previously+ `CharValue` from `c-expr-runtime`), and string literal macros to a strict+ `ByteString` (previously `(Ptr CChar, Int)`). Multi-character literal macros+ (e.g. `#define X 'ab'`) are no longer supported, as their value is+ implementation-defined.+* The types used in `foreign import` declarations (FFI types) have been+ overhauled. Previously, every argument and result type was reduced to a+ primitive type with a fixed size, which made the generated bindings less+ portable than necessary. See the [FFI types][manual-ffi-types] manual page+ and [PR #2267][pr-2267].+ * An external binding specification can (and should) specify the FFI type of+ a Haskell type: a module and a type that may appear in a `foreign import`+ when that module is in scope. Generated `foreign import`s use the FFI type,+ and convert from and to the Haskell type with `toFFIType`/`fromFFIType` of+ the `HasFFIType` class.+ * `HasFFIType` instances are now only generated for types that can be used in+ `foreign import` argument and result positions.+ * `HasFFIType` is an open class: users can write instances, e.g. for types+ referenced by external binding specifications.+* In external binding specifications, the class name `HasField` now records+ that a type has the usual `HasField` instances for the fields of record+ datatypes. Specifications that use `HasField` for the `HasField` instances of+ the pointer manipulation API must rename it to `HasFieldPtr`. See [PR+ #2094][pr-2094].+* The name mangler reserves the names that generated modules import+ unqualified from the `Prelude`, each in its namespace. See [issue+ #2287][is-2287].+ * `String` and `fmap` are now reserved: a C type `string` becomes `String'`,+ a C function `fmap` becomes `fmap'`.+ * `Void`, `FiniteBits` and `showsPrec` are no longer reserved: a C type+ `Void` becomes `Void`, not `Void'`.+ * Reserved names apply only in their own namespace: a C enumeration constant+ `Eq` becomes the pattern `Eq`, not `Eq'`. The names of `Foreign.C.Types`,+ such as `CInt`, remain reserved for types and constructors alike.++### New features++* Macro handling has been overhauled. See [PR #1862][pr-1862].+ * Type-like macros (e.g. `#define A int`) are now parsed and typechecked+ together with value-like macros (e.g. `#define FOO 1`) using `c-expr-dsl`,+ rather than `language-c`, and translated directly to Haskell types. See+ [issue #1953][is-1953].+ * Names in macro bodies are resolved against all declarations in the+ translation unit.+ * Program slicing follows the dependencies of macros: selecting a macro also+ selects the declarations it uses.+ * When reparsing a declaration that uses macros, only the macros Clang+ expanded *in that declaration* are substituted.+ * Macro expansions in global variable declarations are supported. See [issue+ #831][is-831].+* Declarations may use type macros together with other macros, including+ macros that `hs-bindgen` cannot translate, such as macros expanding to+ attributes. The type macros are reflected in the generated bindings, and the+ other macros are expanded as Clang expands them. Previously, type macros were+ only supported in bindings that used no other macros at all.+ Support is decided per declaration: it works as long as no macro the+ declaration expands is ambiguous, that is, neither the macro nor any macro it+ depends on has conflicting redefinitions (see below). See [issue+ #1225][is-1225], [issue #2012][is-2012], [PR #1892][pr-1892] and [PR+ #2034][pr-2034].+* Benign macro redefinitions now collapse into one declaration, and do not+ make the expansion of the macro ambiguous. A macro redefinition is benign if+ and only if all definitions have the same name, parameter list and+ replacement list (white space within the replacement list is ignored), and+ none of the macros they depend on, directly or indirectly, has conflicting+ redefinitions; all other redefinitions conflict. In particular, repeating a+ definition word for word conflicts if a macro it uses is redefined+ differently in between. We generate no bindings for a macro with conflicting+ redefinitions. For any repeated+ declaration, macro or not, we keep the definition in a main header, or the+ first if none is in a main header. A declaration first defined in an+ included header and repeated in a main header is therefore now selected by+ the default selection predicate. See [issue #2264][is-2264] and [PR+ #2281][pr-2281].+* In Template Haskell mode, the macro language (how macro bodies are parsed,+ typechecked and translated) can be chosen:+ `HsBindgen.TH.withHsBindgenMacroLang` takes the macro language as an+ argument, while `withHsBindgen` uses the default. `HsBindgen.Macro` provides+ `cExpr` (the default), `empty` (recognises no macros; Clang's own expansions+ are used), and `raw` (every macro becomes a `HsBindgen.Runtime.Macro.Raw+ String` value holding its name, parameter list and token spellings).+ The macro language argument is a function of the C standard, which+ `withHsBindgenMacroLang` detects. The macro language interface is opaque, so+ custom macro languages are not yet supported; they will be once the+ `hs-bindgen` library API is finalised (see [issue #1003][is-1003]). See+ [issue #2242][is-2242] and [issue #2243][is-2243].+* A new CLI option `--parse-empty-macros` (`EmptyMacros` with+ `ParseEmptyMacros`/`DoNotParseEmptyMacros` in Template Haskell mode) passes+ macros with an empty replacement list on to the macro language. `raw` can+ translate such macros. The default `cExpr` has no expression to translate and+ declines them; they are reported like any other macro that failed to+ translate. By default, empty macros are not parsed at all, since include+ guards have this shape. See [issue #2246][is-2246].+* `hs-bindgen` now emits a single, default-visible summary line reporting how+ many selected macros it failed to translate, e.g. `14 macros failed to+ translate; use --log-enable-macro-warnings for details`. Previously these+ failures were only logged at `Info` level and hidden at the default+ verbosity, giving the impression that macros were not translated at all. See+ [issue #2185][is-2185].+* A new CLI option `--select-from-all-headers` (`SelectHeader FromAllHeaders`+ in Template Haskell mode) selects every declaration in any header, main or+ included. Unlike `--select-all`, it does not select macros defined by `-D`+ Clang options or by root directives. See [issue #2280][is-2280].+* Extract Haddock documentation from C headers using Doxygen. When the+ `doxygen` binary is available on `PATH`, `hs-bindgen` invokes it to parse+ structured documentation comments (Javadoc/Doxygen-style `/** ... */`) and+ translates them into Haddock comments on the generated bindings. If `doxygen`+ is not found, `hs-bindgen` warns and generates metadata-only comments (source+ location and C name).+* Mirror Doxygen `@defgroup` sections (including nested `@ingroup` groupings)+ as Haddock section headers in the export lists of generated modules.+* The `hs-bindgen-cli info doxygen` subcommand dumps the parsed Doxygen+ comments.+* Generate class instances for field access and zero values of structs,+ unions and newtypes:+ * `GHC.Records.Compat.HasField` instances for struct fields, union fields,+ and the fields of generated newtypes (for typedefs, enums, and macro+ types), with Haddock comments;+ * `GHC.Records.HasField` instances for union fields;+ * `HsBindgen.Runtime.Struct.IsStruct` instances for structs;+ * `HsBindgen.Runtime.Union.IsUnion` instances for unions.++ With `OverloadedRecordUpdate` (see `HsBindgen.Runtime.Overloading`), struct+ and union values can be constructed by record updates of the zero value of+ `IsStruct` or `IsUnion`. This is particularly useful for unions, which are+ opaque datatypes, and combines with indirect fields (see below).++ See [issue #2059][is-2059], [issue #2060][is-2060], [issue #2083][is-2083],+ [issue #2121][is-2121], [PR #2075][pr-2075], [PR #2087][pr-2087], [PR+ #2091][pr-2091], [PR #2150][pr-2150] and [PR #2164][pr-2164].+* Generate `HasField` instances for indirect fields, both for values and, for+ the pointer manipulation API, for pointers. Indirect fields are fields of+ anonymous structs and unions that can be accessed as if they were fields of+ the enclosing struct or union, as in C. With `OverloadedRecordDot`, a field+ of an anonymous union inside a struct can thus be read from a value of, or a+ pointer to, the struct directly, without naming the generated union type.+ See [issue #2061][is-2061] and [PR #2136][pr-2136].+* Support bit-fields in unions. See [issue #1253][is-1253].+* Generate `_Aux` newtypes for function types that are indirectly referenced by+ `typedef`s. Previously these newtypes were only generated when function types+ were indirectly referenced through pointers. Now any type of indirection is+ supported, such as arrays, qualifiers, and blocks. Likewise, generate+ `ToFunPtr` and `FromFunPtr` instances for all nested function types,+ including those nested in global variables and typedefs. See [issue+ #1520][is-1520] and [PR #2068][pr-2068].+* Generate a `StaticSize` instance for `emptydata` types whose underlying C+ type is complete (a struct, union, or enum with a known size and alignment,+ or a typedef of one), so that callers can allocate the type from Haskell even+ though its fields are hidden. Types that are opaque in C (such as forward+ declarations) get no instance. See [issue #2014][is-2014].+* The C type specification of binding specifications gains an `enum` key with+ values `open` (default) or `closed`. For a closed `enum`, we generate a+ `COMPLETE` pragma for the declared patterns, so that GHC considers a match+ on all of them exhaustive. See [issue #2101][is-2101].+* In Template Haskell mode, external types referenced via external binding+ specifications that are not in scope now produce a helpful compile error+ suggesting the missing import.+* A new CLI option `--color WHEN` controls ANSI colours in diagnostics, where+ `WHEN` is `always`, `auto` (default: detect terminal support), or `never`.+ See [issue #2166][is-2166].+* A new CLI option `--log-squashed-as-info` (and matching+ `CustomLogLevelSetting` constructor `MakeMangleNamesSquashedInfo`) demotes+ the `select-mangle-names-squashed` trace from `Notice` to `Info`, so the+ per-typedef squash messages no longer appear at the default verbosity. See+ [issue #1574][is-1574].+* A new CLI option `--log-as-error-bugs` turns bug-level trace messages into+ errors. This is useful when `hs-bindgen` is used in a CI pipeline.+* The `hs-bindgen-cli info include-graph` command gained a `--toposort` flag+ that outputs the headers as a topologically sorted list (one per line, each+ header after the ones it `#include`s) instead of a Mermaid graph. Respects+ `--include`/`--exclude` and `--show-paths`. See [issue #2080][is-2080].+* Support LLVM/Clang 23. See [issue #2235][is-2235].++### Minor changes++* The `c-expr-dsl` and `c-expr-runtime` libraries have been extracted into+ their own repository ([well-typed/c-expr](https://github.com/well-typed/c-expr))+ and are consumed from Hackage.+* Print types without redundant parentheses, and type operators with infix+ notation, in generated bindings. See [issue #1790][is-1790], [issue+ #1715][is-1715] and [PR #1917][pr-1917].+* `HsBindgen.TH` now also exports `BindgenM` (opaque).+* `hs-bindgen-cli info builtin-macros` no longer lists macros defined by `-D`+ Clang options, including the ones the Clang driver adds itself. See [issue+ #2280][is-2280].+* Trace messages capture call stacks where they are created rather than where+ they are emitted, making `--log-show-call-stack` output point at the code+ that produced the message.++### Bug fixes++* Generated modules no longer clash with `Prelude` names. Previously, C+ declarations such as `typedef int Maybe` or `enum { LT, EQ, GT }` resulted in+ ambiguous names. See [issue #2287][is-2287].+* Object-like macros whose replacement list starts with `(`, such as+ `#define G (x, y) x + y`, are no longer parsed as function-like macros. A+ macro is function-like only if there is no white space between its name and+ the opening parenthesis.+* A function-like macro whose parameter is spelled like a C keyword, such as+ `#define F(bool) bool`, is no longer dropped. Such a parameter shadows the+ keyword in the replacement list: the body of `#define F(bool) bool` is the+ parameter, not the type.+* A header that uses a macro defined by a `-D` Clang option, and then redefines+ it, no longer makes `hs-bindgen` panic. The redefinition is now a conflict,+ like two differing definitions in a header. See [issue #2280][is-2280].+* Fix the parsing of primitive types in declarations that involve macro+ expansions. The bug would, for example, cause `long long int` to be parsed as+ `long int` in some cases. See [issue #1685][is-1685] and [PR #1921][pr-1921].+* Fix the reparser to ignore storage class specifiers, function specifiers, and+ attribute specifier sequences. Previously, macro-using declarations carrying+ any of these failed to reparse and silently fell back to the un-reparsed+ type, dropping macro typedef names from generated bindings. See [issue+ #1891][is-1891] and [PR #1955][pr-1955].+* Prevent confusing info-level messages for reparse errors involving+ declarations that contain nested declarations. For example, for a nested+ declaration such as `typedef struct { MyInt x; } * foo;` where `MyInt` is a+ macro type, a message would be traced that `foo` could not be reparsed, even+ though the struct field `x` is still reparsed successfully. See [issue+ #1382][is-1382] and [PR #2021][pr-2021].+* Unnamed declarations originating from the same macro expansion no longer+ make `hs-bindgen` panic. Their identifiers now include a hash of the+ declaration, which makes them unique on all supported LLVM versions. See+ [issue #1860][is-1860] and [issue #2210][is-2210].+* Support untagged structs, unions and enums that are indirectly referenced+ by global variables. For example, `struct { int x; } var;` was+ previously supported but `struct { int x; } * var;` or `struct { int x; }+ var[];` would cause a panic. See [PR #2017][pr-2017].+* External binding specifications now match correctly when the same header is+ reached by different `#include` spellings (e.g. `../core.h` vs `core.h`).+ Identity comparisons use canonical paths instead of the Clang-reported+ filename, which depends on include order. See [issue #2236][is-2236].+* Declarations using `_Float16`, `__fp16`, `__bf16`, or `__ibm128` now fail to+ parse with an unsupported-feature warning, instead of being reported as a+ bug in `hs-bindgen`. See [issue #2230][is-2230].+* Declarations using SIMD vector types now fail to parse with an+ unsupported-feature warning. See [issue #2198][is-2198].+* Declarations with unexposed types (such as the type of `malloc` with+ LLVM/Clang 22) now fail to parse with a warning.+* Silently ignore `__declspec(dllimport)` and `__declspec(dllexport)`+ attributes when parsing function, variable, and enum declarations.+ Previously, these triggered a `Bug`-level `Unexpected cursor kind` trace on+ Windows for every CRT declaration carrying `__declspec(dllimport)`. See+ [issue #1910][is-1910].+* `_Static_assert` declarations are now ignored, rather than reported as an+ unexpected cursor kind.+* Generated modules now enable every language extension they need, such as+ `FlexibleInstances` and `ForeignFunctionInterface`, so that they compile+ with `Haskell2010` or `Haskell98` as the default language. Previously, some+ of these were covered only implicitly by `GHC2021`.+* Stop emitting the `CApiFFI` language pragma in generated modules that do not+ use the `capi` calling convention. See [issue #1868][is-1868].+* Fix reversed order of Haddock documentation in Template Haskell mode. See+ [issue #1832][is-1832] and [PR #1895][pr-1895].+* In Template Haskell mode, traces are no longer prefixed with "Template+ Haskell error: ", which made warnings look like errors. All traces now go to+ `stderr` (previously, only warnings and errors did). See [issue+ #2216][is-2216].+* Fix duplicated `--safe`, `--unsafe`, and `--pointer` options in the+ `preprocess --help` output. See [issue #2010][is-2010].++[manual-c-stages]: https://github.com/well-typed/hs-bindgen/blob/main/manual/low-level/usage/c-stages.md+[manual-ffi-types]: https://github.com/well-typed/hs-bindgen/blob/main/manual/low-level/translation/ffi-types.md+[is-831]: https://github.com/well-typed/hs-bindgen/issues/831+[is-1003]: https://github.com/well-typed/hs-bindgen/issues/1003+[is-1225]: https://github.com/well-typed/hs-bindgen/issues/1225+[is-1253]: https://github.com/well-typed/hs-bindgen/issues/1253+[is-1382]: https://github.com/well-typed/hs-bindgen/issues/1382+[is-1432]: https://github.com/well-typed/hs-bindgen/issues/1432+[is-1445]: https://github.com/well-typed/hs-bindgen/issues/1445+[is-1520]: https://github.com/well-typed/hs-bindgen/issues/1520+[is-1574]: https://github.com/well-typed/hs-bindgen/issues/1574+[is-1685]: https://github.com/well-typed/hs-bindgen/issues/1685+[is-1715]: https://github.com/well-typed/hs-bindgen/issues/1715+[is-1790]: https://github.com/well-typed/hs-bindgen/issues/1790+[is-1832]: https://github.com/well-typed/hs-bindgen/issues/1832+[is-1860]: https://github.com/well-typed/hs-bindgen/issues/1860+[is-1868]: https://github.com/well-typed/hs-bindgen/issues/1868+[is-1891]: https://github.com/well-typed/hs-bindgen/issues/1891+[is-1910]: https://github.com/well-typed/hs-bindgen/issues/1910+[is-1953]: https://github.com/well-typed/hs-bindgen/issues/1953+[is-2010]: https://github.com/well-typed/hs-bindgen/issues/2010+[is-2012]: https://github.com/well-typed/hs-bindgen/issues/2012+[is-2014]: https://github.com/well-typed/hs-bindgen/issues/2014+[is-2059]: https://github.com/well-typed/hs-bindgen/issues/2059+[is-2060]: https://github.com/well-typed/hs-bindgen/issues/2060+[is-2061]: https://github.com/well-typed/hs-bindgen/issues/2061+[is-2064]: https://github.com/well-typed/hs-bindgen/issues/2064+[is-2080]: https://github.com/well-typed/hs-bindgen/issues/2080+[is-2083]: https://github.com/well-typed/hs-bindgen/issues/2083+[is-2101]: https://github.com/well-typed/hs-bindgen/issues/2101+[is-2121]: https://github.com/well-typed/hs-bindgen/issues/2121+[is-2166]: https://github.com/well-typed/hs-bindgen/issues/2166+[is-2185]: https://github.com/well-typed/hs-bindgen/issues/2185+[is-2198]: https://github.com/well-typed/hs-bindgen/issues/2198+[is-2210]: https://github.com/well-typed/hs-bindgen/issues/2210+[is-2214]: https://github.com/well-typed/hs-bindgen/issues/2214+[is-2216]: https://github.com/well-typed/hs-bindgen/issues/2216+[is-2217]: https://github.com/well-typed/hs-bindgen/issues/2217+[is-2230]: https://github.com/well-typed/hs-bindgen/issues/2230+[is-2235]: https://github.com/well-typed/hs-bindgen/issues/2235+[is-2236]: https://github.com/well-typed/hs-bindgen/issues/2236+[is-2242]: https://github.com/well-typed/hs-bindgen/issues/2242+[is-2243]: https://github.com/well-typed/hs-bindgen/issues/2243+[is-2246]: https://github.com/well-typed/hs-bindgen/issues/2246+[is-2264]: https://github.com/well-typed/hs-bindgen/issues/2264+[is-2266]: https://github.com/well-typed/hs-bindgen/issues/2266+[is-2280]: https://github.com/well-typed/hs-bindgen/issues/2280+[is-2287]: https://github.com/well-typed/hs-bindgen/issues/2287+[pr-1862]: https://github.com/well-typed/hs-bindgen/pull/1862+[pr-1892]: https://github.com/well-typed/hs-bindgen/pull/1892+[pr-1895]: https://github.com/well-typed/hs-bindgen/pull/1895+[pr-1917]: https://github.com/well-typed/hs-bindgen/pull/1917+[pr-1921]: https://github.com/well-typed/hs-bindgen/pull/1921+[pr-1955]: https://github.com/well-typed/hs-bindgen/pull/1955+[pr-2017]: https://github.com/well-typed/hs-bindgen/pull/2017+[pr-2021]: https://github.com/well-typed/hs-bindgen/pull/2021+[pr-2034]: https://github.com/well-typed/hs-bindgen/pull/2034+[pr-2068]: https://github.com/well-typed/hs-bindgen/pull/2068+[pr-2070]: https://github.com/well-typed/hs-bindgen/pull/2070+[pr-2075]: https://github.com/well-typed/hs-bindgen/pull/2075+[pr-2087]: https://github.com/well-typed/hs-bindgen/pull/2087+[pr-2091]: https://github.com/well-typed/hs-bindgen/pull/2091+[pr-2094]: https://github.com/well-typed/hs-bindgen/pull/2094+[pr-2136]: https://github.com/well-typed/hs-bindgen/pull/2136+[pr-2150]: https://github.com/well-typed/hs-bindgen/pull/2150+[pr-2164]: https://github.com/well-typed/hs-bindgen/pull/2164+[pr-2267]: https://github.com/well-typed/hs-bindgen/pull/2267+[pr-2281]: https://github.com/well-typed/hs-bindgen/pull/2281++## 0.1.0-alpha2 -- 2026-03-27++### Breaking changes++* Rename option `--enable-record-dot` to `--omit-field-prefixes`, which is more+ to the point.+* Occurrences of the `CFieldType`/`CBitfieldType` type families in+ class instance heads are now replaced by their definition.+* `--enable-blocks` CLI option renamed to `-fblocks`, matching `clang`+* Macro declarations are now handled internally using a separate namespace.+ Binding specifications and selection predicates now refer to macros using+ `macro`. For example, a macro named `foo` is referred to as `macro foo`.+* For C function *declarations* that take arrays as arguments, generate Haskell+ function declarations that take pointers to their corresponding array+ *elements* as arguments. This uses the `Elem` associated type class from the+ new `IsArray` class. See [PR #1712][pr-1712].+* For C function *types* (.e.g, `typedef`s) that take arrays as arguments,+ generate Haskell function types (.e.g, `newtype`s) that take pointers to their+ corresponding array *elements* as arguments. This uses the `Elem` associated+ type class from the new `IsArray` class. See [PR #1712][pr-1712].+* Parse predicates have been removed. Now, `hs-bindgen` always parses and+ reifies all declarations, reducing code complexity and cognitive overhead+ imposed on users. To migrate, remove `--parse-*` command line client options,+ or the parse-related configuration option when using Template Haskell model.++### New features++* The `info include-graph` sub-command has received new options: `--include+ PCRE`, and `--exclude PCRE` allow fine-tuned choice of headers to include or+ exclude from the include graph; `--simple` reduces include graph verbosity,+ for example, by removing edge labels.+* Generate explicit export lists in preprocessor-generated modules, hiding+ internal `hs_bindgen_` helper bindings from the public API and documentation+ ([#76](https://github.com/well-typed/hs-bindgen/issues/76)). Export items+ are module-qualified (e.g. `Example.myFunc`) to avoid ambiguity with+ Prelude names.+* The command line client has a new `internal frontend` sub-command. It takes a+ `--pass` option (e.g. `internal frontend --pass select`), dumping the result+ of the provided frontend pass. Defaults to `adjust-types` (the final pass)+ when omitted.+* Add `--post-qualified-imports` flag to generate post-qualified imports+ (`import Data.Proxy qualified`) instead of pre-qualified imports. This adds+ the `ImportQualifiedPost` language extension to generated modules.+* Support top-level untagged structs and enums as global variables+ (e.g., `struct { int x; int y; } point;`). The untagged type is named+ after the global variable. Extern untagged declarations+ (e.g., `extern struct { .. } config;`) are rejected as unusable.+* Generate an `IsArray` instance for each newtype of a type with an `IsArray`+* Support unnamed bit-field declarations, used for padding.+* Generate bindings for nested struct and union declarations even if we failed+ to generate bindings for the enclosing struct or union. See [PR+ #1849][pr-1849].+* Generate bindings for nested anonymous structs and unions. See [PR+ #1839][pr-1839] and [PR #1869][pr-1869].++### Minor changes++* Support `language-c` 0.9.x through 0.10.2+ ([#1662](https://github.com/well-typed/hs-bindgen/issues/1662)).+* Re-export all global definitions used by `hs-bindgen` generated code from+ `hs-bindgen-runtime`. This may affect required packages when using+ `hs-bindgen` generated code. In particular, the packages `ghc-prim` and+ `primitive` are not required by `hs-bindgen` generated code anymore.+* Improve and disambiguate delayed parse trace messages.+* Improve error handling in `hs-bindgen` frontend, see [issue #1009][is-1009]++### Bug fixes++* Fix generation of documentation for record fields in Template Haskell mode+ with `OmitFieldPrefixes`. Previously, duplicate record fields induced "ambiguous+ occurrence" errors. This fix is only available for GHC versions 9.8 and newer.+ For older versions of GHC, we deactivated creation of documentation for record+ fields in Template Haskell mode.+* Generate bindings for `static` (non-`const`) declarations. Previously these+ were rejected as an unsupported, even though the duplicate-symbols warning+ suggested using `static`+ ([#1769](https://github.com/well-typed/hs-bindgen/issues/1769)).+* Wrap function names in parentheses in generated C wrappers (`(erf)(x)`+ instead of `erf(x)`) to prevent function-like macro expansion when a macro+ shadows the function name.+* Fix incorrect enum constant values for enums with unsigned underlying types+ (e.g. `enum : uint8_t`). Values above the signed range (such as 128 or 255+ for `uint8_t`) were incorrectly stored as negative numbers because+ `hs-bindgen` used the signed libclang API.+* Include `FunPtr` for macro-defined newtypes. See [PR #1711][pr-1711].+* Fix a panic that occurred in some cases when generating `_Aux` newtypes for+ function pointers. See [issue #1694][is-1694] and [PR #1724][pr-1724].+* Fix a panic that occurred when the argument to a `#include` is a macro. In+ Haddock documentation of declarations in the included header, we just+ document the filename of the header.+* Fix `--create-output-dirs` not creating directories for `--gen-binding-spec`+ output paths. See [issue #1806][is-1806].+* Skip functions whose parameters reference struct/union declarations that+ will not be visible outside of the function, including both forward+ references and inline definitions. This could indicate a missing `#include`+ in the C header. Previously, forward references caused a panic in+ `MangleNames`; now they are skipped with a warning.++[is-1009]: https://github.com/well-typed/hs-bindgen/issues/1009+[is-1694]: https://github.com/well-typed/hs-bindgen/issues/1694+[is-1806]: https://github.com/well-typed/hs-bindgen/issues/1806+[pr-1711]: https://github.com/well-typed/hs-bindgen/pull/1711+[pr-1712]: https://github.com/well-typed/hs-bindgen/pull/1712+[pr-1724]: https://github.com/well-typed/hs-bindgen/pull/1724+[pr-1839]: https://github.com/well-typed/hs-bindgen/pull/1839+[pr-1849]: https://github.com/well-typed/hs-bindgen/pull/1849+[pr-1869]: https://github.com/well-typed/hs-bindgen/pull/1869++## 0.1.0-alpha -- 2026-02-06++* First public pre-release.
@@ -0,0 +1,29 @@+Copyright (c) 2024-2026, Well-Typed LLP and Anduril Industries Inc.+++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.++ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of the copyright holder nor the names of its+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,9 @@+# `hs-bindgen`++`hs-bindgen` is a [Haskell][] library that *automatically* generates Haskell FFI+bindings from C header files.++See the [repository README][] for the manual and other information.++[Haskell]: https://www.haskell.org/+[repository README]: https://github.com/well-typed/hs-bindgen#hs-bindgen
@@ -0,0 +1,617 @@+{-# LANGUAGE ApplicativeDo #-}++-- | @hs-bindgen@ application common types and functions+module HsBindgen.App (+ hsBindgen++ -- * Global options+ , GlobalOpts(..)+ , parseGlobalOpts++ -- * Argument/option parsers+ -- ** Bindgen configuration+ , Config+ , parseConfig+ -- ** Clang arguments+ , parseClangArgsConfig+ -- ** Translation option+ , parseUniqueId+ -- ** Module option+ , parseBaseModuleName+ , parseQualifiedStyle+ -- ** Output options+ , parseHsOutputDir+ , parseDirPolicy+ , parseFilePolicy+ , parseGenBindingSpec+ , parseGenTestsOutput+ -- ** Input arguments+ , parseInputs++ -- * Auxiliary optparse-applicative functions+ , cmd+ , cmd_+ ) where++import Data.Char qualified as Char+import Data.Default (Default (..))+import Data.Either (partitionEithers)+import Data.Maybe (catMaybes)+import Options.Applicative+import Options.Applicative.Extra (helperWith)+import System.IO (stderr)++import HsBindgen+import HsBindgen.ArtefactM (DirPolicy (..), FilePolicy (..))+import HsBindgen.BindingSpec+import HsBindgen.Config+import HsBindgen.Config.ClangArgs+import HsBindgen.Config.Internal+import HsBindgen.Frontend.Pass.Parse.IsPass (EmptyMacros (..))+import HsBindgen.Frontend.Pass.Select.IsPass+import HsBindgen.Frontend.Predicate+import HsBindgen.IR.C qualified as C+import HsBindgen.Macro (CExpr)+import HsBindgen.Macro qualified as Macro+import HsBindgen.TraceMsg+import HsBindgen.Util.Tracer++-- | Convenience entry point using the default C macro language.+hsBindgen ::+ TracerConfig Level TraceMsg+ -> TracerConfig SafeLevel SafeTraceMsg+ -> BindgenConfig+ -> [C.UncheckedRootDirective]+ -> Artefact CExpr a+ -> IO a+hsBindgen = hsBindgenMacroLang (pure . Macro.cExpr)++{-------------------------------------------------------------------------------+ Global options+-------------------------------------------------------------------------------}++data GlobalOpts = GlobalOpts {+ unsafe :: TracerConfig Level TraceMsg+ , safe :: TracerConfig SafeLevel SafeTraceMsg+ }++parseGlobalOpts :: Parser GlobalOpts+parseGlobalOpts = aux <$> parseAnsiColor <*> parseTracerConfig+ where+ aux :: Maybe AnsiColor -> TracerConfig Level TraceMsg -> GlobalOpts+ aux ansiColor tracerConfig =+ let tracerConfigUnsafe :: TracerConfig Level TraceMsg+ tracerConfigUnsafe =+ tracerConfig { outputConfig = mkOutputConfig ansiColor }+ tracerConfigSafe :: TracerConfig SafeLevel SafeTraceMsg+ tracerConfigSafe = TracerConfig {+ verbosity = tracerConfig.verbosity+ , outputConfig = mkOutputConfig ansiColor+ , customLogLevel = mempty+ , showCallStack = tracerConfig.showCallStack+ }+ in GlobalOpts tracerConfigUnsafe tracerConfigSafe++{-------------------------------------------------------------------------------+ Output configuration+-------------------------------------------------------------------------------}++-- | Output configuration writing to 'stderr' with the given ANSI color setting.+--+-- 'Nothing' auto-detects color support from the handle.+mkOutputConfig :: Maybe AnsiColor -> OutputConfig e+mkOutputConfig ansiColor = OutputConfigHandle OutputHandle {+ handle = stderr+ , ansiColor = ansiColor+ }++-- | Parse the @--color WHEN@ option: 'Nothing' (auto) is the default.+parseAnsiColor :: Parser (Maybe AnsiColor)+parseAnsiColor = option (eitherReader auxParse) $ mconcat [+ long "color"+ , metavar "WHEN"+ , value Nothing+ , showDefaultWith auxRender+ , help "Colorize diagnostics WHEN (supported: always, auto, never)"+ ]+ where+ auxParse :: String -> Either String (Maybe AnsiColor)+ auxParse = \case+ "always" -> Right (Just EnableAnsiColor)+ "auto" -> Right Nothing+ "never" -> Right (Just DisableAnsiColor)+ other -> Left $+ "invalid color mode: " ++ other ++ " (supported: always, auto, never)"++ auxRender :: Maybe AnsiColor -> String+ auxRender = \case+ Just EnableAnsiColor -> "always"+ Nothing -> "auto"+ Just DisableAnsiColor -> "never"++{-------------------------------------------------------------------------------+ Tracer configuration+-------------------------------------------------------------------------------}++parseTracerConfig :: Parser (TracerConfig Level TraceMsg)+parseTracerConfig =+ TracerConfig+ <$> parseVerbosity+ <*> pure def+ <*> parseCustomLogLevel+ <*> parseShowCallStack++parseVerbosity :: Parser Verbosity+parseVerbosity = fmap nToVerbosity . option auto $ mconcat [+ short 'v'+ , long "verbosity"+ , metavar "INT"+ , value 2+ , help "Verbosity (0: error, 1: warning, 2: notice, 3: info, 4: debug)"+ , showDefault+ ]+ where+ nToVerbosity :: Int -> Verbosity+ nToVerbosity = Verbosity . \case+ n | n <= 0 -> Error+ 1 -> Warning+ 2 -> Notice+ 3 -> Info+ _otherwise -> Debug++parseCustomLogLevel :: Parser (CustomLogLevel Level TraceMsg)+parseCustomLogLevel = do+ -- Generic setters+ makeTraceInfos <- many $ parseMakeTrace Info+ makeTraceWarnings <- many $ parseMakeTrace Warning+ makeTraceErrors <- many $ parseMakeTrace Error+ -- Generic modifiers+ makeBugsErrors <- optional parseMakeBugsErrors+ makeWarningsErrors <- optional parseMakeWarningsErrors+ -- Specific setters+ enableMacroWarnings <- optional parseEnableMacroWarnings+ makeMangleNamesSquashedInfo <- optional parseMakeMangleNamesSquashedInfo+ pure $ getCustomLogLevel $ catMaybes [+ enableMacroWarnings+ , makeMangleNamesSquashedInfo+ , makeBugsErrors+ , makeWarningsErrors+ ]+ ++ makeTraceInfos+ ++ makeTraceWarnings+ ++ makeTraceErrors+ where+ parseMakeTrace :: Level -> Parser CustomLogLevelSetting+ parseMakeTrace level =+ let levelStr = map Char.toLower $ show level+ in fmap (MakeTrace level) . strOption $ mconcat [+ long $ "log-as-" <> levelStr+ , metavar "TRACE_ID"+ , help $ "Set log level of traces with TRACE_ID to " <> levelStr+ ]++ parseMakeBugsErrors :: Parser CustomLogLevelSetting+ parseMakeBugsErrors = flag' MakeBugsErrors $ mconcat [+ long "log-as-error-bugs"+ , help "Set log level of bugs to error"+ ]++ parseMakeWarningsErrors :: Parser CustomLogLevelSetting+ parseMakeWarningsErrors = flag' MakeWarningsErrors $ mconcat [+ long "log-as-error-warnings"+ , help "Set log level of warnings and bugs to error"+ ]++ parseEnableMacroWarnings :: Parser CustomLogLevelSetting+ parseEnableMacroWarnings = flag' EnableMacroWarnings $ mconcat [+ long "log-enable-macro-warnings"+ , help $ concat [+ "Set log level of macro reparse and typecheck errors to warning"+ , " (default: info)"+ ]+ ]++ parseMakeMangleNamesSquashedInfo :: Parser CustomLogLevelSetting+ parseMakeMangleNamesSquashedInfo =+ flag' MakeMangleNamesSquashedInfo $ mconcat [+ long "log-squashed-as-info"+ , help $ concat [+ "Set log level of squashed-typedef traces to info"+ , " (default: notice)"+ ]+ ]++parseShowCallStack :: Parser ShowCallStack+parseShowCallStack = flag DisableCallStack EnableCallStack $ mconcat [+ long "log-show-call-stack"+ , help "Show call stacks in traces"+ ]++{-------------------------------------------------------------------------------+ Configuration+-------------------------------------------------------------------------------}++type Config = Config_ FilePath++parseConfig :: Parser Config+parseConfig = Config+ <$> parseClangArgsConfig+ <*> parseBindingSpec+ <*> parseSelectionPredicate+ <*> parseProgramSlicing+ <*> parseFieldNamingStrategy+ <*> parseEmptyMacros++{-------------------------------------------------------------------------------+ Binding specifications+-------------------------------------------------------------------------------}++parseBindingSpec :: Parser BindingSpecConfig+parseBindingSpec = BindingSpecConfig+ <$> parseEnableStdlibBindingSpec+ <*> parseBindingSpecAllowNewer+ <*> many parseExtBindingSpec+ <*> optional parsePrescriptiveBindingSpec++parseEnableStdlibBindingSpec :: Parser EnableStdlibBindingSpec+parseEnableStdlibBindingSpec =+ flag EnableStdlibBindingSpec DisableStdlibBindingSpec $ mconcat [+ long "no-stdlib"+ , help "Do not automatically use stdlib external binding specification"+ ]++parseBindingSpecAllowNewer :: Parser BindingSpecCompatibility+parseBindingSpecAllowNewer =+ flag BindingSpecStrict BindingSpecAllowNewer $ mconcat [+ long "binding-spec-allow-newer"+ , help "Parse binding specifications with newer minor version"+ ]++parseExtBindingSpec :: Parser FilePath+parseExtBindingSpec = strOption $ mconcat [+ long "external-binding-spec"+ , metavar "FILE"+ , help "External binding specification (YAML file)"+ ]++parsePrescriptiveBindingSpec :: Parser FilePath+parsePrescriptiveBindingSpec = strOption $ mconcat [+ long "prescriptive-binding-spec"+ , metavar "FILE"+ , help "Prescriptive binding specification (YAML file)"+ ]++{-------------------------------------------------------------------------------+ Builtin include directory+-------------------------------------------------------------------------------}++parseBuiltinIncDirConfig :: Parser BuiltinIncDirConfig+parseBuiltinIncDirConfig = option (eitherReader auxParse) $ mconcat [+ long "builtin-include-dir"+ , metavar "MODE"+ , showDefaultWith auxRender+ , value BuiltinIncDirClang+ , help+ "Configure builtin include directory (supported: clang, disable)"+ ]+ where+ auxParse :: String -> Either String BuiltinIncDirConfig+ auxParse = \case+ "clang" -> Right BuiltinIncDirClang+ "disable" -> Right BuiltinIncDirDisable+ other -> Left $ "invalid builtin include directory mode: " ++ other++ auxRender :: BuiltinIncDirConfig -> String+ auxRender = \case+ BuiltinIncDirClang -> "clang"+ BuiltinIncDirDisable -> "disable"++{-------------------------------------------------------------------------------+ Clang arguments+-------------------------------------------------------------------------------}++parseClangArgsConfig :: Parser (ClangArgsConfig FilePath)+parseClangArgsConfig = do+ -- ApplicativeDo to be able to reorder arguments for --help, and to use+ -- record construction (i.e., to avoid bool or string/path blindness)+ -- instead of positional one.+ enableBlocks <- parseEnableBlocks+ builtinIncDir <- parseBuiltinIncDirConfig+ extraIncludeDirs <- many parseIncludeDir+ argsBefore <- many parseClangOptionBefore+ argsInner <- many parseClangOptionInner+ argsAfter <- many parseClangOptionAfter+ pure $ ClangArgsConfig{+ enableBlocks = enableBlocks+ , builtinIncDir = builtinIncDir+ , extraIncludeDirs = extraIncludeDirs+ , argsBefore = argsBefore+ , argsInner = argsInner+ , argsAfter = argsAfter+ }++parseEnableBlocks :: Parser Bool+parseEnableBlocks = switch $ mconcat [+ long "fblocks"+ , help "Enable the 'blocks' language feature"+ ]++parseIncludeDir :: Parser FilePath+parseIncludeDir = strOption $ mconcat [+ short 'I'+ , metavar "DIR"+ , help "Include search path directory"+ ]++parseClangOptionBefore :: Parser String+parseClangOptionBefore = strOption $ mconcat [+ long "clang-option-before"+ , metavar "OPTION"+ , help "Prepend option when calling Clang; see also --clang-option"+ ]++parseClangOptionInner :: Parser String+parseClangOptionInner = strOption $ mconcat [+ long "clang-option"+ , metavar "OPTION"+ , help "Pass option to Clang"+ ]++parseClangOptionAfter :: Parser String+parseClangOptionAfter = strOption $ mconcat [+ long "clang-option-after"+ , metavar "OPTION"+ , help "Append option when calling Clang; see also --clang-option"+ ]++{-------------------------------------------------------------------------------+ Predicates and slicing+-------------------------------------------------------------------------------}++parseSelectionPredicate :: Parser (Boolean SelectionPredicate)+parseSelectionPredicate = fmap aux . many . asum $ [+ flag' (Right BTrue) $ mconcat [+ long "select-all"+ , help "Select all declarations"+ ]+ , flag' (Right (BIf (SelectHeader FromMainHeaders))) $ mconcat [+ long "select-from-main-headers"+ , help "Select declarations in main headers (default)"+ ]+ , flag' (Right (BIf (SelectHeader FromMainHeaderDirs))) $ mconcat [+ long "select-from-main-header-dirs"+ , help "Select declarations in main header directories"+ ]+ , flag' (Right (BIf (SelectHeader FromAllHeaders))) $ mconcat [+ long "select-from-all-headers"+ , help $ concat [+ "Select declarations in any header"+ , " (unlike --select-all, not root directives or -D options)"+ ]+ ]+ , fmap (Right . BIf . SelectHeader . HeaderPathMatches) $ strOption $ mconcat [+ long "select-by-header-path"+ , metavar "PCRE"+ , help "Select declarations in headers with paths that match PCRE"+ ]+ , fmap (Left . BIf . SelectHeader . HeaderPathMatches) $ strOption $ mconcat [+ long "select-except-by-header-path"+ , metavar "PCRE"+ , help $ concat [+ "Select except declarations in headers with paths that match"+ , " PCRE"+ ]+ ]+ , fmap (Right . BIf . SelectDecl . DeclNameMatches) $ strOption $ mconcat [+ long "select-by-decl-name"+ , metavar "PCRE"+ , help "Select declarations with C names that match PCRE"+ ]+ , fmap (Left . BIf . SelectDecl . DeclNameMatches) $ strOption $ mconcat [+ long "select-except-by-decl-name"+ , metavar "PCRE"+ , help "Select except (i.e., do not select) declarations with C names that match PCRE"+ ]+ , flag' (Left $ BIf $ SelectDecl DeclDeprecated) $ mconcat [+ long "select-except-deprecated"+ , help "Select except (i.e., do not select) deprecated declarations"+ ]+ ]+ where+ aux ::+ [Either (Boolean SelectionPredicate) (Boolean SelectionPredicate)]+ -> (Boolean SelectionPredicate)+ aux = uncurry mergeBooleans . fmap applyDefault . partitionEithers++ applyDefault :: Default a => [a] -> [a]+ applyDefault = \case+ [] -> [def]+ ps -> ps++parseProgramSlicing :: Parser ProgramSlicing+parseProgramSlicing =+ flag DisableProgramSlicing EnableProgramSlicing $ mconcat [+ long "enable-program-slicing"+ , help $ concat [+ "Enable program slicing:"+ , " Select declarations using the selection predicate,"+ , " and also select their transitive dependencies;"+ , " program slicing can cause declarations to be included"+ , " even if they are explicitly deselected by a selection predicate"+ ]+ ]++{-------------------------------------------------------------------------------+ Macros+-------------------------------------------------------------------------------}++parseEmptyMacros :: Parser EmptyMacros+parseEmptyMacros =+ flag DoNotParseEmptyMacros ParseEmptyMacros $ mconcat [+ long "parse-empty-macros"+ , help $ concat [+ "Parse macros with an empty replacement list (e.g. '#define FOO');"+ , " by default, empty macros are not parsed"+ ]+ ]++{-------------------------------------------------------------------------------+ Translation options+-------------------------------------------------------------------------------}++parseUniqueId :: Parser UniqueId+parseUniqueId = fmap UniqueId . strOption $ mconcat [+ long "unique-id"+ , metavar "ID"+ , value ""+ , help $ concat [+ "Use unique ID to discriminate global C identifiers"+ , " (default: empty string)"+ ]+ ]++{-------------------------------------------------------------------------------+ Module option+-------------------------------------------------------------------------------}+++parseFieldNamingStrategy :: Parser FieldNamingStrategy+parseFieldNamingStrategy =+ flag AddFieldPrefixes OmitFieldPrefixes $ mconcat [+ long "omit-field-prefixes"+ , help $ concat [+ "Use unprefixed field names (e.g. 'x' instead of 'structName_x'). "+ , "All newtype unwrap functions are called 'unwrap'. "+ , "Requires 'DuplicateRecordFields' extension."+ ]+ ]++parseQualifiedStyle :: Parser QualifiedStyle+parseQualifiedStyle =+ flag PreQualified PostQualified $ mconcat [+ long "post-qualified-imports"+ , help $ concat [+ "Use post-qualified imports (e.g. 'import Data.Proxy qualified')"+ , " instead of pre-qualified imports."+ , " Adds 'ImportQualifiedPost' extension."+ ]+ ]++parseBaseModuleName :: Parser BaseModuleName+parseBaseModuleName = strOption $ mconcat [+ long "module"+ , metavar "NAME"+ , showDefault+ , value def+ , help "Base name of the generated Haskell modules"+ ]++{-------------------------------------------------------------------------------+ Output options+-------------------------------------------------------------------------------}++parseHsOutputDir :: Parser FilePath+parseHsOutputDir = strOption $ mconcat [+ long "hs-output-dir"+ , metavar "PATH"+ , help "Output directory of generated Haskell modules"+ ]++parseDirPolicy :: Parser DirPolicy+parseDirPolicy = flag DoNotCreateOutputDirs CreateOutputDirs $ mconcat [+ long "create-output-dirs"+ , help "Create the specified output directories if they do not exist"+ ]++parseFilePolicy :: Parser FilePolicy+parseFilePolicy = flag DoNotOverwriteFiles AllowFileOverwrite $ mconcat [+ long "overwrite-files"+ , help "Allow overwriting existing output files"+ ]++parseGenBindingSpec :: Parser FilePath+parseGenBindingSpec = strOption $ mconcat [+ long "gen-binding-spec"+ , metavar "PATH"+ , help "Binding specification to generate"+ ]++parseGenTestsOutput :: Parser FilePath+parseGenTestsOutput = strOption $ mconcat [+ short 'o'+ , long "output"+ , metavar "PATH"+ , showDefault+ , value "test-hs-bindgen"+ , help "Output directory for the test suite"+ ]++{-------------------------------------------------------------------------------+ Input arguments+-------------------------------------------------------------------------------}++-- | Parse one or more input root directives+--+-- @#include@s and @#define@s form a single ordered list: a @#define@ only+-- affects the headers listed after it.+--+-- We check that at least one directive is of type @#include@ when the root+-- header is constructed ('HsBindgen.Frontend.RootHeader.fromRootDirectives').+-- This ensures that CLI and TH mode have the same behavior. Also,+-- @optparse-applicative@ can only reject the parsed list with monadic+-- sequencing, but its usage renderer does not distinguish monadic sequencing+-- from repetition, so every bind picks up the @multiSuffix@ marker.+parseInputs :: Parser [C.UncheckedRootDirective]+parseInputs = some . asum $ [+ C.DirectiveHashInclude <$> parseHashInclude+ , C.DirectiveHashDefine <$> parseHashDefine+ ]+ where+ parseHashInclude :: Parser C.UncheckedHashIncludeArg+ parseHashInclude = strArgument $ mconcat [+ metavar "HEADER"+ , help "Input C header(s), relative to an include path directory"+ ]++ parseHashDefine :: Parser C.HashDefine+ parseHashDefine =+ C.HashDefine+ -- The metavar covers both arguments, so that @--help@ shows the+ -- @#define@ shape; the value argument itself renders nothing.+ <$> strOption (long "hash-define" <> metavar "NAME VALUE" <> help hashDefineHelp)+ <*> strArgument mempty++ hashDefineHelp :: String+ hashDefineHelp = unwords [+ "Emit '#define NAME VALUE' before the following headers."+ , "See 'Root directives' in the manual"+ , "(manual/low-level/usage/c-stages.md)."+ ]++{-------------------------------------------------------------------------------+ Auxiliary optparse-applicative functions+-------------------------------------------------------------------------------}++-- | Command with @-h@ and @--help@+cmd ::+ String -- ^ Name+ -> (a -> c) -- ^ Constructor+ -> Parser a -- ^ Options parser+ -> InfoMod c -- ^ Information+ -> Mod CommandFields c+cmd name mk parser = command name . info (helper <*> (mk <$> parser))++-- | Command with @--help@ (but no @-h@)+cmd_ ::+ String -- ^ Name+ -> (a -> c) -- ^ Constructor+ -> Parser a -- ^ Options parser+ -> InfoMod c -- ^ Information+ -> Mod CommandFields c+cmd_ name mk parser = command name . info (helper' <*> (mk <$> parser))+ where+ helper' :: Parser (a -> a)+ helper' = helperWith $ mconcat [+ long "help"+ , help "Show this help text"+ ]
@@ -0,0 +1,160 @@+{-# LANGUAGE ApplicativeDo #-}+{-# LANGUAGE RecordWildCards #-}++-- | Output mode and category selection options for @hs-bindgen@+module HsBindgen.App.Output (+ -- * Output mode+ OutputMode(..)+ , parseOutputMode+ -- * Single-file category selection+ , SingleFileCategory(..)+ , parseSingleFileCategories+ -- * Output options+ , OutputOptions(..)+ , parseOutputOptions+ -- * Builder+ , buildCategoryChoice+ ) where++import Data.Default (Default (..))+import Data.List.NonEmpty (NonEmpty (..))+import Data.Text (Text)+import GHC.Generics (Generic)+import Options.Applicative+import Options.Applicative.NonEmpty (some1)++import HsBindgen.Backend.Category (ByCategory (..), Choice (..),+ RenameTerm (..))+import HsBindgen.Backend.Level (Level (..))++{-------------------------------------------------------------------------------+ Output mode+-------------------------------------------------------------------------------}++-- | Output mode (single-file vs multi-module)+data OutputMode =+ FilePerModule+ -- ^ One file per category (default)+ | SingleFile (NonEmpty SingleFileCategory)+ -- ^ Single file combining categories+ deriving (Show, Eq)++-- | Parse output mode+parseOutputMode :: OutputMode -> Parser OutputMode+parseOutputMode defMode =+ asum [+ (flag' FilePerModule $ mconcat [+ long "file-per-module"+ , help "Generate one file per binding category (default)"+ ])+ , (flag' SingleFile $ mconcat [+ long "single-file"+ , help ( "Generate a single module file. If more than one category selected "+ ++ "they will be combined. If more than one of the same category is "+ ++ "selected only the last suffix is used."+ )+ ]) <*> parseSingleFileCategories+ , pure defMode+ ]++{-------------------------------------------------------------------------------+ Single-file category selection+-------------------------------------------------------------------------------}++-- | Which category to include in single-file mode (required when mode=SingleFile)+data SingleFileCategory =+ SingleFileSafe Text+ -- ^ Safe only, with optional suffix (empty = none)+ | SingleFileUnsafe Text+ -- ^ Unsafe only, with optional suffix+ | SingleFilePointer Text+ -- ^ Pointer only, with optional suffix+ deriving (Show, Eq)++-- | Parse single-file category selections (one or more required)+parseSingleFileCategories :: Parser (NonEmpty SingleFileCategory)+parseSingleFileCategories = some1 parseSingleFileCategory+ where+ parseSingleFileCategory :: Parser SingleFileCategory+ parseSingleFileCategory =+ (SingleFileSafe <$> strOption (mconcat [+ long "safe"+ , metavar "SUFFIX"+ , help "Include safe bindings (empty suffix for no suffix)"+ ]))+ <|> (SingleFileUnsafe <$> strOption (mconcat [+ long "unsafe"+ , metavar "SUFFIX"+ , help "Include unsafe bindings (empty suffix for no suffix)"+ ]))+ <|> (SingleFilePointer <$> strOption (mconcat [+ long "pointer"+ , metavar "SUFFIX"+ , help "Include pointer bindings (empty suffix for no suffix)"+ ]))++{-------------------------------------------------------------------------------+ Output options+-------------------------------------------------------------------------------}++-- | Output options+newtype OutputOptions = OutputOptions { mode :: OutputMode }+ deriving (Show, Eq, Generic)++-- | Parse output options+parseOutputOptions :: OutputMode -> Parser OutputOptions+parseOutputOptions defMode = OutputOptions <$> parseOutputMode defMode++{-------------------------------------------------------------------------------+ Builder+-------------------------------------------------------------------------------}++-- | Build 'ByCategory' 'Choice' from output options+--+-- When multiple categories are selected, each category gets the specified suffix+-- to avoid duplicate symbols. When only one category is selected with an empty+-- suffix, no renaming occurs.+--+buildCategoryChoice :: OutputOptions -> ByCategory Choice+buildCategoryChoice opts = case opts.mode of+ FilePerModule -> useAllCategories+ SingleFile cats -> buildSingleFileChoice cats+ where+ -- Multi-module: all categories, no renaming+ useAllCategories :: ByCategory Choice+ useAllCategories = ByCategory {+ cType = IncludeTypeCategory+ , cSafe = IncludeTermCategory def+ , cUnsafe = IncludeTermCategory def+ , cFunPtr = IncludeTermCategory def+ , cGlobal = IncludeTermCategory def+ }++ -- Single-file: build based on category selections+ buildSingleFileChoice :: NonEmpty SingleFileCategory -> ByCategory Choice+ buildSingleFileChoice cats = ByCategory {+ cType = IncludeTypeCategory+ , cSafe = foldMap safeChoice cats+ , cUnsafe = foldMap unsafeChoice cats+ , cFunPtr = foldMap pointerChoice cats+ , cGlobal = IncludeTermCategory def+ }++ safeChoice :: SingleFileCategory -> Choice LvlTerm+ safeChoice = \case+ SingleFileSafe s -> IncludeTermCategory (rename s)+ _ -> ExcludeCategory++ unsafeChoice :: SingleFileCategory -> Choice LvlTerm+ unsafeChoice = \case+ SingleFileUnsafe s -> IncludeTermCategory (rename s)+ _ -> ExcludeCategory++ pointerChoice :: SingleFileCategory -> Choice LvlTerm+ pointerChoice = \case+ SingleFilePointer s -> IncludeTermCategory (rename s)+ _ -> ExcludeCategory++ rename :: Text -> RenameTerm+ rename "" = def -- Empty suffix = no renaming+ rename s = RenameTerm (<> s)
@@ -0,0 +1,58 @@+-- | @hs-bindgen-cli@ commands+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli qualified as Cli+module HsBindgen.Cli (+ -- * Commands+ Cmd(..)+ , parseCmd+ -- * Execution+ , exec+ ) where++import Options.Applicative++import HsBindgen.App+import HsBindgen.Cli.BindingSpec qualified as BindingSpec+import HsBindgen.Cli.GenTests qualified as GenTests+import HsBindgen.Cli.Info qualified as Info+import HsBindgen.Cli.Internal qualified as Internal+import HsBindgen.Cli.Preprocess qualified as Preprocess+import HsBindgen.Cli.ToolSupport qualified as ToolSupport++{-------------------------------------------------------------------------------+ Commands+-------------------------------------------------------------------------------}++-- Ordered by usage+data Cmd =+ CmdPreprocess Preprocess.Opts+ | CmdGenTests GenTests.Opts+ | CmdBindingSpec BindingSpec.Cmd+ | CmdInfo Info.Cmd+ | CmdInternal Internal.Cmd+ | CmdToolSupport ToolSupport.Cmd++parseCmd :: Parser Cmd+parseCmd = subparser $ mconcat [+ cmd "preprocess" CmdPreprocess Preprocess.parseOpts Preprocess.info+ , cmd "gen-tests" CmdGenTests GenTests.parseOpts GenTests.info+ , cmd "binding-spec" CmdBindingSpec BindingSpec.parseCmd BindingSpec.info+ , cmd "info" CmdInfo Info.parseCmd Info.info+ , cmd "internal" CmdInternal Internal.parseCmd Internal.info+ , cmd_ "tool-support" CmdToolSupport ToolSupport.parseCmd ToolSupport.info+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Cmd -> IO ()+exec gopts = \case+ CmdPreprocess opts -> Preprocess.exec gopts opts+ CmdGenTests opts -> GenTests.exec gopts opts+ CmdBindingSpec cmd' -> BindingSpec.exec gopts cmd'+ CmdInfo cmd' -> Info.exec gopts cmd'+ CmdInternal cmd' -> Internal.exec gopts cmd'+ CmdToolSupport cmd' -> ToolSupport.exec gopts cmd'
@@ -0,0 +1,47 @@+-- | @hs-bindgen-cli binding-spec@ commands+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.BindingSpec qualified as BindingSpec+module HsBindgen.Cli.BindingSpec (+ -- * CLI help+ info+ -- * Commands+ , Cmd(..)+ , parseCmd+ -- * Execution+ , exec+ ) where++import Options.Applicative hiding (info)++import HsBindgen.App+import HsBindgen.Cli.BindingSpec.StdLib qualified as StdLib++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Binding specification commands"++{-------------------------------------------------------------------------------+ Commands+-------------------------------------------------------------------------------}++-- Ordered lexicographically+newtype Cmd =+ CmdStdLib StdLib.Opts++parseCmd :: Parser Cmd+parseCmd = subparser $ mconcat [+ cmd "stdlib" CmdStdLib StdLib.parseOpts StdLib.info+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Cmd -> IO ()+exec gopts = \case+ CmdStdLib opts -> StdLib.exec gopts opts
@@ -0,0 +1,76 @@+-- | @hs-bindgen-cli binding-spec stdlib@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.BindingSpec.StdLib qualified as StdLib+module HsBindgen.Cli.BindingSpec.StdLib (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Data.ByteString qualified as BS+import Options.Applicative hiding (info)+import System.Exit (exitFailure)++import HsBindgen.App+import HsBindgen.BindingSpec+import HsBindgen.Boot+import HsBindgen.Config.ClangArgs+import HsBindgen.TraceMsg+import HsBindgen.Util.Tracer++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Write stdlib external binding specification"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Opts = Opts {+ clangArgsConfig :: ClangArgsConfig FilePath+ , output :: Maybe FilePath+ }++parseOpts :: Parser Opts+parseOpts =+ Opts+ <$> parseClangArgsConfig+ <*> optional parseOutput'+ where+ parseOutput' :: Parser FilePath+ parseOutput' = strOption $ mconcat [+ short 'o'+ , long "output"+ , metavar "PATH"+ , help "Output path for the binding specification"+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts = do+ mSpec <- withTracer global.unsafe $ \tracer -> do+ clangArgs <- (.clangArgs) <$>+ getClangArtefacts (contramap TraceBoot tracer) opts.clangArgsConfig+ getStdlibBindingSpec+ (contramap (TraceBoot . BootBindingSpec) tracer)+ clangArgs+ case mSpec of+ Left _ -> do+ putStrLn $ "An error happened (see above)"+ exitFailure+ Right spec ->+ case opts.output of+ Just path -> BS.writeFile path $ encode (getFormat path) spec+ Nothing -> BS.putStr $ encode FormatYAML spec
@@ -0,0 +1,76 @@+-- | @hs-bindgen-cli gentests@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.GenTests qualified as GenTests+module HsBindgen.Cli.GenTests (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Data.Default (Default (..))+import Options.Applicative hiding (info)++import HsBindgen+import HsBindgen.App+import HsBindgen.Config+import HsBindgen.Config.Internal+import HsBindgen.IR.C qualified as C+import HsBindgen.Macro++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Generate tests for generated Haskell code"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Opts = Opts {+ config :: Config+ , uniqueId :: UniqueId+ , baseModuleName :: BaseModuleName+ , output :: FilePath+ , inputs :: [C.UncheckedRootDirective]+ }++parseOpts :: Parser Opts+parseOpts =+ Opts+ <$> parseConfig+ <*> parseUniqueId+ <*> parseBaseModuleName+ <*> parseGenTestsOutput+ <*> parseInputs++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts =+ hsBindgen+ global.unsafe+ global.safe+ bindgenConfig+ opts.inputs+ artefact+ where+ artefact :: Artefact CExpr ()+ artefact = writeTests opts.output++ bindgenConfig :: BindgenConfig+ bindgenConfig =+ toBindgenConfig+ opts.config+ opts.uniqueId+ opts.baseModuleName+ def
@@ -0,0 +1,99 @@+-- | @hs-bindgen-cli info@ commands+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Info qualified as Info+module HsBindgen.Cli.Info (+ -- * CLI help+ info+ -- * Commands+ , Cmd(..)+ , parseCmd+ -- * Execution+ , exec+ ) where++import Options.Applicative hiding (info)++import HsBindgen.App+import HsBindgen.Cli.Info.BuiltinMacros qualified as BuiltinMacros+import HsBindgen.Cli.Info.Doxygen qualified as Doxygen+import HsBindgen.Cli.Info.IncludeGraph qualified as IncludeGraph+import HsBindgen.Cli.Info.Instances qualified as Instances+import HsBindgen.Cli.Info.Libclang qualified as Libclang+import HsBindgen.Cli.Info.ResolveHeader qualified as ResolveHeader+import HsBindgen.Cli.Info.UseDeclGraph qualified as UseDeclGraph++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Informational commands, useful when creating bindings"++{-------------------------------------------------------------------------------+ Commands+-------------------------------------------------------------------------------}++-- Ordered lexicographically+data Cmd =+ CmdBuiltinMacros BuiltinMacros.Opts+ | CmdDoxygen Doxygen.Opts+ | CmdIncludeGraph IncludeGraph.Opts+ | CmdInstances ()+ | CmdLibclang Libclang.Opts+ | CmdResolveHeader ResolveHeader.Opts+ | CmdUseDeclGraph UseDeclGraph.Opts++parseCmd :: Parser Cmd+parseCmd = subparser $ mconcat [+ cmd+ "builtin-macros"+ CmdBuiltinMacros+ BuiltinMacros.parseOpts+ BuiltinMacros.info+ , cmd+ "doxygen"+ CmdDoxygen+ Doxygen.parseOpts+ Doxygen.info+ , cmd+ "include-graph"+ CmdIncludeGraph+ IncludeGraph.parseOpts+ IncludeGraph.info+ , cmd+ "instances"+ CmdInstances+ (pure ())+ Instances.info+ , cmd+ "libclang"+ CmdLibclang+ Libclang.parseOpts+ Libclang.info+ , cmd+ "resolve-header"+ CmdResolveHeader+ ResolveHeader.parseOpts+ ResolveHeader.info+ , cmd+ "use-decl-graph"+ CmdUseDeclGraph+ UseDeclGraph.parseOpts+ UseDeclGraph.info+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Cmd -> IO ()+exec gopts = \case+ CmdBuiltinMacros opts -> BuiltinMacros.exec gopts opts+ CmdDoxygen opts -> Doxygen.exec gopts opts+ CmdIncludeGraph opts -> IncludeGraph.exec gopts opts+ CmdInstances () -> Instances.exec+ CmdLibclang opts -> Libclang.exec gopts opts+ CmdResolveHeader opts -> ResolveHeader.exec gopts opts+ CmdUseDeclGraph opts -> UseDeclGraph.exec gopts opts
@@ -0,0 +1,231 @@+-- | @hs-bindgen-cli info builtin-macros@ command+--+-- This command dumps builtin macros using @libclang@. The same can be done+-- using @clang@ with command @clang -dM -E -x c /dev/null@. This command+-- exists because @libclang@ exposes some different macros than @clang@.+--+-- This command is different from the @clang@ dump command in that it fully+-- expands macros.+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Info.BuiltinMacros qualified as BuiltinMacros+module HsBindgen.Cli.Info.BuiltinMacros (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Data.Map.Strict qualified as Map+import Data.Set qualified as Set+import Data.Text qualified as Text+import Options.Applicative hiding (info)++import Clang.Args+import Clang.Enum.Simple+import Clang.HighLevel qualified as HighLevel+import Clang.HighLevel.Types+import Clang.LowLevel.Core++import HsBindgen.App+import HsBindgen.Boot+import HsBindgen.Clang+import HsBindgen.Config.ClangArgs+import HsBindgen.Frontend.Pass.Parse.Builtin+import HsBindgen.Imports+import HsBindgen.IR.C qualified as C+import HsBindgen.TraceMsg+import HsBindgen.Util.Tracer++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "List LLVM/Clang builtin macros"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++newtype Opts = Opts {+ clangArgsConfig :: ClangArgsConfig FilePath+ }++parseOpts :: Parser Opts+parseOpts = Opts <$> parseClangArgsConfig++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts =+ void . withTracer global.unsafe $ \tracer -> do+ let tracerBoot = contramap TraceBoot tracer+ tracerClang = contramap (TraceFrontend . FrontendClang) tracer+ clangArgs <-+ (.clangArgs) <$> getClangArtefacts tracerBoot opts.clangArgsConfig+ -- 1. Get the names of the builtin macros+ names <- getBuiltinMacroNames tracerClang clangArgs+ -- 2. Try to get stringified values for all macros+ results1 <- getMacros tracerClang clangArgs names+ -- 3. Find failed macros, where the stringified macro is the macro name,+ -- and remove them from the results+ let failedNames =+ [n | (n, v) <- Map.toList results1, Text.unpack n == v]+ results2 = foldr Map.delete results1 failedNames+ -- 4. Try to get stringified values for the failed macros by passing a+ -- single paramater+ paramResults <- getParamMacros tracerClang clangArgs failedNames+ -- 5. Compute the final results and the set of all names, with the+ -- parameterized macro names+ let results3 = results2 <> paramResults+ paramNamesSet = Map.keysSet paramResults+ namesSet =+ Set.difference+ (Set.fromList names <> paramNamesSet)+ (Set.map stripParams paramNamesSet)+ -- 6. Print all macros, including any failed ones+ forM_ (Set.toAscList namesSet) $ \name ->+ putStrLn $ renderResult name (Map.lookup name results3)+ where+ -- Output space even when @v@ is empty to match @clang@ behavior+ renderResult :: Text -> Maybe String -> String+ renderResult builtinName mValue =+ let n = Text.unpack builtinName+ v = fromMaybe "UNKNOWN_MACRO_DEFINITION" mValue+ in "#define " ++ n ++ ' ' : v++ stripParams :: Text -> Text+ stripParams = Text.takeWhile (/= '(')++-- | Get the names of all builtin macros+--+-- Parameterized macros do /not/ include the parameters.+getBuiltinMacroNames :: Tracer ClangMsg -> ClangArgs -> IO [Text]+getBuiltinMacroNames tracer clangArgs =+ fmap (fromMaybe []) . withClang' tracer setup $ \unit -> do+ root <- clang_getTranslationUnitCursor unit+ Just <$> HighLevel.clang_visitChildren root visit+ where+ setup :: ClangSetup+ setup = defaultClangSetup clangArgs $+ ClangInputMemory "hs-bindgen-builtins.h" ""++ visit :: Fold IO Text+ visit = simpleFold $ \curr -> do+ mBuiltin <- checkIsBuiltin curr+ case mBuiltin of+ Just name -> foldContinueWith name+ Nothing -> foldBreak++-- | Get stringified definitions of the specified macros+--+-- The stringified definition of a parameteried macro is the macro name itself+-- (not including the parameters).+getMacros :: Tracer ClangMsg -> ClangArgs -> [Text] -> IO (Map Text String)+getMacros tracer clangArgs names =+ fmap (maybe Map.empty Map.fromList) . withClang' tracer setup $ \unit -> do+ root <- clang_getTranslationUnitCursor unit+ Just <$> HighLevel.clang_visitChildren root visit+ where+ setup :: ClangSetup+ setup =+ defaultClangSetup clangArgs+ . ClangInputMemory "hs-bindgen-builtins.h"+ . unlines+ $ helperMacros ++ map mkDecl names++ -- https://gcc.gnu.org/onlinedocs/cpp/Stringizing.html+ helperMacros :: [String]+ helperMacros = [+ "#define STREX(x) #x"+ , "#define STR(x) STREX(x)"+ ]++ mkDecl :: Text -> String+ mkDecl builtinName =+ let name = Text.unpack builtinName+ in "const char *BUILTIN_X_" ++ name ++ " = STR(" ++ name ++ ");"++ parseName :: Text -> Maybe Text+ parseName = Text.stripPrefix "BUILTIN_X_"++ visit :: Fold IO (Text, String)+ visit = simpleFold $ \curr -> do+ C.prelimDeclIdAtCursor curr C.NameKindOrdinary >>= \case+ C.PrelimDeclIdUnnamed{} -> foldContinue+ C.PrelimDeclIdNamed name ->+ (fromSimpleEnum <$> clang_getCursorKind curr) >>= \case+ Right CXCursor_VarDecl -> case parseName name.text of+ Nothing -> foldContinue+ Just builtinName -> HighLevel.clang_evaluate curr >>= \case+ Just (EvalResultString s) -> foldContinueWith (builtinName, s)+ _otherwise -> foldContinue+ _otherwise -> foldContinue++-- | Get stringified definitions of the specified macros with a single parameter+--+-- This is a dirty hack just for the builtin macros. It just passes a single+-- parameter and expects the stringified result to either be unchanged for+-- append some string.+getParamMacros ::+ Tracer ClangMsg+ -> ClangArgs+ -> [Text]+ -> IO (Map Text String)+getParamMacros tracer clangArgs names =+ fmap (maybe Map.empty Map.fromList) . withClang' tracer setup $ \unit -> do+ root <- clang_getTranslationUnitCursor unit+ Just <$> HighLevel.clang_visitChildren root visit+ where+ setup :: ClangSetup+ setup =+ defaultClangSetup clangArgs+ . ClangInputMemory "hs-bindgen-builtins.h"+ . unlines+ $ helperMacros ++ map mkDecl names++ -- https://gcc.gnu.org/onlinedocs/cpp/Stringizing.html+ helperMacros :: [String]+ helperMacros = [+ "#define STREX(x) #x"+ , "#define STR(x) STREX(x)"+ ]++ mkDecl :: Text -> String+ mkDecl builtinName =+ let name = Text.unpack builtinName+ in "const char *BUILTIN_X_" ++ name ++ " = STR(" ++ name ++ "(c));"++ parseName :: Text -> Maybe Text+ parseName = Text.stripPrefix "BUILTIN_X_"++ visit :: Fold IO (Text, String)+ visit = simpleFold $ \curr ->+ C.prelimDeclIdAtCursor curr C.NameKindOrdinary >>= \case+ C.PrelimDeclIdUnnamed{} -> foldContinue+ C.PrelimDeclIdNamed name ->+ (fromSimpleEnum <$> clang_getCursorKind curr) >>= \case+ Right CXCursor_VarDecl -> case parseName name.text of+ Nothing -> foldContinue+ Just builtinName -> HighLevel.clang_evaluate curr >>= \case+ Just (EvalResultString s) -> case mangleValue s of+ Just s' -> foldContinueWith (mangleName builtinName, s')+ Nothing -> foldContinue+ _otherwise -> foldContinue+ _otherwise -> foldContinue++ mangleName :: Text -> Text+ mangleName = (<> "(c)")++ mangleValue :: String -> Maybe String+ mangleValue = \case+ "c" -> Just "c"+ 'c' : s -> Just ("c##" ++ s)+ _otherwise -> Nothing
@@ -0,0 +1,86 @@+-- | @hs-bindgen-cli info doxygen@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Info.Doxygen qualified as Doxygen+module HsBindgen.Cli.Info.Doxygen (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Options.Applicative hiding (info)++import HsBindgen+import HsBindgen.App+import HsBindgen.ArtefactM+import HsBindgen.Backend.Category+import HsBindgen.Config+import HsBindgen.Config.Internal (BindgenConfig)+import HsBindgen.Imports+import HsBindgen.IR.C qualified as C+import HsBindgen.Macro++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Output the parsed doxygen state"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Opts = Opts {+ config :: Config+ , output :: Maybe FilePath+ , inputs :: [C.UncheckedRootDirective]+ , filePolicy :: FilePolicy+ , dirPolicy :: DirPolicy+ }++parseOpts :: Parser Opts+parseOpts =+ Opts+ <$> parseConfig+ <*> optional parseOutput'+ <*> parseInputs+ <*> parseFilePolicy+ <*> parseDirPolicy++parseOutput' :: Parser FilePath+parseOutput' = strOption $ mconcat [+ short 'o'+ , long "output"+ , metavar "PATH"+ , help "Output path for the doxygen state"+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts =+ hsBindgen+ global.unsafe+ global.safe+ bindgenConfig+ opts.inputs+ artefact+ where+ artefact :: Artefact CExpr ()+ artefact = writeDoxygen opts.filePolicy opts.dirPolicy opts.output++ bindgenConfig :: BindgenConfig+ bindgenConfig =+ toBindgenConfig+ opts.config+ (UniqueId "unused-unique-id")+ (BaseModuleName "unused-module-name")+ (def :: ByCategory Choice)
@@ -0,0 +1,137 @@+-- | @hs-bindgen-cli info include-graph@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Info.IncludeGraph qualified as IncludeGraph+module HsBindgen.Cli.Info.IncludeGraph (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Data.Either (partitionEithers)+import Options.Applicative hiding (info)++import HsBindgen+import HsBindgen.App+import HsBindgen.ArtefactM+import HsBindgen.Backend.Category+import HsBindgen.Config+import HsBindgen.Config.Internal (BindgenConfig)+import HsBindgen.Frontend.Analysis.IncludeGraph (HeaderLabelStyle (..),+ IncludeGraphFormat (..))+import HsBindgen.Frontend.Predicate+import HsBindgen.Imports+import HsBindgen.IR.C qualified as C+import HsBindgen.Macro++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Output the include graph"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Opts = Opts {+ config :: Config+ , predicate :: Boolean Regex+ , labelStyle :: HeaderLabelStyle+ , format :: IncludeGraphFormat+ , output :: Maybe FilePath+ , inputs :: [C.UncheckedRootDirective]+ , filePolicy :: FilePolicy+ , dirPolicy :: DirPolicy+ }++parseOpts :: Parser Opts+parseOpts =+ Opts+ <$> parseConfig+ <*> parsePredicate+ <*> parseHeaderLabelStyle+ <*> parseIncludeGraphFormat+ <*> optional parseOutput'+ <*> parseInputs+ <*> parseFilePolicy+ <*> parseDirPolicy++parsePredicate :: Parser (Boolean Regex)+parsePredicate = fmap merge . many . asum $ [+ fmap (Right . BIf) $ strOption $ mconcat [+ long "include"+ , metavar "PCRE"+ , help "Only include headers with paths that match PCRE (by default, include all)"+ ]+ , fmap (Left . BIf) $ strOption $ mconcat [+ long "exclude"+ , metavar "PCRE"+ , help "Exclude headers with paths that match PCRE"+ ]+ ]+ where+ merge :: Eq a => [Either (Boolean a) (Boolean a)] -> Boolean a+ merge = uncurry mergeBooleans . fmap defaultIncludeAll . partitionEithers++ defaultIncludeAll :: [Boolean a] -> [Boolean a]+ defaultIncludeAll = \case+ [] -> [BTrue]+ xs -> xs++parseHeaderLabelStyle :: Parser HeaderLabelStyle+parseHeaderLabelStyle = flag ShowIncludeArgs ShowPaths $ mconcat [+ long "show-paths"+ , help "Show paths of include header files instead of their '#include' arguments"+ ]++parseIncludeGraphFormat :: Parser IncludeGraphFormat+parseIncludeGraphFormat = flag Mermaid SortedList $ mconcat [+ long "toposort"+ , help "Output a topologically sorted list of headers instead of a Mermaid graph"+ ]++parseOutput' :: Parser FilePath+parseOutput' = strOption $ mconcat [+ short 'o'+ , long "output"+ , metavar "PATH"+ , help "Output path for the graph"+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts =+ hsBindgen+ global.unsafe+ global.safe+ bindgenConfig+ opts.inputs+ artefact+ where+ artefact :: Artefact CExpr ()+ artefact =+ writeIncludeGraph+ opts.predicate+ opts.labelStyle+ opts.format+ opts.filePolicy+ opts.dirPolicy+ opts.output++ bindgenConfig :: BindgenConfig+ bindgenConfig =+ toBindgenConfig+ opts.config+ (UniqueId "unused-unique-id")+ (BaseModuleName "unused-module-name")+ (def :: ByCategory Choice)
@@ -0,0 +1,62 @@+-- | @hs-bindgen-cli info instances@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Info.Instances qualified as Instances+module HsBindgen.Cli.Info.Instances (+ -- * CLI help+ info+ -- * Execution+ , exec+ ) where++import Data.List qualified as List+import Data.Map.Strict qualified as Map+import Data.Set qualified as Set+import Options.Applicative hiding (info)++import HsBindgen.Imports+import HsBindgen.Instances qualified as Inst++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "List supported instances and strategies"++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: IO ()+exec = mapM_ putStrLn (aux def)+ where+ aux :: Inst.SupportedInstances -> [String]+ aux supportedInstances =+ auxKind "struct" supportedInstances.struct+ ++ auxKind "union" supportedInstances.union+ ++ auxKind "enum" supportedInstances.enum+ ++ auxKind "typedef" supportedInstances.typedef+ ++ auxKind "emptydata" supportedInstances.emptydata++ auxKind :: String -> Map Inst.TypeClass Inst.SupportedStrategies -> [String]+ auxKind kind classMap =+ ("* `" ++ kind ++ "`")+ : map (indent . uncurry auxClass) (Map.toAscList classMap)++ auxClass :: Inst.TypeClass -> Inst.SupportedStrategies -> String+ auxClass clss supportedStrategies = "* `" ++ show clss ++ "`: "+ ++ List.intercalate ", "+ ( map+ (auxStrategy supportedStrategies.defStrategy)+ (Set.toAscList supportedStrategies.strategies)+ )++ auxStrategy :: Maybe Inst.Strategy -> Inst.Strategy -> String+ auxStrategy mDefStrat strat = '`' : show strat ++ "`" ++ case mDefStrat of+ Just defStrat | strat == defStrat -> " (default)"+ _otherwise -> ""++ indent :: String -> String+ indent = (" " ++)
@@ -0,0 +1,110 @@+-- | @hs-bindgen-cli info libclang@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Info.Libclang qualified as Libclang+module HsBindgen.Cli.Info.Libclang (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Options.Applicative hiding (info)+import Prettyprinter.Util qualified as PP+import System.Exit (exitFailure)++import Clang.Enum.Simple (SimpleEnum (..), simpleFromC)+import Clang.LowLevel.Core (CXErrorCode (..))++import HsBindgen.App+import HsBindgen.Boot+import HsBindgen.Clang+import HsBindgen.Config.ClangArgs+import HsBindgen.Imports+import HsBindgen.TraceMsg+import HsBindgen.Util.Tracer++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = mconcat [+ progDesc "Run libclang with empty input"+ , footerDoc . Just . PP.reflow $ mconcat infoHelpMessage+ ]++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++newtype Opts = Opts {+ clangArgsConfig :: ClangArgsConfig FilePath+ }++parseOpts :: Parser Opts+parseOpts = Opts <$> parseClangArgsConfig++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts = do+ eRes <- withTracer tracerConfigWithoutASTReadError $ \tracer -> do+ clangArgs <- (.clangArgs) <$>+ getClangArtefacts (contramap TraceBoot tracer) opts.clangArgsConfig+ let hasNoUserOptions = hasNoUserClangOptions opts.clangArgsConfig+ setup = defaultClangSetup clangArgs $+ ClangInputMemory "hs-bindgen-nop.h" ""++ -- Emit informational message if no user options provided+ when ( hasNoUserOptions+ && global.unsafe.verbosity.level >= Info) $ do+ traceWith (contramap (TraceFrontend . FrontendClang) tracer) $+ withCallStack ClangInvokedWithoutOptions++ withClang+ (contramap (TraceFrontend . FrontendClang) tracer)+ setup+ (const (pure ()))+ case eRes of+ Left e -> do+ print $ prettyForTrace e+ exitFailure+ Right _ -> pure ()+ where+ -- Check if user provided any Clang options via command line+ --+ hasNoUserClangOptions :: ClangArgsConfig FilePath -> Bool+ hasNoUserClangOptions clangArgs = and [+ null clangArgs.argsBefore+ , null clangArgs.argsInner+ , null clangArgs.argsAfter+ ]++ -- Check if a trace is CXError_ASTReadError.+ -- This error is benign in the context of 'info libclang' when users+ -- provide diagnostic flags, as they cause Clang to exit without building an AST.+ --+ -- If trace is CXError_ASTReadError make it debug level which should+ -- supress it but still make it available if needed with Debug level+ -- logging+ --+ tracerConfigWithoutASTReadError =+ global.unsafe {+ customLogLevel = CustomLogLevel $ \trace actualLevel ->+ case trace of+ TraceFrontend (FrontendClang (ClangErrorCode (SimpleEnum x)))+ | Just CXError_ASTReadError <- simpleFromC x ->+ Debug+ _ ->+ applyCustomLogLevel+ global.unsafe.customLogLevel+ trace+ actualLevel+ }
@@ -0,0 +1,107 @@+-- | @hs-bindgen-cli info resolve-header@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Info.ResolveHeader qualified as ResolveHeader+module HsBindgen.Cli.Info.ResolveHeader (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Data.Map.Strict qualified as Map+import Data.Set qualified as Set+import Options.Applicative hiding (info)+import System.Exit (ExitCode (ExitFailure))++import HsBindgen.App+import HsBindgen.Boot+import HsBindgen.Clang.Macos+import HsBindgen.Config.ClangArgs+import HsBindgen.Imports+import HsBindgen.IR.C qualified as C+import HsBindgen.Resolve+import HsBindgen.TraceMsg+import HsBindgen.Util.Tracer++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Resolve C headers to source paths"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Opts = Opts {+ clangArgsConfig :: ClangArgsConfig FilePath+ , inputs :: [C.UncheckedRootDirective]+ }++parseOpts :: Parser Opts+parseOpts =+ Opts+ <$> parseClangArgsConfig+ <*> parseInputs++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts = do+ eErr <- withTracer tracerConfig' $ \tracer -> do+ -- This command only resolves headers; #define directives play no role.+ hashIncludeArgs <- checkInputs tracer (C.hashIncludeArgsOf opts.inputs)+ checkMacosEnv (contramap (TraceBoot . BootMacos) tracer)+ clangArgs <- (.clangArgs) <$>+ getClangArtefacts (contramap TraceBoot tracer) opts.clangArgsConfig+ includes <-+ resolveHeaders+ (contramap TraceResolveHeader tracer)+ clangArgs+ (Set.fromList hashIncludeArgs)+ fmap or . forM hashIncludeArgs $ \header' ->+ case Map.lookup header' includes of+ Just path -> (False <$) . putStrLn $ concat [+ "#include <"+ , header'.path+ , "> resolved to "+ , show path+ ]+ Nothing -> (True <$) . putStrLn $ concat [+ "#include <"+ , header'.path+ , "> could not be resolved (header not found)"+ ]+ case eErr of+ Right False -> return ()+ Right True -> throwIO (ExitFailure 1)+ Left e -> do+ print $ prettyForTrace e+ where+ tracerConfig' :: TracerConfig Level TraceMsg+ tracerConfig' = global.unsafe{+ customLogLevel = customLogLevel <> global.unsafe.customLogLevel+ }++ customLogLevel :: CustomLogLevel Level TraceMsg+ customLogLevel = CustomLogLevel $ \case+ TraceResolveHeader ResolveHeaderFound{} -> const Debug+ TraceResolveHeader ResolveHeaderNotAttempted{} -> const Debug+ _otherTrace -> id++ -- | Check the @#include@ arguments, emitting trace messages+ checkInputs ::+ Tracer TraceMsg+ -> [C.UncheckedHashIncludeArg]+ -> IO [C.HashIncludeArg]+ checkInputs tracer = mapM $+ C.hashIncludeArgWithTrace+ (contramap (TraceBoot . BootHashIncludeArg) tracer)
@@ -0,0 +1,89 @@+-- | @hs-bindgen-cli info use-decl-graph@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Info.UseDeclGraph qualified as UseDeclGraph+module HsBindgen.Cli.Info.UseDeclGraph (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Options.Applicative hiding (info)++import HsBindgen+import HsBindgen.App+import HsBindgen.ArtefactM+import HsBindgen.Config+import HsBindgen.Config.Internal (BindgenConfig)+import HsBindgen.Imports+import HsBindgen.IR.C qualified as C+import HsBindgen.Macro++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Output the use-decl graph"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Opts = Opts {+ config :: Config+ , uniqueId :: UniqueId+ , baseModuleName :: BaseModuleName+ , output :: Maybe FilePath+ , inputs :: [C.UncheckedRootDirective]+ , filePolicy :: FilePolicy+ , dirPolicy :: DirPolicy+ }++parseOpts :: Parser Opts+parseOpts =+ Opts+ <$> parseConfig+ <*> parseUniqueId+ <*> parseBaseModuleName+ <*> optional parseOutput'+ <*> parseInputs+ <*> parseFilePolicy+ <*> parseDirPolicy++parseOutput' :: Parser FilePath+parseOutput' = strOption $ mconcat [+ short 'o'+ , long "output"+ , metavar "PATH"+ , help "Output path for the graph"+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts =+ hsBindgen+ global.unsafe+ global.safe+ bindgenConfig+ opts.inputs+ artefact+ where+ artefact :: Artefact CExpr ()+ artefact = writeUseDeclGraph opts.filePolicy opts.dirPolicy opts.output++ bindgenConfig :: BindgenConfig+ bindgenConfig =+ toBindgenConfig+ opts.config+ opts.uniqueId+ opts.baseModuleName+ def
@@ -0,0 +1,45 @@+-- | @hs-bindgen-cli internal@ commands+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Internal qualified as Internal+module HsBindgen.Cli.Internal (+ -- * CLI help+ info+ -- * Commands+ , Cmd(..)+ , parseCmd+ -- * Execution+ , exec+ ) where++import Options.Applicative hiding (info)++import HsBindgen.App+import HsBindgen.Cli.Internal.Frontend qualified as Frontend++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Internal commands, for hs-bindgen development"++{-------------------------------------------------------------------------------+ Commands+-------------------------------------------------------------------------------}++newtype Cmd = CmdFrontend Frontend.Opts++parseCmd :: Parser Cmd+parseCmd = subparser $ mconcat [+ cmd "frontend" CmdFrontend Frontend.parseOpts Frontend.info+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Cmd -> IO ()+exec gopts = \case+ CmdFrontend opts -> Frontend.exec gopts opts
@@ -0,0 +1,149 @@+-- | @hs-bindgen-cli internal frontend@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Internal.Frontend qualified as Frontend+module HsBindgen.Cli.Internal.Frontend (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Data.List (intercalate)+import Options.Applicative hiding (info)++import HsBindgen+import HsBindgen.App+import HsBindgen.Artefact+import HsBindgen.ArtefactM+import HsBindgen.Config+import HsBindgen.Config.Internal+import HsBindgen.Imports+import HsBindgen.IR.C qualified as C+import HsBindgen.Macro++{-------------------------------------------------------------------------------+ Existential wrapper+-------------------------------------------------------------------------------}++-- | Existential wrapper pairing 'FrontendPass' with a 'Show' constraint.+data SomeFrontendPass where+ SomeFrontendPass :: Show result => FrontendPass CExpr result -> SomeFrontendPass++-- | Parse a frontend pass name (inverse of 'frontendPassName').+--+-- Returns 'Left' with an error message listing valid names on failure.+parseFrontendPassName :: String -> Either String SomeFrontendPass+parseFrontendPassName s = case lookup s knownPasses of+ Just d -> Right d+ Nothing -> Left $+ "unknown pass " ++ show s ++ "; valid passes: "+ ++ intercalate ", " (map fst knownPasses)+ where+ knownPasses :: [(String, SomeFrontendPass)]+ knownPasses = [+ mk ParsePass+ , mk SimplifyASTPass+ , mk FillUnnamedIdsPass+ , mk EnrichCommentsPass+ , mk ConstructTranslationUnitPass+ , mk TypecheckMacrosPass+ , mk ReparseMacroExpansionsPass+ , mk ResolveBindingSpecsPass+ , mk MangleNamesPass+ , mk AdjustTypesPass+ , mk SelectPass+ , mk FinalPass+ ]++ mk :: Show result => FrontendPass CExpr result -> (String, SomeFrontendPass)+ mk d = (frontendPassName d, SomeFrontendPass d)++-- Ensure that we handle all 'FrontendPass' constructors.+frontendPassName :: FrontendPass CExpr result -> String+frontendPassName = \case+ ParsePass -> "parse"+ SimplifyASTPass -> "simplify-ast"+ FillUnnamedIdsPass -> "fill-unnamed-ids"+ EnrichCommentsPass -> "enrich-comments"+ ConstructTranslationUnitPass -> "construct-translation-unit"+ TypecheckMacrosPass -> "typecheck-macros"+ ReparseMacroExpansionsPass -> "reparse-macro-expansions"+ ResolveBindingSpecsPass -> "resolve-binding-specs"+ MangleNamesPass -> "mangle-names"+ AdjustTypesPass -> "adjust-types"+ SelectPass -> "select"+ FinalPass -> "final"++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Dump the result of a frontend pass"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Opts = Opts {+ dump :: SomeFrontendPass+ , config :: Config+ , uniqueId :: UniqueId+ , baseModuleName :: BaseModuleName+ , dirPolicy :: DirPolicy+ , inputs :: [C.UncheckedRootDirective]+ , filePolicy :: FilePolicy+ }++parseOpts :: Parser Opts+parseOpts =+ Opts+ <$> parseDump+ <*> parseConfig+ <*> parseUniqueId+ <*> parseBaseModuleName+ <*> parseDirPolicy+ <*> parseInputs+ <*> parseFilePolicy++parseDump :: Parser SomeFrontendPass+parseDump = option (eitherReader parseFrontendPassName) $ mconcat [+ long "pass"+ , value (SomeFrontendPass AdjustTypesPass)+ , showDefaultWith (\(SomeFrontendPass d) -> frontendPassName d)+ , help "Frontend pass to dump"+ , metavar "PASS"+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts = do+ case opts.dump of+ SomeFrontendPass pass ->+ hsBindgen+ global.unsafe+ global.safe+ bindgenConfig+ opts.inputs+ (artefact pass)+ where+ artefact :: Show result => FrontendPass CExpr result -> Artefact CExpr ()+ artefact pass = do+ result <- FrontendPassA pass+ Lift $ delay . WriteToStdOut . StringContent $ show result++ bindgenConfig :: BindgenConfig+ bindgenConfig =+ toBindgenConfig+ opts.config+ opts.uniqueId+ opts.baseModuleName+ def
@@ -0,0 +1,127 @@+-- | @hs-bindgen-cli preprocess@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.Preprocess qualified as Preprocess+module HsBindgen.Cli.Preprocess (+ -- * CLI help+ info+ -- * Options+ , Opts(..)+ , parseOpts+ , ConfigCLI(..)+ -- * Execution+ , exec+ ) where++import Options.Applicative hiding (info)++import HsBindgen+import HsBindgen.App+import HsBindgen.App.Output (OutputMode (..), OutputOptions (..),+ buildCategoryChoice, parseOutputOptions)+import HsBindgen.ArtefactM+import HsBindgen.Config+import HsBindgen.Config.Internal+import HsBindgen.Imports+import HsBindgen.IR.C qualified as C+import HsBindgen.Macro++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Generate Haskell module from C headers"++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Opts = Opts {+ config :: Config+ , configCLI :: ConfigCLI+ }+ deriving (Generic)++parseOpts :: Parser Opts+parseOpts =+ Opts+ <$> parseConfig+ <*> parseConfigCLI++-- | CLI options; the TH equivalent of ConfigCLI' is 'HsBindgen.Config.ConfigTH'.+data ConfigCLI = ConfigCLI {+ uniqueId :: UniqueId+ , baseModuleName :: BaseModuleName+ , qualifiedStyle :: QualifiedStyle+ , outputOptions :: OutputOptions+ , hsOutputDir :: FilePath+ , outputBindingSpec :: Maybe FilePath+ , dirPolicy :: DirPolicy+ , filePolicy :: FilePolicy+ -- NOTE: Inputs (arguments) must be last, options must go before it.+ , inputs :: [C.UncheckedRootDirective]+ }+ deriving (Generic)++parseConfigCLI :: Parser ConfigCLI+parseConfigCLI =+ ConfigCLI+ <$> parseUniqueId+ <*> parseBaseModuleName+ <*> parseQualifiedStyle+ <*> parseOutputOptions FilePerModule+ <*> parseHsOutputDir+ <*> optional parseGenBindingSpec+ <*> parseDirPolicy+ <*> parseFilePolicy+ <*> parseInputs++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Opts -> IO ()+exec global opts = do+ hsBindgen+ global.unsafe+ global.safe+ bindgenConfig+ opts.configCLI.inputs+ artefact+ where+ bindgenConfig :: BindgenConfig+ bindgenConfig =+ toBindgenConfig+ opts.config+ opts.configCLI.uniqueId+ opts.configCLI.baseModuleName+ (buildCategoryChoice opts.configCLI.outputOptions)++ mrc :: ModuleRenderConfig+ mrc = ModuleRenderConfig {+ qualifiedStyle = opts.configCLI.qualifiedStyle+ }++ artefact :: Artefact CExpr ()+ artefact = do+ case opts.configCLI.outputOptions of+ OutputOptions (SingleFile _) ->+ writeBindingsSingle+ mrc+ opts.configCLI.filePolicy+ opts.configCLI.dirPolicy+ opts.configCLI.hsOutputDir+ _ ->+ writeBindingsMultiple+ mrc+ opts.configCLI.filePolicy+ opts.configCLI.dirPolicy+ opts.configCLI.hsOutputDir++ forM_ opts.configCLI.outputBindingSpec $ \path ->+ writeBindingSpec+ opts.configCLI.filePolicy+ opts.configCLI.dirPolicy+ path
@@ -0,0 +1,47 @@+-- | @hs-bindgen-cli tool-support@ commands+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.ToolSupport qualified as ToolSupport+module HsBindgen.Cli.ToolSupport (+ -- * CLI help+ info+ -- * Commands+ , Cmd(..)+ , parseCmd+ -- * Execution+ , exec+ ) where++import Options.Applicative hiding (info)++import HsBindgen.App+import HsBindgen.Cli.ToolSupport.Literate qualified as Literate++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc "Tool support commands, not meant to be used directly"++{-------------------------------------------------------------------------------+ Commands+-------------------------------------------------------------------------------}++-- | Ordered lexicographically+newtype Cmd =+ CmdLiterate Literate.Opts++parseCmd :: Parser Cmd+parseCmd = subparser $ mconcat [+ cmd_ "literate" CmdLiterate Literate.parseOpts Literate.info+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: GlobalOpts -> Cmd -> IO ()+exec _gopts = \case+ CmdLiterate opts -> Literate.exec opts
@@ -0,0 +1,160 @@+{-# LANGUAGE ApplicativeDo #-}++-- | @hs-bindgen-cli tool-support literate@ command+--+-- Intended for qualified import.+--+-- > import HsBindgen.Cli.ToolSupport.Literate qualified as Literate+module HsBindgen.Cli.ToolSupport.Literate (+ -- * CLI help+ info+ -- * Options (provided by @cabal-install@ on the command line)+ , Opts(..)+ , parseOpts+ -- * Execution+ , exec+ ) where++import Control.Exception (throwIO)+import Data.List.NonEmpty (NonEmpty (..))+import GHC.Exception (Exception (..))+import Options.Applicative hiding (info)+import Options.Applicative qualified as O+import Text.Read (readMaybe)++import HsBindgen+import HsBindgen.App+import HsBindgen.App.Output (OutputMode (..), OutputOptions,+ SingleFileCategory (..), buildCategoryChoice,+ parseOutputOptions)+import HsBindgen.ArtefactM+import HsBindgen.Config+import HsBindgen.Config.Internal (BindgenConfig)+import HsBindgen.Errors+import HsBindgen.IR.C qualified as C+import HsBindgen.Macro++{-------------------------------------------------------------------------------+ CLI help+-------------------------------------------------------------------------------}++info :: InfoMod a+info = progDesc $ mconcat [+ "Generate Haskell module from C header, acting as literate Haskell"+ , " preprocessor"+ ]++{-------------------------------------------------------------------------------+ Options (provided by @cabal-install@ on the command line)+-------------------------------------------------------------------------------}++-- | Command line options when the literate preprocessor is invoked+--+-- NOTE: Most of the /actual/ @hs-bindgen-cli@ arguments come from parsing the+-- /contents/ of the file we are processing.+data Opts = Opts {+ input :: FilePath+ , output :: FilePath+ }+ deriving (Show, Eq)++parseOpts :: Parser Opts+parseOpts = do+ -- When @cabal-install@ calls GHC and the preprocessor, it passes some+ -- standard flags, which we do not (all) use. In particular, it passes+ -- @-hide-all-packages@.+ _ <- strOption @String $ mconcat [+ short 'h'+ , metavar "IGNORED"+ , help "Ignore some preprocessor options provided by cabal-install"+ ]++ input <- strArgument $ metavar "IN"+ output <- strArgument $ metavar "OUT"++ return Opts{+ input = input+ , output = output+ }++{-------------------------------------------------------------------------------+ Options (provided at the top of literate Haskell files)+-------------------------------------------------------------------------------}++data Lit = Lit {+ globalOpts :: GlobalOpts+ , config :: Config+ , uniqueId :: UniqueId+ , baseModuleName :: BaseModuleName+ , qualifiedStyle :: QualifiedStyle+ , outputOptions :: OutputOptions+ , inputs :: [C.UncheckedRootDirective]+ }++parseLit :: Parser Lit+parseLit = Lit+ <$> parseGlobalOpts+ <*> parseConfig+ <*> parseUniqueId+ <*> parseBaseModuleName+ <*> parseQualifiedStyle+ <*> parseOutputOptions (SingleFile (SingleFileSafe "" :| []))+ <*> parseInputs++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++exec :: Opts -> IO ()+exec opts = do+ args <- maybe (throwIO' "cannot parse literate file") return . readMaybe+ =<< readFile opts.input+ lit <- handleParseResult $ pureParseLit args++ let bindgenConfig :: BindgenConfig+ bindgenConfig =+ toBindgenConfig+ lit.config+ lit.uniqueId+ lit.baseModuleName+ (buildCategoryChoice lit.outputOptions)++ -- It is understood that literate mode will overwrite existing files+ -- (generated files will anyway live in @dist-newstyle@ or similar)+ filePolicy :: FilePolicy+ filePolicy = AllowFileOverwrite++ mrc :: ModuleRenderConfig+ mrc = ModuleRenderConfig {+ qualifiedStyle = lit.qualifiedStyle+ }++ artefact :: Artefact CExpr ()+ artefact = writeBindings mrc filePolicy DoNotCreateOutputDirs opts.output++ hsBindgen+ lit.globalOpts.unsafe+ lit.globalOpts.safe+ bindgenConfig+ lit.inputs+ artefact+ where+ throwIO' :: String -> IO a+ throwIO' = throwIO . LiterateFileException opts.input++ pureParseLit :: [String] -> ParserResult Lit+ pureParseLit =+ execParserPure (prefs subparserInline) (O.info parseLit mempty)++{-------------------------------------------------------------------------------+ Exception+-------------------------------------------------------------------------------}++data LiterateFileException = LiterateFileException FilePath String+ deriving Show++instance Exception LiterateFileException where+ toException = hsBindgenExceptionToException+ fromException = hsBindgenExceptionFromException+ displayException (LiterateFileException path err) =+ "error loading " ++ path ++ ": " ++ err
@@ -0,0 +1,144 @@+module Main (main) where++import Control.Exception (Exception (..), SomeException (..), handle)+import Data.List qualified as List+import Data.Text qualified as Text+import Data.Version (showVersion)+import Options.Applicative+import Options.Applicative.Help qualified as Help+import Prettyprinter.Util qualified as PP+import System.Exit (ExitCode, exitFailure)++import Clang.Version (compileTimeClangVersionString, runtimeClangVersionString)++import HsBindgen.App+import HsBindgen.BindingSpec qualified as BindingSpec+import HsBindgen.Cli qualified as Cli+import HsBindgen.Errors+import HsBindgen.Imports++import Paths_hs_bindgen qualified as Package++{-------------------------------------------------------------------------------+ CLI parser+-------------------------------------------------------------------------------}++data Cli = Cli {+ globalOpts :: GlobalOpts+ , cmd :: Cli.Cmd+ }++parseCli :: Parser Cli+parseCli =+ Cli+ <$> parseGlobalOpts+ <*> Cli.parseCmd++execCliParser :: IO Cli+execCliParser = customExecParser prefs' opts+ where+ prefs' :: ParserPrefs+ -- 'multiSuffix' marks repeatable options and arguments in the usage+ -- synopsis; without it, @(HEADER | --hash-define NAME VALUE)@ reads as an+ -- exclusive choice of one.+ prefs' = prefs $ multiSuffix "..." <> helpShowGlobals <> subparserInline++ opts :: ParserInfo Cli+ opts = info (parseCli <**> simpleVersioner vers <**> helper) $+ mconcat [+ progDesc "Generate Haskell bindings from C headers"+ , failureCode 2+ , footerDoc . Just . Help.vcat $ List.intersperse "" [+ envVarsFooter+ , clangArgsFooter+ , selectSliceFooter+ , exitCodeFooter+ ]+ ]++ vers :: String+ vers = List.intercalate "\n" [+ "hs-bindgen " ++ showVersion Package.version+ , "binding specification " ++ show BindingSpec.currentBindingSpecVersion+ , "clang compile time version: "+ ++ Text.unpack compileTimeClangVersionString+ , "clang runtime version: " ++ Text.unpack runtimeClangVersionString+ ]++{-------------------------------------------------------------------------------+ Execution+-------------------------------------------------------------------------------}++main :: IO ()+main = handle exceptionHandler $ do+ cli <- execCliParser+ Cli.exec cli.globalOpts cli.cmd++{-------------------------------------------------------------------------------+ Auxiliary functions: exception handling+-------------------------------------------------------------------------------}++exceptionHandler :: SomeException -> IO ()+exceptionHandler e+ | Just _ <- fromException e :: Maybe ExitCode+ = throwIO e++ | Just (HsBindgenException e'') <- fromException e = do+ putStrLn $ displayException e''+ exitFailure++ -- truly unexpected exceptions+ | otherwise = do+ putStrLn $ "Uncaught exception: " ++ displayException e+ putStrLn+ "Please report this at https://github.com/well-typed/hs-bindgen/issues"+ exitFailure++{-------------------------------------------------------------------------------+ Auxiliary functions: footers+-------------------------------------------------------------------------------}++envVarsFooter :: Help.Doc+envVarsFooter = Help.vcat [+ "Environment variables:"+ , li $ "BINDGEN_EXTRA_CLANG_ARGS: Arguments passed to Clang"+ ]++clangArgsFooter :: Help.Doc+clangArgsFooter = Help.vcat [+ "Options passed to Clang have the following order:"+ , " 1. --clang-option-before options"+ , " 2. Clang options managed by hs-bindgen (e.g., -I options)"+ , " 3. --clang-option options"+ , " 4. BINDGEN_EXTRA_CLANG_ARGS options"+ , " 5. --clang-option-after options"+ , " 6. Builtin include directory options"+ ]++selectSliceFooter :: Help.Doc+selectSliceFooter = Help.vcat [+ "Selection and program slicing:"+ , li $ mconcat [+ "Program slicing disabled (default):"+ , " only select declarations according to the selection predicate"+ ]+ , li $ mconcat [+ "Program slicing enabled ('--enable-program-slicing'):"+ , " select declarations using the selection predicate,"+ , " and also select their transitive dependencies;"+ , " program slicing can cause declarations to be included"+ , " even if they are explicitly deselected by a selection predicate"+ ]+ ]++exitCodeFooter :: Help.Doc+exitCodeFooter = Help.vcat [+ "Exit codes:"+ , " 0: Success"+ , " 1: Other errors (panics)"+ , " 2: Invocation of `libclang` has failed"+ , " 3: An `hs-bindgen`-specific error has happened"+ ]++li :: Text -> Help.Doc+li = (" -" Help.<+>) . Help.align . PP.reflow
@@ -0,0 +1,119 @@+#ifndef STANDARD_HEADERS_H+#define STANDARD_HEADERS_H++/**+ * C Standard Library header files+ *+ * Reference:+ *+ * * https://en.cppreference.com/w/c/header+ * * https://en.wikipedia.org/wiki/C_standard_library+ */++/**+ * C89/C90+ *+ * Reference:+ *+ * * https://web.archive.org/web/20161223125339/http://flash-gordon.me.uk/ansi.c.txt+ * 4.1.2 Standard headers+ */++#include <assert.h>+#include <ctype.h>+#include <errno.h>+#include <float.h>+#include <limits.h>+#include <locale.h>+#include <math.h>+#include <setjmp.h>+#include <signal.h>+#include <stdarg.h>+#include <stddef.h>+#include <stdio.h>+#include <stdlib.h>+#include <string.h>+#include <time.h>++/**+* C95 (Normative Addendum 1)+*+* Reference:+*+* * http://www.lysator.liu.se/c/na1.html+*/++#include <iso646.h>+#include <wchar.h>+#include <wctype.h>++/**+ * C99+ *+ * Reference:+ *+ * * https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf+ * 7.1.2 Standard headers+ *+ * Notes:+ *+ * * complex.h is optional+ * * stdbool.h is deprecated in C23+ */++#include <complex.h>+#include <fenv.h>+#include <inttypes.h>+#include <stdbool.h>+#include <stdint.h>+#include <tgmath.h>++/**+ * C11+ *+ * Reference:+ *+ * * https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf+ * 7.1.2 Standard headers+ *+ * Notes:+ *+ * * stdalign.h is deprecated in C23+ * * stdatomic.h is optional, and it is not included in musl+ * * stdnoreturn.h is deprecated in C23+ * * threads.h is optional+ */++#include <stdalign.h>+// #include <stdatomic.h>+#include <stdnoreturn.h>+#include <threads.h>+#include <uchar.h>++/**+ * C17+ *+ * Reference:+ *+ * * https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf+ * 7.1.2 Standard headers+ */++/**+ * C23+ *+ * Reference:+ *+ * * https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf+ * 7.1.2 Standard headers+ *+ * Notes:+ *+ * * stdbit.h is not included in musl+ * * stdckdint.h is not included in musl+ */++// #include <stdbit.h>+// #include <stdckdint.h>++#endif
@@ -0,0 +1,519 @@+{-# LANGUAGE ApplicativeDo #-}++module Main (main) where++import Control.Exception+import Control.Monad+import Control.Monad.IO.Class+import Data.Bifunctor+import Data.Default (Default (def))+import Data.Map.Strict qualified as Map+import Data.Set qualified as Set+import Data.Text (Text)+import Data.Text qualified as T+import Foreign.C.Types (CUInt)+import GHC.Generics (Generic)+import Options.Applicative qualified as OA+import System.Exit (exitFailure)++import Clang.Enum.Bitfield+import Clang.Enum.Simple+import Clang.HighLevel qualified as HighLevel+import Clang.HighLevel.Types hiding (FoldException (..))+import Clang.LowLevel.Core+import Clang.LowLevel.Doxygen+import Clang.Paths++import HsBindgen.Clang+import HsBindgen.Config.ClangArgs+import HsBindgen.IR.C qualified as C+import HsBindgen.Resolve (resolveHeaders)+import HsBindgen.TraceMsg+import HsBindgen.Util.Tracer++{-------------------------------------------------------------------------------+ Options+-------------------------------------------------------------------------------}++data Options = Options {+ builtin :: Bool+ , comments :: Bool+ , extents :: Bool+ , file :: C.HashIncludeArg+ , kind :: Bool+ , includePath :: [FilePath]+ , clangArgsInner :: [String]+ , sameFile :: Bool+ , typ :: Bool+ }++{-------------------------------------------------------------------------------+ Errors+-------------------------------------------------------------------------------}++data AstDumpException =+ HeaderNotFound+ | ClangError+ deriving stock (Show)++instance Exception AstDumpException where+ displayException HeaderNotFound = "header not found"+ displayException ClangError = "clang error"++{-------------------------------------------------------------------------------+ Implementation+-------------------------------------------------------------------------------}++data DumpTrace =+ DumpTraceResolveHeader ResolveHeaderMsg+ | DumpTraceClang ClangMsg+ deriving stock (Show, Generic)+ deriving anyclass (PrettyForTrace, IsTrace Level)++clangAstDump :: Options -> IO ()+clangAstDump opts = do+ putStrLn $ "## `" ++ opts.file.path ++ "`"+ putStrLn ""++ eitherRes <- withTracer tracerConf $ \tracer -> do+ let clangArgs = clangArgsConfigToClangArgs cArgsConfig+ tracerResolve = contramap DumpTraceResolveHeader tracer+ tracerClang = contramap DumpTraceClang tracer+ src <- maybe (throwIO HeaderNotFound) return . Map.lookup opts.file+ =<< resolveHeaders tracerResolve clangArgs (Set.singleton opts.file)+ let setup :: ClangSetup+ setup = (defaultClangSetup clangArgs $ ClangInputFile (realPathToSourcePath src)) {+ flags = cOpts+ }++ maybe (throwIO ClangError) return <=< withClang tracerClang setup $ \unit -> Just <$> do+ rootCursor <- clang_getTranslationUnitCursor unit+ void . HighLevel.clang_visitChildren rootCursor $ simpleFold $ \cursor -> do+ loc <- clang_getPresumedLocation =<< clang_getCursorLocation cursor+ case loc of+ (file, _, _)+ | opts.sameFile && file /= getRealPathText src -> foldContinue+ | not opts.builtin && isBuiltIn file -> foldContinue+ | otherwise -> foldDecls opts cursor+ case eitherRes of+ Left e -> do+ print $ prettyForTrace e+ exitFailure+ Right _ -> pure ()+ where+ tracerConf :: TracerConfig Level DumpTrace+ tracerConf = def {+ verbosity = Verbosity Debug+ }++ cArgsConfig :: ClangArgsConfig FilePath+ cArgsConfig = def {+ extraIncludeDirs = opts.includePath+ , argsInner = opts.clangArgsInner+ }++ cOpts :: BitfieldEnum CXTranslationUnit_Flags+ cOpts = bitfieldEnum [+ CXTranslationUnit_DetailedPreprocessingRecord+ , CXTranslationUnit_IncludeAttributedTypes+ , CXTranslationUnit_VisitImplicitAttributes+ ]++ isBuiltIn :: Text -> Bool+ isBuiltIn = (`elem` [T.pack "<built-in>", T.pack "<command line>"])+++foldDecls :: Options -> CXCursor -> IO (Next IO ())+foldDecls opts = \cursor -> do+ traceU_ 0 =<< clang_getCursorDisplayName cursor++ dumpParents cursor+ when opts.extents $ dumpExtent cursor++ cursorKind <- clang_getCursorKind cursor+ traceU 1 "cursor kind" cursorKind+ isDecl <- clang_isDeclaration cursorKind+ when opts.kind $+ traceWhen 2 "declaration" id isDecl++ cursorType <- clang_getCursorType cursor++ isRecurse <- case fromSimpleEnum cursorKind of+ Right CXCursor_StructDecl -> do+ dumpType cursor cursorType isDecl+ pure True+ Right CXCursor_EnumDecl -> do+ dumpType cursor cursorType isDecl+ traceU 1 "integer type" =<< clang_getEnumDeclIntegerType cursor+ pure True+ Right CXCursor_FieldDecl -> do+ dumpType cursor cursorType isDecl+ traceU 1 "field offset" =<< clang_Cursor_getOffsetOfField cursor+ isBitField <- clang_Cursor_isBitField cursor+ when isBitField $+ traceU 1 "bit width" =<< clang_getFieldDeclBitWidth cursor+ pure False -- leaf+ Right CXCursor_EnumConstantDecl -> do+ dumpType cursor cursorType isDecl+ traceU 1 "integer value" =<< clang_getEnumConstantDeclValue cursor+ pure False -- leaf+ Right CXCursor_FunctionDecl -> do+ dumpType cursor cursorType isDecl+ numArgs <- clang_getNumArgTypes cursorType+ traceU 1 "args" numArgs+ forM_ [0 .. numArgs - 1] $ \i -> do+ argType <- clang_getArgType cursorType (fromIntegral i)+ traceO_ 2 i =<< clang_getTypeSpelling argType+ resultType <- clang_getResultType cursorType+ traceU 1 "result" =<< clang_getTypeSpelling resultType+ pure False+ Right CXCursor_VarDecl -> do+ traceU 1 "eval result" =<< HighLevel.clang_evaluate cursor+ pure False+ Right CXCursor_TypedefDecl -> do+ dumpType cursor cursorType isDecl+ traceU 1 "typedef name" =<< clang_getTypedefName cursorType+ -- Results in repeated information unless the `typedef` is a+ -- declaration.+ pure True+ Right CXCursor_MacroDefinition ->+ -- TODO: Not defined yet.+ pure True+ Right CXCursor_InclusionDirective ->+ pure False -- does not matter+ Right CXCursor_UnionDecl -> do+ dumpType cursor cursorType isDecl+ pure True+ Right CXCursor_LinkageSpec -> do+ -- NOTE: The linkage specification has no display name, and so the+ -- parents of the children are unknown, that is, the empty string "".+ pure True+ Right{} -> False <$ traceL 1 "CURSOR_KIND_NOT_IMPLEMENTED"+ Left n -> False <$ traceU 1 "CURSOR_KIND_ENUM_OUT_OF_RANGE" n++ when (isDecl && opts.comments) $ do+ commentText <- clang_Cursor_getRawCommentText cursor+ unless (T.null commentText) $ do+ traceU 1 "comment" commentText+ traceU 2 "brief" =<< clang_Cursor_getBriefCommentText cursor+ dumpComment 2 Nothing =<< clang_Cursor_getParsedComment cursor++ if isRecurse+ then foldRecurse $ simpleFold (foldDecls opts)+ else foldContinue+ where+ dumpParents :: CXCursor -> IO ()+ dumpParents cursor = do+ semanticParent <- clang_getCursorSemanticParent cursor+ lexicalParent <- clang_getCursorLexicalParent cursor+ parentsEq <- clang_equalCursors semanticParent lexicalParent+ if parentsEq+ then+ traceU 1 "parent"+ =<< clang_getCursorDisplayName semanticParent+ else do+ traceU 1 "semantic parent"+ =<< clang_getCursorDisplayName semanticParent+ traceU 1 "lexical parent"+ =<< clang_getCursorDisplayName lexicalParent++ dumpExtent :: CXCursor -> IO ()+ dumpExtent cursor = do+ extent <- clang_getCursorExtent cursor+ (file, startLine, startCol) <-+ clang_getPresumedLocation =<< clang_getRangeStart extent+ (_, endLine, endCol) <-+ clang_getPresumedLocation =<< clang_getRangeEnd extent+ traceU 1 "extent" (file, (startLine, startCol), (endLine, endCol))++ dumpType :: CXCursor -> CXType -> Bool -> IO ()+ dumpType cursor cursorType isDecl = do+ traceU 1 "cursor type" =<< clang_getTypeSpelling cursorType+ when opts.typ $ do+ let typeKind = cxtKind cursorType+ traceU 2 "kind" $ fromSimpleEnum typeKind+ traceU 3 "spelling" =<< clang_getTypeKindSpelling typeKind+ traceU 2 "canonical"+ =<< clang_getTypeSpelling =<< clang_getCanonicalType cursorType+ when isDecl $ do+ decl <- HighLevel.classifyDeclaration cursor+ case decl of+ Definition -> do+ traceU 2 "declaration type" ("Definition" :: String)+ traceU 2 "sizeof"+ =<< handleCallFailed (clang_Type_getSizeOf cursorType)+ traceU 2 "alignment"+ =<< handleCallFailed (clang_Type_getAlignOf cursorType)+ DefinitionElsewhere{} ->+ traceU 2 "declaration type" ("DefinitionElsewhere" :: String)+ DefinitionUnavailable ->+ traceU 2 "declaration type" ("DefinitionUnavailable" :: String)++dumpComment :: Int -> Maybe CUInt -> CXComment -> IO ()+dumpComment level mIdx comment = do+ commentKind <- clang_Comment_getKind comment+ maybe (traceU level) (traceO level) mIdx "kind" $ fromSimpleEnum commentKind+ traceWhen level1 "whitespace" id =<< clang_Comment_isWhitespace comment++ case fromSimpleEnum commentKind of+ Right CXComment_Null -> pure ()++ Right CXComment_Text ->+ traceU level1 "text" =<< clang_TextComment_getText comment++ Right CXComment_InlineCommand -> do+ traceU level1 "name"+ =<< clang_InlineCommandComment_getCommandName comment+ traceU level1 "render kind" . fromSimpleEnum+ =<< clang_InlineCommandComment_getRenderKind comment+ numArgs <- clang_InlineCommandComment_getNumArgs comment+ when (numArgs > 0) $ do+ traceU level1 "args" numArgs+ forM_ [0 .. numArgs - 1] $ \i ->+ traceO_ level2 i =<< clang_InlineCommandComment_getArgText comment i++ Right CXComment_HTMLStartTag -> do+ traceU level1 "name" =<< clang_HTMLTagComment_getTagName comment+ traceWhen level1 "self-closing" id+ =<< clang_HTMLStartTagComment_isSelfClosing comment+ numAttrs <- clang_HTMLStartTag_getNumAttrs comment+ when (numAttrs > 0) $ do+ traceU level1 "attributes" numAttrs+ forM_ [0 .. numAttrs - 1] $ \i -> do+ traceO_ level2 i =<< clang_HTMLStartTag_getAttrName comment i+ traceU level3 "value" =<< clang_HTMLStartTag_getAttrValue comment i++ Right CXComment_HTMLEndTag -> do+ traceU level1 "name" =<< clang_HTMLTagComment_getTagName comment++ Right CXComment_Paragraph -> pure ()++ Right CXComment_BlockCommand -> do+ traceU level1 "name" =<<+ clang_BlockCommandComment_getCommandName comment+ numArgs <- clang_BlockCommandComment_getNumArgs comment+ when (numArgs > 0) $ do+ traceU level1 "args" numArgs+ forM_ [0 .. numArgs - 1] $ \i ->+ traceO_ level2 i =<< clang_BlockCommandComment_getArgText comment i+ -- NOTE paragraph is also provided by children+ -- para <- clang_BlockCommandComment_getParagraph comment+ -- traceL level1 "paragraph"+ -- dumpComment level2 Nothing para++ Right CXComment_ParamCommand -> do+ traceU level1 "name" =<< clang_ParamCommandComment_getParamName comment+ traceU level1 "index"+ =<< clang_ParamCommandComment_getParamIndex comment+ traceUnless level2 "invalid" id+ =<< clang_ParamCommandComment_isParamIndexValid comment+ traceU level1 "direction" . fromSimpleEnum+ =<< clang_ParamCommandComment_getDirection comment+ traceU level2 "explicit"+ =<< clang_ParamCommandComment_isDirectionExplicit comment++ Right CXComment_TParamCommand -> do+ traceU level1 "name" =<< clang_TParamCommandComment_getParamName comment+ traceUnless level1 "position invalid" id+ =<< clang_TParamCommandComment_isParamPositionValid comment+ depth <- clang_TParamCommandComment_getDepth comment+ traceU level1 "depth" depth+ forM_ [0 .. depth] $ \i ->+ traceO level2 i "index"+ =<< clang_TParamCommandComment_getIndex comment i++ Right CXComment_VerbatimBlockCommand -> pure ()++ Right CXComment_VerbatimBlockLine ->+ traceU level1 "text" =<< clang_VerbatimBlockLineComment_getText comment++ Right CXComment_VerbatimLine ->+ traceU level1 "text" =<< clang_VerbatimLineComment_getText comment++ Right CXComment_FullComment -> do+ traceUnless level "HTML" T.null =<< clang_FullComment_getAsHTML comment+ traceUnless level "XML" T.null =<< clang_FullComment_getAsXML comment++ Left n -> traceU level1 "COMMENT_KIND_ENUM_OUT_OF_RANGE" n++ numChildren <- clang_Comment_getNumChildren comment+ when (numChildren > 0) $ do+ traceU level1 "children" numChildren+ forM_ [0 .. numChildren - 1] $ \i ->+ dumpComment level2 (Just i) =<< clang_Comment_getChild comment i+ where+ level1, level2, level3 :: Int+ level1 = level + 1+ level2 = level + 2+ level3 = level + 3++{-------------------------------------------------------------------------------+ Error handling+-------------------------------------------------------------------------------}++-- | Handle 'CallFailed' exceptions, returning the hint on error+handleCallFailed :: forall a m.+ MonadIO m+ => IO a+ -> m (Either String a)+handleCallFailed action = liftIO $ first getHint <$> try action+ where+ getHint :: CallFailed -> String+ getHint (CallFailed hint _backtrace) = hint++{-------------------------------------------------------------------------------+ Trace Functions+-------------------------------------------------------------------------------}++-- | Trace Markdown list item (internal)+--+-- This function is not meant to be used directly. Use one of the below+-- functions instead.+trace' :: (Show a, MonadIO m)+ => Int -- ^ indentation level, from 0+ -> Maybe Int -- ^ index of ordered list+ -> Maybe String -- ^ label+ -> Maybe a -- ^ value+ -> m ()+trace' level mIndex mLabel mValue = liftIO . putStrLn $ concat+ [ replicate (level * 4) ' '+ , maybe "* " ((++ ". ") . show) mIndex+ , case (mLabel, mValue) of+ (Just label, Just value) -> label ++ ": " ++ show value+ (Just label, Nothing) -> label+ (Nothing, Just value) -> show value+ (Nothing, Nothing) -> ""+ ]++-- | Trace label (unordered)+traceL :: MonadIO m+ => Int -- ^ indentation level, from 0+ -> String -- ^ label+ -> m ()+traceL level label = trace' @() level Nothing (Just label) Nothing++-- | Trace value (unordered, no label)+traceU_ :: (Show a, MonadIO m)+ => Int -- ^ indentation level, from 0+ -> a -- ^ value+ -> m ()+traceU_ level value = trace' level Nothing Nothing (Just value)++-- | Trace value (unordered, with label)+traceU :: (Show a, MonadIO m)+ => Int -- ^ indentation level, from 0+ -> String -- ^ label+ -> a -- ^ value+ -> m ()+traceU level label value = trace' level Nothing (Just label) (Just value)++-- | Trace value (ordered, no label)+traceO_ :: (Integral i, Show a, MonadIO m)+ => Int -- ^ indentation level, from 0+ -> i -- ^ index of ordered list+ -> a -- ^ value+ -> m ()+traceO_ level index value =+ trace' level (Just $ fromIntegral index) Nothing (Just value)++-- | Trace value (ordered, with label)+traceO :: (Integral i, Show a, MonadIO m)+ => Int -- ^ indentation level, from 0+ -> i -- ^ index of ordered list+ -> String -- ^ label+ -> a -- ^ value+ -> m ()+traceO level index label value =+ trace' level (Just $ fromIntegral index) (Just label) (Just value)++-- | Trace value when predicate holds (unordered, with label)+traceWhen :: (Show a, MonadIO m)+ => Int -- ^ indentation level, from 0+ -> String -- ^ label+ -> (a -> Bool) -- ^ predicate+ -> a -- ^ value+ -> m ()+traceWhen level label p value = when (p value) $ traceU level label value++-- | Trace value when predicate does not hold (unordered, with label)+traceUnless :: (Show a, MonadIO m)+ => Int -- ^ indentation level, from 0+ -> String -- ^ label+ -> (a -> Bool) -- ^ predicate+ -> a -- ^ value+ -> m ()+traceUnless level label p value = unless (p value) $ traceU level label value++{-------------------------------------------------------------------------------+ CLI+-------------------------------------------------------------------------------}++main :: IO ()+main = clangAstDump . uncurry applyAll =<< OA.execParser pinfo+ where+ pinfo :: OA.ParserInfo (Bool, Options)+ pinfo = OA.info (OA.helper <*> parseOptions) $ mconcat+ [ OA.fullDesc+ , OA.progDesc "Clang AST dump"+ , OA.failureCode 2+ ]++ parseOptions :: OA.Parser (Bool, Options)+ parseOptions = do+ -- flags enabled by all flag+ optComments <- mkFlag "comments" "show comments"+ optExtents <- mkFlag "extents" "show extents"+ optKind <- mkFlag "kind" "show kind details"+ optType <- mkFlag "type" "show type details"+ -- all flag+ optAll <- mkFlag "all" "enable all above flags"+ -- other options/arguments+ optBuiltin <- mkFlag "builtin" "show builtin macros"+ optSameFile <- mkFlag "same-file" "only show from specified file"+ optIncludePath <- includeDirOptions+ optClangArgsInner <- clangArgsInnerOption+ optFile <- fileArgument++ pure (optAll, Options{+ builtin = optBuiltin+ , comments = optComments+ , extents = optExtents+ , file = optFile+ , kind = optKind+ , includePath = optIncludePath+ , clangArgsInner = optClangArgsInner+ , sameFile = optSameFile+ , typ = optType+ })++ includeDirOptions :: OA.Parser [FilePath]+ includeDirOptions = OA.many . OA.strOption $ mconcat+ [ OA.short 'I'+ , OA.metavar "DIR"+ , OA.help "Include search path directory"+ ]++ clangArgsInnerOption :: OA.Parser [String]+ clangArgsInnerOption = OA.many . OA.strOption $ mconcat [+ OA.long "clang-option"+ , OA.metavar "OPTION"+ , OA.help "Pass option to clang"+ ]++ fileArgument :: OA.Parser C.HashIncludeArg+ fileArgument = fmap C.HashIncludeArg . OA.strArgument $ mconcat+ [ OA.metavar "FILE"+ , OA.help "C (header) file to parse"+ ]++ mkFlag :: String -> String -> OA.Parser Bool+ mkFlag flag doc = OA.switch $ OA.long flag <> OA.help doc++ applyAll :: Bool -> Options -> Options+ applyAll False opts = opts+ applyAll True opts = opts {+ comments = True+ , extents = True+ , kind = True+ , typ = True+ }
@@ -0,0 +1,681 @@+cabal-version: 3.0+name: hs-bindgen+version: 1.0.0.0+license: BSD-3-Clause+license-file: LICENSE+author: Well-Typed LLP+maintainer: info@well-typed.com+category: Development+build-type: Simple+synopsis: Generate Haskell bindings from C headers+description: Automatically generate Haskell bindings from C headers+tested-with:+ GHC ==9.4.8+ || ==9.6.7+ || ==9.8.4+ || ==9.10.3+ || ==9.12.2+ || ==9.14.1++extra-source-files:+ bootstrap/*.h+ musl-include/**/*.h+ musl-include/COPYRIGHT+ musl-include/VERSION+ test-artefacts/fixtures/**/*.hs+ test-artefacts/fixtures/**/*.txt+ test-artefacts/fixtures/**/*.yaml+ test-artefacts/headers/**/*.h+ test-artefacts/headers/**/*.yaml++extra-doc-files:+ CHANGELOG.md+ known-issues.md+ README.md++source-repository head+ type: git+ location: https://github.com/well-typed/hs-bindgen+ subdir: hs-bindgen++source-repository this+ type: git+ location: https://github.com/well-typed/hs-bindgen+ subdir: hs-bindgen+ tag: release-1.0.0.0++flag dev+ description: Build debugging utilities for developing hs-bindgen itself+ default: False+ manual: True++common lang+ ghc-options:+ -Wall -Widentities -Wprepositive-qualified-module+ -Wredundant-constraints -Wunused-packages+ -Wno-unticked-promoted-constructors++ build-depends: base >=4.17 && <4.23+ default-language: GHC2021+ default-extensions:+ DataKinds+ DefaultSignatures+ DeriveAnyClass+ DerivingStrategies+ DerivingVia+ DisambiguateRecordFields+ DuplicateRecordFields+ FunctionalDependencies+ LambdaCase+ MultiWayIf+ NoFieldSelectors+ NoNamedFieldPuns+ OverloadedLabels+ OverloadedRecordDot+ OverloadedStrings+ PatternSynonyms+ QuantifiedConstraints+ TypeApplications+ TypeFamilies+ UndecidableInstances+ ViewPatterns++ if impl(ghc >=9.8)+ default-extensions: TypeAbstractions++library internal+ import: lang+ hs-source-dirs: src-internal+ ghc-options: -Wmissing-export-lists++ -- Modules containing public API.+ exposed-modules: HsBindgen.Config++ -- Internal modules+ --+ -- Rules:+ --+ -- * HsBindgen.IR.* modules must not (transitively) import from Frontend or+ -- Backend+ exposed-modules:+ Data.Digraph+ HsBindgen+ HsBindgen.Artefact+ HsBindgen.ArtefactM+ HsBindgen.Backend+ HsBindgen.Backend.Category+ HsBindgen.Backend.Category.ApplyChoice+ HsBindgen.Backend.Extensions+ HsBindgen.Backend.Global+ HsBindgen.Backend.Hs.AST+ HsBindgen.Backend.Hs.AST.CompletePragma+ HsBindgen.Backend.Hs.AST.Strategy+ HsBindgen.Backend.Hs.CallConv+ HsBindgen.Backend.Hs.Haddock.Documentation+ HsBindgen.Backend.Hs.Haddock.Translation+ HsBindgen.Backend.Hs.Name+ HsBindgen.Backend.Hs.Origin+ HsBindgen.Backend.Hs.Translation+ HsBindgen.Backend.Hs.Translation.Field+ HsBindgen.Backend.Hs.Translation.ForeignImport+ HsBindgen.Backend.Hs.Translation.Function+ HsBindgen.Backend.Hs.Translation.Instances+ HsBindgen.Backend.Hs.Translation.Monad+ HsBindgen.Backend.Hs.Translation.Newtype+ HsBindgen.Backend.Hs.Translation.Structure+ HsBindgen.Backend.Hs.Translation.ToFromFunPtr+ HsBindgen.Backend.Hs.Translation.Union+ HsBindgen.Backend.HsModule.Names+ HsBindgen.Backend.HsModule.Pretty+ HsBindgen.Backend.HsModule.Pretty.CAPI+ HsBindgen.Backend.HsModule.Pretty.Comment+ HsBindgen.Backend.HsModule.Pretty.Common+ HsBindgen.Backend.HsModule.Pretty.Decl+ HsBindgen.Backend.HsModule.Pretty.Expr+ HsBindgen.Backend.HsModule.Pretty.Type+ HsBindgen.Backend.HsModule.Render+ HsBindgen.Backend.HsModule.Translation+ HsBindgen.Backend.HsModule.Translation.Doxygen+ HsBindgen.Backend.Level+ HsBindgen.Backend.Runtime+ HsBindgen.Backend.SHs.AST+ HsBindgen.Backend.SHs.AST.Expr+ HsBindgen.Backend.SHs.AST.Type+ HsBindgen.Backend.SHs.Simplify+ HsBindgen.Backend.SHs.Translation+ HsBindgen.Backend.SHs.Translation.Common+ HsBindgen.Backend.SHs.Translation.MapFunction+ HsBindgen.Backend.TH.Translation+ HsBindgen.Backend.UniqueSymbol+ HsBindgen.BindingSpec+ HsBindgen.BindingSpec.Gen+ HsBindgen.BindingSpec.Private.Common+ HsBindgen.BindingSpec.Private.Stdlib+ HsBindgen.BindingSpec.Private.V1+ HsBindgen.BindingSpec.Private.Version+ HsBindgen.Boot+ HsBindgen.Cache+ HsBindgen.Clang+ HsBindgen.Clang.CompareVersions+ HsBindgen.Clang.Discover+ HsBindgen.Clang.ExtraClangArgs+ HsBindgen.Clang.Macos+ HsBindgen.Clang.Tokens+ HsBindgen.Config.ClangArgs+ HsBindgen.Config.Internal+ HsBindgen.Config.MangleCandidate+ HsBindgen.Config.MangleCandidate.ReservedNames+ HsBindgen.Config.Prelims+ HsBindgen.Doxygen+ HsBindgen.Eff+ HsBindgen.Errors+ HsBindgen.Frontend+ HsBindgen.Frontend.Analysis+ HsBindgen.Frontend.Analysis.DeclIndex+ HsBindgen.Frontend.Analysis.DeclIndex.ResolveMacro+ HsBindgen.Frontend.Analysis.DeclUseGraph+ HsBindgen.Frontend.Analysis.DeclUseGraph.Construction+ HsBindgen.Frontend.Analysis.DeclUseGraph.Definition+ HsBindgen.Frontend.Analysis.DeclUseGraph.Query+ HsBindgen.Frontend.Analysis.Deps+ HsBindgen.Frontend.Analysis.IncludeGraph+ HsBindgen.Frontend.Analysis.Typedefs+ HsBindgen.Frontend.Analysis.UnnamedIdUsage+ HsBindgen.Frontend.Analysis.UseDeclGraph+ HsBindgen.Frontend.DeclMeta+ HsBindgen.Frontend.LanguageC+ HsBindgen.Frontend.LanguageC.Error+ HsBindgen.Frontend.LanguageC.Monad+ HsBindgen.Frontend.LanguageC.PartialAST+ HsBindgen.Frontend.LanguageC.PartialAST.FromLanC+ HsBindgen.Frontend.LanguageC.PartialAST.ToBindgen+ HsBindgen.Frontend.Pass.AdjustTypes+ HsBindgen.Frontend.Pass.AdjustTypes.IsPass+ HsBindgen.Frontend.Pass.ConstructTranslationUnit+ HsBindgen.Frontend.Pass.ConstructTranslationUnit.IsPass+ HsBindgen.Frontend.Pass.EnrichComments+ HsBindgen.Frontend.Pass.EnrichComments.IsPass+ HsBindgen.Frontend.Pass.FillUnnamedIds+ HsBindgen.Frontend.Pass.FillUnnamedIds.ChooseNames+ HsBindgen.Frontend.Pass.FillUnnamedIds.IsPass+ HsBindgen.Frontend.Pass.Final+ HsBindgen.Frontend.Pass.MangleNames+ HsBindgen.Frontend.Pass.MangleNames.CreateNames+ HsBindgen.Frontend.Pass.MangleNames.DetectClashes+ HsBindgen.Frontend.Pass.MangleNames.Error+ HsBindgen.Frontend.Pass.MangleNames.IsPass+ HsBindgen.Frontend.Pass.MangleNames.Names+ HsBindgen.Frontend.Pass.MangleNames.ResolveNames+ HsBindgen.Frontend.Pass.Parse+ HsBindgen.Frontend.Pass.Parse.Builtin+ HsBindgen.Frontend.Pass.Parse.Context+ HsBindgen.Frontend.Pass.Parse.Decl+ HsBindgen.Frontend.Pass.Parse.Decl.Field+ HsBindgen.Frontend.Pass.Parse.Decl.ImplicitFields+ HsBindgen.Frontend.Pass.Parse.Decl.Macro+ HsBindgen.Frontend.Pass.Parse.Decl.Members+ HsBindgen.Frontend.Pass.Parse.IsPass+ HsBindgen.Frontend.Pass.Parse.Monad.Decl+ HsBindgen.Frontend.Pass.Parse.Monad.SourceRangeMap+ HsBindgen.Frontend.Pass.Parse.Monad.Type+ HsBindgen.Frontend.Pass.Parse.Msg+ HsBindgen.Frontend.Pass.Parse.Result+ HsBindgen.Frontend.Pass.Parse.Type+ HsBindgen.Frontend.Pass.PrepareReparse+ HsBindgen.Frontend.Pass.PrepareReparse.AST+ HsBindgen.Frontend.Pass.PrepareReparse.Flatten+ HsBindgen.Frontend.Pass.PrepareReparse.IsPass+ HsBindgen.Frontend.Pass.PrepareReparse.IsPass.Msg+ HsBindgen.Frontend.Pass.PrepareReparse.Lexer+ HsBindgen.Frontend.Pass.PrepareReparse.Parser+ HsBindgen.Frontend.Pass.PrepareReparse.Preprocessor+ HsBindgen.Frontend.Pass.PrepareReparse.Printer+ HsBindgen.Frontend.Pass.PrepareReparse.Printer.Util+ HsBindgen.Frontend.Pass.PrepareReparse.Simplifier+ HsBindgen.Frontend.Pass.PrepareReparse.Tracer+ HsBindgen.Frontend.Pass.PrepareReparse.Update+ HsBindgen.Frontend.Pass.ReparseMacroExpansions+ HsBindgen.Frontend.Pass.ReparseMacroExpansions.ForgetAnn+ HsBindgen.Frontend.Pass.ReparseMacroExpansions.IsPass+ HsBindgen.Frontend.Pass.ReparseMacroExpansions.IsPass.Msg+ HsBindgen.Frontend.Pass.ReparseMacroExpansions.LanC+ HsBindgen.Frontend.Pass.ReparseMacroExpansions.Zip+ HsBindgen.Frontend.Pass.ReparseMacroExpansions.Zip.Error+ HsBindgen.Frontend.Pass.ResolveBindingSpecs+ HsBindgen.Frontend.Pass.ResolveBindingSpecs.IsPass+ HsBindgen.Frontend.Pass.Select+ HsBindgen.Frontend.Pass.Select.IsPass+ HsBindgen.Frontend.Pass.SimplifyAST+ HsBindgen.Frontend.Pass.SimplifyAST.IsPass+ HsBindgen.Frontend.Pass.TranslateTypes+ HsBindgen.Frontend.Pass.TranslateTypes.IsPass+ HsBindgen.Frontend.Pass.TranslateTypes.IsPass.Msg+ HsBindgen.Frontend.Pass.TranslateTypes.Translation+ HsBindgen.Frontend.Pass.TypecheckMacros+ HsBindgen.Frontend.Pass.TypecheckMacros.IsPass+ HsBindgen.Frontend.Pass.TypecheckMacros.KnownTypes+ HsBindgen.Frontend.Pass.TypecheckMacros.Typecheck+ HsBindgen.Frontend.Predicate+ HsBindgen.Frontend.PrettyC+ HsBindgen.Frontend.ProcessIncludes+ HsBindgen.Frontend.RootHeader+ HsBindgen.Frontend.TranslationUnit+ HsBindgen.Guasi+ HsBindgen.Imports+ HsBindgen.Instances+ HsBindgen.IR.C+ HsBindgen.IR.C.Conflict+ HsBindgen.IR.C.Decl+ HsBindgen.IR.C.DeclPath+ HsBindgen.IR.C.HashDefine+ HsBindgen.IR.C.HashIncludeArg+ HsBindgen.IR.C.LocationInfo+ HsBindgen.IR.C.Naming+ HsBindgen.IR.C.PrettyPrinter+ HsBindgen.IR.C.RootDirective+ HsBindgen.IR.C.Type+ HsBindgen.IR.Hs+ HsBindgen.IR.Hs.Type+ HsBindgen.IR.Pass+ HsBindgen.IR.Pass.Ann+ HsBindgen.IR.Pass.CommentDecl+ HsBindgen.IR.Pass.Definition+ HsBindgen.IR.Pass.ExtBinding+ HsBindgen.IR.Pass.Id+ HsBindgen.IR.Pass.Macro+ HsBindgen.IR.Pass.Msg+ HsBindgen.IR.Pass.ScopedName+ HsBindgen.IR.Pass.Types+ HsBindgen.IR.Translation+ HsBindgen.Language.C+ HsBindgen.Language.Haskell+ HsBindgen.Macro.Empty+ HsBindgen.Macro.Error+ HsBindgen.Macro.Flip+ HsBindgen.Macro.Interface+ HsBindgen.Macro.Parse+ HsBindgen.Macro.Raw+ HsBindgen.Macro.Raw.Lang+ HsBindgen.Macro.Raw.Parse+ HsBindgen.Macro.Syntax+ HsBindgen.Macro.Type+ HsBindgen.Macro.UniqueExpansion+ HsBindgen.Macro.UniqueExpansion.Parse+ HsBindgen.Macro.UniqueExpansion.Types+ HsBindgen.NameHint+ HsBindgen.Orphans+ HsBindgen.Resolve+ HsBindgen.Test+ HsBindgen.Test.C+ HsBindgen.Test.Hs+ HsBindgen.Test.Internal+ HsBindgen.Test.Readme+ HsBindgen.TH.Internal+ HsBindgen.TraceMsg+ HsBindgen.Util.Monad+ HsBindgen.Util.Process+ HsBindgen.Util.Rational+ HsBindgen.Util.Tracer+ Text.SimplePrettyPrint++ other-modules: Paths_hs_bindgen+ autogen-modules: Paths_hs_bindgen+ other-extensions: TemplateHaskellQuotes++ -- Internal dependencies+ build-depends: hs-bindgen-runtime >=1.0.0.0 && <1.1++ -- External dependencies+ build-depends:+ , aeson >=2.2.1.0 && <2.3+ , ansi-terminal >=1.0.0 && <1.2+ , array >=0.5.4.0 && <0.6+ , base-compat >=0.13.1 && <0.16+ , base16-bytestring >=1.0.2.0 && <1.1+ , bytestring >=0.11.4.0 && <0.13+ , containers >=0.6.5.1 && <0.9+ , contra-tracer >=0.2 && <0.3+ , cryptohash-sha256 >=0.11.102.1 && <0.12+ , data-default >=0.7 && <0.9+ , debruijn ^>=0.3.1+ , directory >=1.3.6.2 && <1.4+ , doxygen-parser >=0.1 && <0.2+ , exceptions >=0.10 && <0.11+ , filepath >=1.4 && <1.6+ , fin >=0.3.2 && <0.4+ , language-c >=0.9 && <0.11+ , libclang-bindings >=0.2 && <0.3+ , mtl >=2.2 && <2.4+ , optics-core >=0.4 && <0.5+ , parsec >=3.1 && <3.2+ , pretty >=1.1.3.6 && <1.2+ , process >=1.6 && <1.7+ , regex-pcre-builtin >=0.95 && <0.96+ , some >=1.0.6 && <1.1+ , template-haskell >=2.19 && <2.25+ , temporary >=1.3 && <1.4+ , text >=1.2 && <2.2+ , transformers >=0.5 && <0.7+ , unliftio-core >=0.2.1 && <0.3+ , vec >=0.5 && <0.6+ , yaml >=0.11.11.1 && <0.12++library+ import: lang+ hs-source-dirs: src+ exposed-modules:+ HsBindgen.Macro+ HsBindgen.TH++ other-modules:+ HsBindgen.Internal.Macro.CExpr+ HsBindgen.Internal.Macro.CExpr.Global+ HsBindgen.Internal.Macro.CExpr.Parse+ HsBindgen.Internal.Macro.CExpr.Resolution+ HsBindgen.Internal.Macro.CExpr.Translation.Type+ HsBindgen.Internal.Macro.CExpr.Translation.Value+ HsBindgen.Internal.Macro.CExpr.Type+ HsBindgen.Internal.Macro.CExpr.Typecheck++ reexported-modules:+ other-extensions: TemplateHaskellQuotes++ -- Internal dependencies+ build-depends:+ , hs-bindgen-runtime+ , hs-bindgen:internal++ -- External dependencies+ build-depends:+ , c-expr-dsl >=0.2 && <0.3+ , c-expr-runtime >=0.1 && <0.2++ -- Inherited dependencies+ build-depends:+ , containers+ , data-default+ , debruijn+ , fin+ , libclang-bindings+ , template-haskell+ , text+ , vec++executable hs-bindgen-cli+ import: lang+ default-extensions: NoFieldSelectors+ main-is: hs-bindgen-cli.hs+ hs-source-dirs: app+ other-modules:+ HsBindgen.App+ HsBindgen.App.Output+ HsBindgen.Cli+ HsBindgen.Cli.BindingSpec+ HsBindgen.Cli.BindingSpec.StdLib+ HsBindgen.Cli.GenTests+ HsBindgen.Cli.Info+ HsBindgen.Cli.Info.BuiltinMacros+ HsBindgen.Cli.Info.Doxygen+ HsBindgen.Cli.Info.IncludeGraph+ HsBindgen.Cli.Info.Instances+ HsBindgen.Cli.Info.Libclang+ HsBindgen.Cli.Info.ResolveHeader+ HsBindgen.Cli.Info.UseDeclGraph+ HsBindgen.Cli.Internal+ HsBindgen.Cli.Internal.Frontend+ HsBindgen.Cli.Preprocess+ HsBindgen.Cli.ToolSupport+ HsBindgen.Cli.ToolSupport.Literate+ Paths_hs_bindgen++ autogen-modules: Paths_hs_bindgen++ -- Internal dependencies+ build-depends:+ , hs-bindgen+ , hs-bindgen:internal++ -- Inherited dependencies+ build-depends:+ , containers+ , data-default+ , libclang-bindings++ -- External dependencies+ build-depends:+ , bytestring >=0.11.4.0 && <0.13+ , optparse-applicative >=0.18 && <0.20+ , prettyprinter >=1.7.1 && <1.8+ , text >=1.2 && <2.2++executable clang-ast-dump+ import: lang+ main-is: Main.hs+ hs-source-dirs: clang-ast-dump++ if flag(dev)+ buildable: True++ else+ buildable: False++ -- Internal dependencies+ build-depends: hs-bindgen:internal++ -- Inherited dependencies+ build-depends:+ , containers+ , data-default+ , libclang-bindings+ , text++ -- External dependencies+ build-depends: optparse-applicative >=0.18 && <0.20++library test-common+ import: lang+ hs-source-dirs: test/common+ exposed-modules:+ Test.Common.HsBindgen.Trace+ Test.Common.HsBindgen.Trace.Patterns+ Test.Common.HsBindgen.Trace.Predicate+ Test.Common.Util.AnsiDiff+ Test.Common.Util.Cabal+ Test.Common.Util.Tasty+ Test.Common.Util.Tasty.Golden++ -- Internal dependencies+ build-depends: hs-bindgen:internal++ -- Inherited dependencies+ build-depends:+ , ansi-terminal+ , bytestring+ , containers+ , directory+ , filepath+ , mtl+ , text+ , transformers++ -- External dependencies+ build-depends:+ , deepseq >=1.4 && <1.6+ , Diff >=1.0 && <1.1+ , edit-distance >=0.2.2.1 && <0.3+ , primitive >=0.9 && <0.10+ , tasty >=1.5 && <1.6+ , tasty-hunit >=0.10.2 && <0.11+ , utf8-string >=1.0.2 && <1.1++test-suite test-hs-bindgen+ import: lang+ type: exitcode-stdio-1.0+ main-is: test-hs-bindgen.hs+ hs-source-dirs: test/hs-bindgen++ -- -threaded is needed for parallel fixture compilation via direct GHC+ -- invocations.+ -- Suppress warning about hs-bindgen being unused in test code+ -- (it's only used when compiling generated TH modules)+ ghc-options: -threaded -Wno-unused-packages+ other-modules:+ Test.HsBindgen.Clang+ Test.HsBindgen.Fixtures.Haddock+ Test.HsBindgen.Fixtures.TestCases+ Test.HsBindgen.Fixtures.Utils+ Test.HsBindgen.Frontend.LanguageC+ Test.HsBindgen.Frontend.Pass.PrepareReparse+ Test.HsBindgen.Golden+ Test.HsBindgen.Golden.Arrays+ Test.HsBindgen.Golden.Attributes+ Test.HsBindgen.Golden.BindingSpecs+ Test.HsBindgen.Golden.Comprehensive+ Test.HsBindgen.Golden.Declarations+ Test.HsBindgen.Golden.Documentation+ Test.HsBindgen.Golden.EdgeCases+ Test.HsBindgen.Golden.Functions+ Test.HsBindgen.Golden.Globals+ Test.HsBindgen.Golden.Infra.Check.BindingSpec+ Test.HsBindgen.Golden.Infra.Check.FailureBindgen+ Test.HsBindgen.Golden.Infra.Check.FailureLibclang+ Test.HsBindgen.Golden.Infra.Check.PP+ Test.HsBindgen.Golden.Infra.Check.TH+ Test.HsBindgen.Golden.Infra.TestCase+ Test.HsBindgen.Golden.Infra.TestCaseTree+ Test.HsBindgen.Golden.Macros+ Test.HsBindgen.Golden.Macros.Lang+ Test.HsBindgen.Golden.Macros.Redeclaration+ Test.HsBindgen.Golden.Macros.Reparse+ Test.HsBindgen.Golden.ProgramAnalysis+ Test.HsBindgen.Golden.Types+ Test.HsBindgen.Integration.ExitCode+ Test.HsBindgen.Integration.OverwritePolicy+ Test.HsBindgen.Macro.CExpr+ Test.HsBindgen.Macro.Infra+ Test.HsBindgen.Macro.Syntax+ Test.HsBindgen.Macro.Syntax.Clang+ Test.HsBindgen.Macro.UniqueExpansion+ Test.HsBindgen.PPFixtures+ Test.HsBindgen.PPFixtures.Compile+ Test.HsBindgen.PPFixtures.TestCases+ Test.HsBindgen.Prop.Selection+ Test.HsBindgen.Resources+ Test.HsBindgen.THFixtures+ Test.HsBindgen.THFixtures.Compile+ Test.HsBindgen.THFixtures.Generate+ Test.HsBindgen.THFixtures.TestCases+ Test.HsBindgen.Unit.ClangArgs+ Test.HsBindgen.Unit.Digraph+ Test.HsBindgen.Unit.Frontend+ Test.HsBindgen.Unit.Pretty+ Test.HsBindgen.Unit.RootDirective+ Test.HsBindgen.Unit.Runtime+ Test.HsBindgen.Unit.Tracer++ -- Internal dependencies+ build-depends:+ , hs-bindgen+ , hs-bindgen-runtime+ , hs-bindgen:internal+ , test-common++ -- Inherited dependencies+ build-depends:+ , c-expr-dsl+ , containers+ , data-default+ , debruijn+ , directory+ , filepath+ , libclang-bindings+ , mtl+ , optics-core+ , parsec+ , process+ , tasty+ , tasty-hunit+ , template-haskell+ , temporary+ , text+ , utf8-string++ -- External dependencies+ build-depends:+ , async >=2.2 && <2.3+ , syb >=0.7.2.4 && <0.8+ , tasty-quickcheck >=0.11 && <0.12++ -- Build tools needed for integration tests+ build-tool-depends: hs-bindgen:hs-bindgen-cli++-- Test TH mode+--+-- We're intentionally /not/ importing the common @lang@ section here: this+-- forces us to explicitly declare whatever language extensions are needed+-- when using hs-bindgen's TH mode.+test-suite test-th+ type: exitcode-stdio-1.0+ main-is: test-th.hs+ hs-source-dirs: test/th+ include-dirs: test-artefacts/headers+ default-language: GHC2021+ ghc-options:+ -Wall -Widentities -Wprepositive-qualified-module+ -Wredundant-constraints -Wunused-packages+ -Wno-unticked-promoted-constructors++ other-modules:+ Test.TH.RecordDot+ Test.TH.StaticCounterA+ Test.TH.StaticCounterB+ Test.TH.Test01+ Test.TH.Test02++ -- Internal dependencies+ build-depends:+ , hs-bindgen+ , hs-bindgen-runtime+ , test-common++ -- Inherited dependencies+ build-depends:+ , base+ , filepath+ , optics+ , tasty+ , tasty-hunit++ -- External dependencies+ build-depends: vector ^>=0.13.2.0++test-suite test-literate+ type: exitcode-stdio-1.0+ main-is: test-literate.hs+ hs-source-dirs: test/literate+ include-dirs: test-artefacts/headers+ default-language: GHC2021+ build-depends: base >=4.17 && <4.23+ ghc-options:+ -Wall -Widentities -Wredundant-constraints -Wunused-packages+ -Wno-unticked-promoted-constructors++ other-modules:+ Test.Literate.Test01+ Test.Literate.Test02+ Test.Literate.TestPointer+ Test.Literate.TestSafe+ Test.Literate.TestSafeAndUnsafe+ Test.Literate.TestUnsafe++ -- Here we use literate haskell "hook" to avoid setting up true preprocessors+ -- (which would require either build-type: Custom or Hooks - both not a great options, at least yet).+ --+ -- The source files contains the actual options and arguments to be used with hs-bindgen+ ghc-options: -pgmL hs-bindgen-cli -optL tool-support -optL literate+ build-tool-depends: hs-bindgen:hs-bindgen-cli++ -- Internal dependencies+ build-depends:+ , c-expr-runtime+ , hs-bindgen-runtime
@@ -0,0 +1,140 @@+# Known Issues++Whenever we cut a `hs-bindgen` release, our goal is of course to release a+product without known bugs. However, this is not always practical: some bugs+have so little impact that holding up a release until they are fixed would be+counterproductive. We list these known issues in this file.++This file is bundled with each release, and is a record of which bugs are known+to be present in that specific release. Its purpose is to enable users to+quickly scan through and see if any are relevant to them. It does not replace+the [issue tracker][issue-tracker]: bugs should be reported and discussed there,+and the details of each bug can be found there also.++## Missing type class instances can result in invalid generated code++> https://github.com/well-typed/hs-bindgen/issues/2253+> https://github.com/well-typed/hs-bindgen/issues/786+> https://github.com/well-typed/hs-bindgen/issues/1621+> https://github.com/well-typed/hs-bindgen/issues/2200++Datatypes generated by `hs-bindgen` are equipped with a number of type class+instances. If an instance of class `C` for some type `B` depends on the `C`+instance for another type `A`, but that instance is missing, we might generate+invalid code (that fails to compile). The primary reason why `A` might not+have the instance is a hand-written binding specification.++## Return-by-value of const-struct results in invalid code++> https://github.com/well-typed/hs-bindgen/issues/1514++Related to #1515, but even more obscure: we generate invalid code for functions+that return a struct _by value_ which is _itself_ marked `const`:++```c+struct S { int x; };+const struct S f1();+```++Note that this `const` qualifier here is pointless anyway.++## Return-by-value of struct-of-const results in invalid code++> https://github.com/well-typed/hs-bindgen/issues/1515++We generate invalid code for functions that return a struct _by value_ where+that struct has _const_ fields:++```c+struct S { const int x; int y; };+struct S f1();+```++## Literate mode fails to detect changes in dependent C files++> https://github.com/well-typed/hs-bindgen/issues/1583++When using `hs-bindgen` in literate mode, bindings won't be re-generated when+the C headers have changed.++## Some parse failures are not printed++> https://github.com/well-typed/hs-bindgen/issues/1851++Trace messages for unnamed declarations that cannot be selected are lost in some+cases. In the following example, the reason that the declarations cannot be+selected (`long double` is not supported) is not shown.++```c+struct foo {+ struct {+ long double not_supported;+ } field;+};+```++## Generated bindings for undef-ed macros fail to compile++> https://github.com/well-typed/hs-bindgen/issues/1956++Bindings for a declaration that uses a macro that is later undefined still+use the macro and therefore fail to compile. Example:++```c+#define T int+void foo (T x);+#undef T+```++## Enums with a macro-defined underlying type are not reparsed++> https://github.com/well-typed/hs-bindgen/issues/2119++Given++```c+#define A int+enum E : A { enumerator };+```++we will use `CInt` rather than the `A` newtype as the enum's underlying type.++## Reparsing of some headers may fail++> https://github.com/well-typed/hs-bindgen/issues/2148++In `hs-bindgen`, parsing and initial analysis of the C code (memory layout etc.)+are offloaded to `clang`; we use `clang` both in "compile" and in "preprocess"+mode; the latter when we are "reparsing" C code to recover macro information. In+rare cases `clang` in "compile" mode succeeds where "preprocess" mode fails;+when this happens, you might see an error such as++```+We tried to run the clang executable to preprocess select macro invocations, but it failed to run.+```++## Selection might miss redeclared declarations++> https://github.com/well-typed/hs-bindgen/issues/2282++When, say, a `struct` declaration occurs _twice_ in a header (or its transitive+`#include`s), we only store one of the locations. Consequently, if a selection+predicate matches the _other_ location, the declaration might not be selected+and would be omitted from the generated bindings.++## Reparse range is sometimes inaccurate++> https://github.com/well-typed/hs-bindgen/issues/2286++In order to recover macro information, `hs-bindgen` needs to reparse+declarations; this process starts by asking `libclang` for the location of the+first and final token. Sometimes `libclang` reports these locations incorrectly;+we try to correct for this, but don't always succeed. When we don't succeed, we+will fail to recover macro information and fall back on the parse as `libclang`+itself previously reported it. This only happens in rare circumstances, and only+with macros with arguments.+++++[issue-tracker]: https://github.com/well-typed/hs-bindgen/issues
@@ -0,0 +1,193 @@+musl as a whole is licensed under the following standard MIT license:++----------------------------------------------------------------------+Copyright © 2005-2020 Rich Felker, et al.++Permission is hereby granted, free of charge, to any person obtaining+a copy of this software and associated documentation files (the+"Software"), to deal in the Software without restriction, including+without limitation the rights to use, copy, modify, merge, publish,+distribute, sublicense, and/or sell copies of the Software, and to+permit persons to whom the Software is furnished to do so, subject to+the following conditions:++The above copyright notice and this permission notice shall be+included in all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.+----------------------------------------------------------------------++Authors/contributors include:++A. Wilcox+Ada Worcester+Alex Dowad+Alex Suykov+Alexander Monakov+Andre McCurdy+Andrew Kelley+Anthony G. Basile+Aric Belsito+Arvid Picciani+Bartosz Brachaczek+Benjamin Peterson+Bobby Bingham+Boris Brezillon+Brent Cook+Chris Spiegel+Clément Vasseur+Daniel Micay+Daniel Sabogal+Daurnimator+David Carlier+David Edelsohn+Denys Vlasenko+Dmitry Ivanov+Dmitry V. Levin+Drew DeVault+Emil Renner Berthing+Fangrui Song+Felix Fietkau+Felix Janda+Gianluca Anzolin+Hauke Mehrtens+He X+Hiltjo Posthuma+Isaac Dunham+Jaydeep Patil+Jens Gustedt+Jeremy Huntwork+Jo-Philipp Wich+Joakim Sindholt+John Spencer+Julien Ramseier+Justin Cormack+Kaarle Ritvanen+Khem Raj+Kylie McClain+Leah Neukirchen+Luca Barbato+Luka Perkov+M Farkas-Dyck (Strake)+Mahesh Bodapati+Markus Wichmann+Masanori Ogino+Michael Clark+Michael Forney+Mikhail Kremnyov+Natanael Copa+Nicholas J. Kain+orc+Pascal Cuoq+Patrick Oppenlander+Petr Hosek+Petr Skocik+Pierre Carrier+Reini Urban+Rich Felker+Richard Pennington+Ryan Fairfax+Samuel Holland+Segev Finer+Shiz+sin+Solar Designer+Stefan Kristiansson+Stefan O'Rear+Szabolcs Nagy+Timo Teräs+Trutz Behn+Valentin Ochs+Will Dietz+William Haddon+William Pitcock++Portions of this software are derived from third-party works licensed+under terms compatible with the above MIT license:++The TRE regular expression implementation (src/regex/reg* and+src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed+under a 2-clause BSD license (license text in the source files). The+included version has been heavily modified by Rich Felker in 2012, in+the interests of size, simplicity, and namespace cleanliness.++Much of the math library code (src/math/* and src/complex/*) is+Copyright © 1993,2004 Sun Microsystems or+Copyright © 2003-2011 David Schultz or+Copyright © 2003-2009 Steven G. Kargl or+Copyright © 2003-2009 Bruce D. Evans or+Copyright © 2008 Stephen L. Moshier or+Copyright © 2017-2018 Arm Limited+and labelled as such in comments in the individual source files. All+have been licensed under extremely permissive terms.++The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008+The Android Open Source Project and is licensed under a two-clause BSD+license. It was taken from Bionic libc, used on Android.++The AArch64 memcpy and memset code (src/string/aarch64/*) are+Copyright © 1999-2019, Arm Limited.++The implementation of DES for crypt (src/crypt/crypt_des.c) is+Copyright © 1994 David Burren. It is licensed under a BSD license.++The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was+originally written by Solar Designer and placed into the public+domain. The code also comes with a fallback permissive license for use+in jurisdictions that may not recognize the public domain.++The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011+Valentin Ochs and is licensed under an MIT-style license.++The x86_64 port was written by Nicholas J. Kain and is licensed under+the standard MIT terms.++The mips and microblaze ports were originally written by Richard+Pennington for use in the ellcc project. The original code was adapted+by Rich Felker for build system and code conventions during upstream+integration. It is licensed under the standard MIT terms.++The mips64 port was contributed by Imagination Technologies and is+licensed under the standard MIT terms.++The powerpc port was also originally written by Richard Pennington,+and later supplemented and integrated by John Spencer. It is licensed+under the standard MIT terms.++All other files which have no copyright comments are original works+produced specifically for use as part of this library, written either+by Rich Felker, the main author of the library, or by one or more+contibutors listed above. Details on authorship of individual files+can be found in the git version control history of the project. The+omission of copyright and license comments in each file is in the+interest of source tree size.++In addition, permission is hereby granted for all public header files+(include/* and arch/*/bits/*) and crt files intended to be linked into+applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit+the copyright notice and permission notice otherwise required by the+license, and to use these files without any requirement of+attribution. These files include substantial contributions from:++Bobby Bingham+John Spencer+Nicholas J. Kain+Rich Felker+Richard Pennington+Stefan Kristiansson+Szabolcs Nagy++all of whom have explicitly granted such permission.++This file previously contained text expressing a belief that most of+the files covered by the above exception were sufficiently trivial not+to be subject to copyright, resulting in confusion over whether it+negated the permissions granted in the license. In the spirit of+permissive licensing, and of not having licensing issues being an+obstacle to adoption, that text has been removed.
@@ -0,0 +1,1 @@+1.2.5
@@ -0,0 +1,73 @@+#ifndef _AIO_H+#define _AIO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <signal.h>+#include <time.h>++#define __NEED_ssize_t+#define __NEED_off_t++#include <bits/alltypes.h>++struct aiocb {+ int aio_fildes, aio_lio_opcode, aio_reqprio;+ volatile void *aio_buf;+ size_t aio_nbytes;+ struct sigevent aio_sigevent;+ void *__td;+ int __lock[2];+ volatile int __err;+ ssize_t __ret;+ off_t aio_offset;+ void *__next, *__prev;+ char __dummy4[32-2*sizeof(void *)];+};++#define AIO_CANCELED 0+#define AIO_NOTCANCELED 1+#define AIO_ALLDONE 2++#define LIO_READ 0+#define LIO_WRITE 1+#define LIO_NOP 2++#define LIO_WAIT 0+#define LIO_NOWAIT 1++int aio_read(struct aiocb *);+int aio_write(struct aiocb *);+int aio_error(const struct aiocb *);+ssize_t aio_return(struct aiocb *);+int aio_cancel(int, struct aiocb *);+int aio_suspend(const struct aiocb *const [], int, const struct timespec *);+int aio_fsync(int, struct aiocb *);++int lio_listio(int, struct aiocb *__restrict const *__restrict, int, struct sigevent *__restrict);++#if defined(_LARGEFILE64_SOURCE)+#define aiocb64 aiocb+#define aio_read64 aio_read+#define aio_write64 aio_write+#define aio_error64 aio_error+#define aio_return64 aio_return+#define aio_cancel64 aio_cancel+#define aio_suspend64 aio_suspend+#define aio_fsync64 aio_fsync+#define lio_listio64 lio_listio+#define off64_t off_t+#endif++#if _REDIR_TIME64+__REDIR(aio_suspend, __aio_suspend_time64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,19 @@+#ifndef _ALLOCA_H+#define _ALLOCA_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_size_t+#include <bits/alltypes.h>++void *alloca(size_t);++#define alloca __builtin_alloca++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,25 @@+#ifndef _AR_H+#define _AR_H++#ifdef __cplusplus+extern "C" {+#endif++#define ARMAG "!<arch>\n"+#define SARMAG 8+#define ARFMAG "`\n"++struct ar_hdr {+ char ar_name[16];+ char ar_date[12];+ char ar_uid[6], ar_gid[6];+ char ar_mode[8];+ char ar_size[10];+ char ar_fmag[2];+};++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,35 @@+#ifndef _ARPA_FTP_H+#define _ARPA_FTP_H+#define PRELIM 1+#define COMPLETE 2+#define CONTINUE 3+#define TRANSIENT 4+#define ERROR 5+#define TYPE_A 1+#define TYPE_E 2+#define TYPE_I 3+#define TYPE_L 4+#define FORM_N 1+#define FORM_T 2+#define FORM_C 3+#define STRU_F 1+#define STRU_R 2+#define STRU_P 3+#define MODE_S 1+#define MODE_B 2+#define MODE_C 3+#define REC_ESC '\377'+#define REC_EOR '\001'+#define REC_EOF '\002'+#define BLK_EOR 0x80+#define BLK_EOF 0x40+#define BLK_ERRORS 0x20+#define BLK_RESTART 0x10+#define BLK_BYTECOUNT 2+#ifdef FTP_NAMES+char *modenames[] = {"0", "Stream", "Block", "Compressed" };+char *strunames[] = {"0", "File", "Record", "Page" };+char *typenames[] = {"0", "ASCII", "EBCDIC", "Image", "Local" };+char *formnames[] = {"0", "Nonprint", "Telnet", "Carriage-control" };+#endif+#endif
@@ -0,0 +1,31 @@+#ifndef _ARPA_INET_H+#define _ARPA_INET_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <netinet/in.h>++uint32_t htonl(uint32_t);+uint16_t htons(uint16_t);+uint32_t ntohl(uint32_t);+uint16_t ntohs(uint16_t);++in_addr_t inet_addr (const char *);+in_addr_t inet_network (const char *);+char *inet_ntoa (struct in_addr);+int inet_pton (int, const char *__restrict, void *__restrict);+const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t);++int inet_aton (const char *, struct in_addr *);+struct in_addr inet_makeaddr(in_addr_t, in_addr_t);+in_addr_t inet_lnaof(struct in_addr);+in_addr_t inet_netof(struct in_addr);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,526 @@+#ifndef _ARPA_NAMESER_H+#define _ARPA_NAMESER_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stddef.h>+#include <stdint.h>++#define __NAMESER 19991006+#define NS_PACKETSZ 512+#define NS_MAXDNAME 1025+#define NS_MAXMSG 65535+#define NS_MAXCDNAME 255+#define NS_MAXLABEL 63+#define NS_HFIXEDSZ 12+#define NS_QFIXEDSZ 4+#define NS_RRFIXEDSZ 10+#define NS_INT32SZ 4+#define NS_INT16SZ 2+#define NS_INT8SZ 1+#define NS_INADDRSZ 4+#define NS_IN6ADDRSZ 16+#define NS_CMPRSFLGS 0xc0+#define NS_DEFAULTPORT 53++typedef enum __ns_sect {+ ns_s_qd = 0,+ ns_s_zn = 0,+ ns_s_an = 1,+ ns_s_pr = 1,+ ns_s_ns = 2,+ ns_s_ud = 2,+ ns_s_ar = 3,+ ns_s_max = 4+} ns_sect;++typedef struct __ns_msg {+ const unsigned char *_msg, *_eom;+ uint16_t _id, _flags, _counts[ns_s_max];+ const unsigned char *_sections[ns_s_max];+ ns_sect _sect;+ int _rrnum;+ const unsigned char *_msg_ptr;+} ns_msg;++struct _ns_flagdata { int mask, shift; };+extern const struct _ns_flagdata _ns_flagdata[];++#define ns_msg_id(handle) ((handle)._id + 0)+#define ns_msg_base(handle) ((handle)._msg + 0)+#define ns_msg_end(handle) ((handle)._eom + 0)+#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)+#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)+#define ns_msg_getflag(handle, flag) \+ (((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift)++typedef struct __ns_rr {+ char name[NS_MAXDNAME];+ uint16_t type;+ uint16_t rr_class;+ uint32_t ttl;+ uint16_t rdlength;+ const unsigned char *rdata;+} ns_rr;++#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")+#define ns_rr_type(rr) ((ns_type)((rr).type + 0))+#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))+#define ns_rr_ttl(rr) ((rr).ttl + 0)+#define ns_rr_rdlen(rr) ((rr).rdlength + 0)+#define ns_rr_rdata(rr) ((rr).rdata + 0)++typedef enum __ns_flag {+ ns_f_qr,+ ns_f_opcode,+ ns_f_aa,+ ns_f_tc,+ ns_f_rd,+ ns_f_ra,+ ns_f_z,+ ns_f_ad,+ ns_f_cd,+ ns_f_rcode,+ ns_f_max+} ns_flag;++typedef enum __ns_opcode {+ ns_o_query = 0,+ ns_o_iquery = 1,+ ns_o_status = 2,+ ns_o_notify = 4,+ ns_o_update = 5,+ ns_o_max = 6+} ns_opcode;++typedef enum __ns_rcode {+ ns_r_noerror = 0,+ ns_r_formerr = 1,+ ns_r_servfail = 2,+ ns_r_nxdomain = 3,+ ns_r_notimpl = 4,+ ns_r_refused = 5,+ ns_r_yxdomain = 6,+ ns_r_yxrrset = 7,+ ns_r_nxrrset = 8,+ ns_r_notauth = 9,+ ns_r_notzone = 10,+ ns_r_max = 11,+ ns_r_badvers = 16,+ ns_r_badsig = 16,+ ns_r_badkey = 17,+ ns_r_badtime = 18+} ns_rcode;++typedef enum __ns_update_operation {+ ns_uop_delete = 0,+ ns_uop_add = 1,+ ns_uop_max = 2+} ns_update_operation;++struct ns_tsig_key {+ char name[NS_MAXDNAME], alg[NS_MAXDNAME];+ unsigned char *data;+ int len;+};+typedef struct ns_tsig_key ns_tsig_key;++struct ns_tcp_tsig_state {+ int counter;+ struct dst_key *key;+ void *ctx;+ unsigned char sig[NS_PACKETSZ];+ int siglen;+};+typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;++#define NS_TSIG_FUDGE 300+#define NS_TSIG_TCP_COUNT 100+#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"++#define NS_TSIG_ERROR_NO_TSIG -10+#define NS_TSIG_ERROR_NO_SPACE -11+#define NS_TSIG_ERROR_FORMERR -12++typedef enum __ns_type {+ ns_t_invalid = 0,+ ns_t_a = 1,+ ns_t_ns = 2,+ ns_t_md = 3,+ ns_t_mf = 4,+ ns_t_cname = 5,+ ns_t_soa = 6,+ ns_t_mb = 7,+ ns_t_mg = 8,+ ns_t_mr = 9,+ ns_t_null = 10,+ ns_t_wks = 11,+ ns_t_ptr = 12,+ ns_t_hinfo = 13,+ ns_t_minfo = 14,+ ns_t_mx = 15,+ ns_t_txt = 16,+ ns_t_rp = 17,+ ns_t_afsdb = 18,+ ns_t_x25 = 19,+ ns_t_isdn = 20,+ ns_t_rt = 21,+ ns_t_nsap = 22,+ ns_t_nsap_ptr = 23,+ ns_t_sig = 24,+ ns_t_key = 25,+ ns_t_px = 26,+ ns_t_gpos = 27,+ ns_t_aaaa = 28,+ ns_t_loc = 29,+ ns_t_nxt = 30,+ ns_t_eid = 31,+ ns_t_nimloc = 32,+ ns_t_srv = 33,+ ns_t_atma = 34,+ ns_t_naptr = 35,+ ns_t_kx = 36,+ ns_t_cert = 37,+ ns_t_a6 = 38,+ ns_t_dname = 39,+ ns_t_sink = 40,+ ns_t_opt = 41,+ ns_t_apl = 42,+ ns_t_ds = 43,+ ns_t_sshfp = 44,+ ns_t_ipseckey = 45,+ ns_t_rrsig = 46,+ ns_t_nsec = 47,+ ns_t_dnskey = 48,+ ns_t_dhcid = 49,+ ns_t_nsec3 = 50,+ ns_t_nsec3param = 51,+ ns_t_tlsa = 52,+ ns_t_smimea = 53,+ ns_t_hip = 55,+ ns_t_ninfo = 56,+ ns_t_rkey = 57,+ ns_t_talink = 58,+ ns_t_cds = 59,+ ns_t_cdnskey = 60,+ ns_t_openpgpkey = 61,+ ns_t_csync = 62,+ ns_t_spf = 99,+ ns_t_uinfo = 100,+ ns_t_uid = 101,+ ns_t_gid = 102,+ ns_t_unspec = 103,+ ns_t_nid = 104,+ ns_t_l32 = 105,+ ns_t_l64 = 106,+ ns_t_lp = 107,+ ns_t_eui48 = 108,+ ns_t_eui64 = 109,+ ns_t_tkey = 249,+ ns_t_tsig = 250,+ ns_t_ixfr = 251,+ ns_t_axfr = 252,+ ns_t_mailb = 253,+ ns_t_maila = 254,+ ns_t_any = 255,+ ns_t_zxfr = 256,+ ns_t_uri = 256,+ ns_t_caa = 257,+ ns_t_avc = 258,+ ns_t_ta = 32768,+ ns_t_dlv = 32769,+ ns_t_max = 65536+} ns_type;++#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \+ (t) == ns_t_mailb || (t) == ns_t_maila)+#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)+#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))+#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)+#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \+ (t) == ns_t_zxfr)++typedef enum __ns_class {+ ns_c_invalid = 0,+ ns_c_in = 1,+ ns_c_2 = 2,+ ns_c_chaos = 3,+ ns_c_hs = 4,+ ns_c_none = 254,+ ns_c_any = 255,+ ns_c_max = 65536+} ns_class;++typedef enum __ns_key_types {+ ns_kt_rsa = 1,+ ns_kt_dh = 2,+ ns_kt_dsa = 3,+ ns_kt_private = 254+} ns_key_types;++typedef enum __ns_cert_types {+ cert_t_pkix = 1,+ cert_t_spki = 2,+ cert_t_pgp = 3,+ cert_t_url = 253,+ cert_t_oid = 254+} ns_cert_types;++#define NS_KEY_TYPEMASK 0xC000+#define NS_KEY_TYPE_AUTH_CONF 0x0000+#define NS_KEY_TYPE_CONF_ONLY 0x8000+#define NS_KEY_TYPE_AUTH_ONLY 0x4000+#define NS_KEY_TYPE_NO_KEY 0xC000+#define NS_KEY_NO_AUTH 0x8000+#define NS_KEY_NO_CONF 0x4000+#define NS_KEY_RESERVED2 0x2000+#define NS_KEY_EXTENDED_FLAGS 0x1000+#define NS_KEY_RESERVED4 0x0800+#define NS_KEY_RESERVED5 0x0400+#define NS_KEY_NAME_TYPE 0x0300+#define NS_KEY_NAME_USER 0x0000+#define NS_KEY_NAME_ENTITY 0x0200+#define NS_KEY_NAME_ZONE 0x0100+#define NS_KEY_NAME_RESERVED 0x0300+#define NS_KEY_RESERVED8 0x0080+#define NS_KEY_RESERVED9 0x0040+#define NS_KEY_RESERVED10 0x0020+#define NS_KEY_RESERVED11 0x0010+#define NS_KEY_SIGNATORYMASK 0x000F+#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \+ NS_KEY_RESERVED4 | \+ NS_KEY_RESERVED5 | \+ NS_KEY_RESERVED8 | \+ NS_KEY_RESERVED9 | \+ NS_KEY_RESERVED10 | \+ NS_KEY_RESERVED11 )+#define NS_KEY_RESERVED_BITMASK2 0xFFFF+#define NS_ALG_MD5RSA 1+#define NS_ALG_DH 2+#define NS_ALG_DSA 3+#define NS_ALG_DSS NS_ALG_DSA+#define NS_ALG_EXPIRE_ONLY 253+#define NS_ALG_PRIVATE_OID 254++#define NS_KEY_PROT_TLS 1+#define NS_KEY_PROT_EMAIL 2+#define NS_KEY_PROT_DNSSEC 3+#define NS_KEY_PROT_IPSEC 4+#define NS_KEY_PROT_ANY 255++#define NS_MD5RSA_MIN_BITS 512+#define NS_MD5RSA_MAX_BITS 4096+#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)+#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)+#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)+#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)++#define NS_DSA_SIG_SIZE 41+#define NS_DSA_MIN_SIZE 213+#define NS_DSA_MAX_BYTES 405++#define NS_SIG_TYPE 0+#define NS_SIG_ALG 2+#define NS_SIG_LABELS 3+#define NS_SIG_OTTL 4+#define NS_SIG_EXPIR 8+#define NS_SIG_SIGNED 12+#define NS_SIG_FOOT 16+#define NS_SIG_SIGNER 18+#define NS_NXT_BITS 8+#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))+#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))+#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))+#define NS_NXT_MAX 127++#define NS_OPT_DNSSEC_OK 0x8000U+#define NS_OPT_NSID 3++#define NS_GET16(s, cp) (void)((s) = ns_get16(((cp)+=2)-2))+#define NS_GET32(l, cp) (void)((l) = ns_get32(((cp)+=4)-4))+#define NS_PUT16(s, cp) ns_put16((s), ((cp)+=2)-2)+#define NS_PUT32(l, cp) ns_put32((l), ((cp)+=4)-4)++unsigned ns_get16(const unsigned char *);+unsigned long ns_get32(const unsigned char *);+void ns_put16(unsigned, unsigned char *);+void ns_put32(unsigned long, unsigned char *);++int ns_initparse(const unsigned char *, int, ns_msg *);+int ns_parserr(ns_msg *, ns_sect, int, ns_rr *);+int ns_skiprr(const unsigned char *, const unsigned char *, ns_sect, int);+int ns_name_uncompress(const unsigned char *, const unsigned char *, const unsigned char *, char *, size_t);+++#define __BIND 19950621++typedef struct {+ unsigned id :16;+#if __BYTE_ORDER == __BIG_ENDIAN+ unsigned qr: 1;+ unsigned opcode: 4;+ unsigned aa: 1;+ unsigned tc: 1;+ unsigned rd: 1;+ unsigned ra: 1;+ unsigned unused :1;+ unsigned ad: 1;+ unsigned cd: 1;+ unsigned rcode :4;+#else+ unsigned rd :1;+ unsigned tc :1;+ unsigned aa :1;+ unsigned opcode :4;+ unsigned qr :1;+ unsigned rcode :4;+ unsigned cd: 1;+ unsigned ad: 1;+ unsigned unused :1;+ unsigned ra :1;+#endif+ unsigned qdcount :16;+ unsigned ancount :16;+ unsigned nscount :16;+ unsigned arcount :16;+} HEADER;++#define PACKETSZ NS_PACKETSZ+#define MAXDNAME NS_MAXDNAME+#define MAXCDNAME NS_MAXCDNAME+#define MAXLABEL NS_MAXLABEL+#define HFIXEDSZ NS_HFIXEDSZ+#define QFIXEDSZ NS_QFIXEDSZ+#define RRFIXEDSZ NS_RRFIXEDSZ+#define INT32SZ NS_INT32SZ+#define INT16SZ NS_INT16SZ+#define INT8SZ NS_INT8SZ+#define INADDRSZ NS_INADDRSZ+#define IN6ADDRSZ NS_IN6ADDRSZ+#define INDIR_MASK NS_CMPRSFLGS+#define NAMESERVER_PORT NS_DEFAULTPORT++#define S_ZONE ns_s_zn+#define S_PREREQ ns_s_pr+#define S_UPDATE ns_s_ud+#define S_ADDT ns_s_ar++#define QUERY ns_o_query+#define IQUERY ns_o_iquery+#define STATUS ns_o_status+#define NS_NOTIFY_OP ns_o_notify+#define NS_UPDATE_OP ns_o_update++#define NOERROR ns_r_noerror+#define FORMERR ns_r_formerr+#define SERVFAIL ns_r_servfail+#define NXDOMAIN ns_r_nxdomain+#define NOTIMP ns_r_notimpl+#define REFUSED ns_r_refused+#define YXDOMAIN ns_r_yxdomain+#define YXRRSET ns_r_yxrrset+#define NXRRSET ns_r_nxrrset+#define NOTAUTH ns_r_notauth+#define NOTZONE ns_r_notzone++#define DELETE ns_uop_delete+#define ADD ns_uop_add++#define T_A ns_t_a+#define T_NS ns_t_ns+#define T_MD ns_t_md+#define T_MF ns_t_mf+#define T_CNAME ns_t_cname+#define T_SOA ns_t_soa+#define T_MB ns_t_mb+#define T_MG ns_t_mg+#define T_MR ns_t_mr+#define T_NULL ns_t_null+#define T_WKS ns_t_wks+#define T_PTR ns_t_ptr+#define T_HINFO ns_t_hinfo+#define T_MINFO ns_t_minfo+#define T_MX ns_t_mx+#define T_TXT ns_t_txt+#define T_RP ns_t_rp+#define T_AFSDB ns_t_afsdb+#define T_X25 ns_t_x25+#define T_ISDN ns_t_isdn+#define T_RT ns_t_rt+#define T_NSAP ns_t_nsap+#define T_NSAP_PTR ns_t_nsap_ptr+#define T_SIG ns_t_sig+#define T_KEY ns_t_key+#define T_PX ns_t_px+#define T_GPOS ns_t_gpos+#define T_AAAA ns_t_aaaa+#define T_LOC ns_t_loc+#define T_NXT ns_t_nxt+#define T_EID ns_t_eid+#define T_NIMLOC ns_t_nimloc+#define T_SRV ns_t_srv+#define T_ATMA ns_t_atma+#define T_NAPTR ns_t_naptr+#define T_A6 ns_t_a6+#define T_DNAME ns_t_dname+#define T_DS ns_t_ds+#define T_SSHFP ns_t_sshfp+#define T_IPSECKEY ns_t_ipseckey+#define T_RRSIG ns_t_rrsig+#define T_NSEC ns_t_nsec+#define T_DNSKEY ns_t_dnskey+#define T_DHCID ns_t_dhcid+#define T_NSEC3 ns_t_nsec3+#define T_NSEC3PARAM ns_t_nsec3param+#define T_TLSA ns_t_tlsa+#define T_SMIMEA ns_t_smimea+#define T_HIP ns_t_hip+#define T_NINFO ns_t_ninfo+#define T_RKEY ns_t_rkey+#define T_TALINK ns_t_talink+#define T_CDS ns_t_cds+#define T_CDNSKEY ns_t_cdnskey+#define T_OPENPGPKEY ns_t_openpgpkey+#define T_CSYNC ns_t_csync+#define T_SPF ns_t_spf+#define T_UINFO ns_t_uinfo+#define T_UID ns_t_uid+#define T_GID ns_t_gid+#define T_UNSPEC ns_t_unspec+#define T_NID ns_t_nid+#define T_L32 ns_t_l32+#define T_L64 ns_t_l64+#define T_LP ns_t_lp+#define T_EUI48 ns_t_eui48+#define T_EUI64 ns_t_eui64+#define T_TKEY ns_t_tkey+#define T_TSIG ns_t_tsig+#define T_IXFR ns_t_ixfr+#define T_AXFR ns_t_axfr+#define T_MAILB ns_t_mailb+#define T_MAILA ns_t_maila+#define T_ANY ns_t_any+#define T_URI ns_t_uri+#define T_CAA ns_t_caa+#define T_AVC ns_t_avc+#define T_TA ns_t_ta+#define T_DLV ns_t_dlv++#define C_IN ns_c_in+#define C_CHAOS ns_c_chaos+#define C_HS ns_c_hs+#define C_NONE ns_c_none+#define C_ANY ns_c_any++#define GETSHORT NS_GET16+#define GETLONG NS_GET32+#define PUTSHORT NS_PUT16+#define PUTLONG NS_PUT32++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,2 @@+#include <arpa/nameser.h>+
@@ -0,0 +1,251 @@+#ifndef _ARPA_TELNET_H+#define _ARPA_TELNET_H++#define IAC 255+#define DONT 254+#define DO 253+#define WONT 252+#define WILL 251+#define SB 250+#define GA 249+#define EL 248+#define EC 247+#define AYT 246+#define AO 245+#define IP 244+#define BREAK 243+#define DM 242+#define NOP 241+#define SE 240+#define EOR 239+#define ABORT 238+#define SUSP 237+#define xEOF 236++#define SYNCH 242++#define telcmds ((char [][6]){ "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 })++#define TELCMD_FIRST xEOF+#define TELCMD_LAST IAC+#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \+ (unsigned int)(x) >= TELCMD_FIRST)+#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]++#define TELOPT_BINARY 0+#define TELOPT_ECHO 1+#define TELOPT_RCP 2+#define TELOPT_SGA 3+#define TELOPT_NAMS 4+#define TELOPT_STATUS 5+#define TELOPT_TM 6+#define TELOPT_RCTE 7+#define TELOPT_NAOL 8+#define TELOPT_NAOP 9+#define TELOPT_NAOCRD 10+#define TELOPT_NAOHTS 11+#define TELOPT_NAOHTD 12+#define TELOPT_NAOFFD 13+#define TELOPT_NAOVTS 14+#define TELOPT_NAOVTD 15+#define TELOPT_NAOLFD 16+#define TELOPT_XASCII 17+#define TELOPT_LOGOUT 18+#define TELOPT_BM 19+#define TELOPT_DET 20+#define TELOPT_SUPDUP 21+#define TELOPT_SUPDUPOUTPUT 22+#define TELOPT_SNDLOC 23+#define TELOPT_TTYPE 24+#define TELOPT_EOR 25+#define TELOPT_TUID 26+#define TELOPT_OUTMRK 27+#define TELOPT_TTYLOC 28+#define TELOPT_3270REGIME 29+#define TELOPT_X3PAD 30+#define TELOPT_NAWS 31+#define TELOPT_TSPEED 32+#define TELOPT_LFLOW 33+#define TELOPT_LINEMODE 34+#define TELOPT_XDISPLOC 35+#define TELOPT_OLD_ENVIRON 36+#define TELOPT_AUTHENTICATION 37/* Authenticate */+#define TELOPT_ENCRYPT 38+#define TELOPT_NEW_ENVIRON 39+#define TELOPT_EXOPL 255+++#define NTELOPTS (1+TELOPT_NEW_ENVIRON)+#ifdef TELOPTS+char *telopts[NTELOPTS+1] = {+ "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",+ "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",+ "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",+ "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",+ "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",+ "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",+ "TACACS UID", "OUTPUT MARKING", "TTYLOC",+ "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",+ "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",+ "ENCRYPT", "NEW-ENVIRON",+ 0,+};+#define TELOPT_FIRST TELOPT_BINARY+#define TELOPT_LAST TELOPT_NEW_ENVIRON+#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)+#define TELOPT(x) telopts[(x)-TELOPT_FIRST]+#endif++#define TELQUAL_IS 0+#define TELQUAL_SEND 1+#define TELQUAL_INFO 2+#define TELQUAL_REPLY 2+#define TELQUAL_NAME 3++#define LFLOW_OFF 0+#define LFLOW_ON 1+#define LFLOW_RESTART_ANY 2+#define LFLOW_RESTART_XON 3+++#define LM_MODE 1+#define LM_FORWARDMASK 2+#define LM_SLC 3++#define MODE_EDIT 0x01+#define MODE_TRAPSIG 0x02+#define MODE_ACK 0x04+#define MODE_SOFT_TAB 0x08+#define MODE_LIT_ECHO 0x10++#define MODE_MASK 0x1f++#define MODE_FLOW 0x0100+#define MODE_ECHO 0x0200+#define MODE_INBIN 0x0400+#define MODE_OUTBIN 0x0800+#define MODE_FORCE 0x1000++#define SLC_SYNCH 1+#define SLC_BRK 2+#define SLC_IP 3+#define SLC_AO 4+#define SLC_AYT 5+#define SLC_EOR 6+#define SLC_ABORT 7+#define SLC_EOF 8+#define SLC_SUSP 9+#define SLC_EC 10+#define SLC_EL 11+#define SLC_EW 12+#define SLC_RP 13+#define SLC_LNEXT 14+#define SLC_XON 15+#define SLC_XOFF 16+#define SLC_FORW1 17+#define SLC_FORW2 18++#define NSLC 18++#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \+ "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \+ "LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0,+#ifdef SLC_NAMES+char *slc_names[] = {+ SLC_NAMELIST+};+#else+extern char *slc_names[];+#define SLC_NAMES SLC_NAMELIST+#endif++#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)+#define SLC_NAME(x) slc_names[x]++#define SLC_NOSUPPORT 0+#define SLC_CANTCHANGE 1+#define SLC_VARIABLE 2+#define SLC_DEFAULT 3+#define SLC_LEVELBITS 0x03++#define SLC_FUNC 0+#define SLC_FLAGS 1+#define SLC_VALUE 2++#define SLC_ACK 0x80+#define SLC_FLUSHIN 0x40+#define SLC_FLUSHOUT 0x20++#define OLD_ENV_VAR 1+#define OLD_ENV_VALUE 0+#define NEW_ENV_VAR 0+#define NEW_ENV_VALUE 1+#define ENV_ESC 2+#define ENV_USERVAR 3++#define AUTH_WHO_CLIENT 0+#define AUTH_WHO_SERVER 1+#define AUTH_WHO_MASK 1++#define AUTH_HOW_ONE_WAY 0+#define AUTH_HOW_MUTUAL 2+#define AUTH_HOW_MASK 2++#define AUTHTYPE_NULL 0+#define AUTHTYPE_KERBEROS_V4 1+#define AUTHTYPE_KERBEROS_V5 2+#define AUTHTYPE_SPX 3+#define AUTHTYPE_MINK 4+#define AUTHTYPE_CNT 5++#define AUTHTYPE_TEST 99++#ifdef AUTH_NAMES+char *authtype_names[] = {+ "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0,+};+#else+extern char *authtype_names[];+#endif++#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)+#define AUTHTYPE_NAME(x) authtype_names[x]++#define ENCRYPT_IS 0+#define ENCRYPT_SUPPORT 1+#define ENCRYPT_REPLY 2+#define ENCRYPT_START 3+#define ENCRYPT_END 4+#define ENCRYPT_REQSTART 5+#define ENCRYPT_REQEND 6+#define ENCRYPT_ENC_KEYID 7+#define ENCRYPT_DEC_KEYID 8+#define ENCRYPT_CNT 9++#define ENCTYPE_ANY 0+#define ENCTYPE_DES_CFB64 1+#define ENCTYPE_DES_OFB64 2+#define ENCTYPE_CNT 3++#ifdef ENCRYPT_NAMES+char *encrypt_names[] = {+ "IS", "SUPPORT", "REPLY", "START", "END",+ "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",+ 0,+};+char *enctype_names[] = {+ "ANY", "DES_CFB64", "DES_OFB64", 0,+};+#else+extern char *encrypt_names[];+extern char *enctype_names[];+#endif+++#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)+#define ENCRYPT_NAME(x) encrypt_names[x]++#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)+#define ENCTYPE_NAME(x) enctype_names[x]++#endif
@@ -0,0 +1,31 @@+#ifndef _ARPA_TFTP_H+#define _ARPA_TFTP_H+#define SEGSIZE 512+#define RRQ 01+#define WRQ 02+#define DATA 03+#define ACK 04+#define ERROR 05+struct tftphdr {+ short th_opcode;+ union {+ unsigned short tu_block;+ short tu_code;+ char tu_stuff[1];+ } th_u;+ char th_data[1];+};+#define th_block th_u.tu_block+#define th_code th_u.tu_code+#define th_stuff th_u.tu_stuff+#define th_msg th_data+#define EUNDEF 0+#define ENOTFOUND 1+#define EACCESS 2+#define ENOSPACE 3+#define EBADOP 4+#define EBADID 5+#define EEXISTS 6+#define ENOUSER 7+#endif+
@@ -0,0 +1,23 @@+#include <features.h>++#undef assert++#ifdef NDEBUG+#define assert(x) (void)0+#else+#define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0)))+#endif++#if __STDC_VERSION__ >= 201112L && !defined(__cplusplus)+#define static_assert _Static_assert+#endif++#ifdef __cplusplus+extern "C" {+#endif++_Noreturn void __assert_fail (const char *, const char *, int, const char *);++#ifdef __cplusplus+}+#endif
@@ -0,0 +1,423 @@+#define _Addr long+#define _Int64 long+#define _Reg long++#if __AARCH64EB__+#define __BYTE_ORDER 4321+#else+#define __BYTE_ORDER 1234+#endif++#define __LONG_MAX 0x7fffffffffffffffL++#ifndef __cplusplus+#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)+typedef unsigned wchar_t;+#define __DEFINED_wchar_t+#endif++#endif+#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)+typedef unsigned wint_t;+#define __DEFINED_wint_t+#endif+++#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)+typedef int blksize_t;+#define __DEFINED_blksize_t+#endif++#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)+typedef unsigned int nlink_t;+#define __DEFINED_nlink_t+#endif+++#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)+typedef float float_t;+#define __DEFINED_float_t+#endif++#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)+typedef double double_t;+#define __DEFINED_double_t+#endif+++#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)+typedef struct { long long __ll; long double __ld; } max_align_t;+#define __DEFINED_max_align_t+#endif++#define __LITTLE_ENDIAN 1234+#define __BIG_ENDIAN 4321+#define __USE_TIME_BITS64 1++#if defined(__NEED_size_t) && !defined(__DEFINED_size_t)+typedef unsigned _Addr size_t;+#define __DEFINED_size_t+#endif++#if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t)+typedef unsigned _Addr uintptr_t;+#define __DEFINED_uintptr_t+#endif++#if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t)+typedef _Addr ptrdiff_t;+#define __DEFINED_ptrdiff_t+#endif++#if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t)+typedef _Addr ssize_t;+#define __DEFINED_ssize_t+#endif++#if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t)+typedef _Addr intptr_t;+#define __DEFINED_intptr_t+#endif++#if defined(__NEED_regoff_t) && !defined(__DEFINED_regoff_t)+typedef _Addr regoff_t;+#define __DEFINED_regoff_t+#endif++#if defined(__NEED_register_t) && !defined(__DEFINED_register_t)+typedef _Reg register_t;+#define __DEFINED_register_t+#endif++#if defined(__NEED_time_t) && !defined(__DEFINED_time_t)+typedef _Int64 time_t;+#define __DEFINED_time_t+#endif++#if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t)+typedef _Int64 suseconds_t;+#define __DEFINED_suseconds_t+#endif+++#if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t)+typedef signed char int8_t;+#define __DEFINED_int8_t+#endif++#if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t)+typedef signed short int16_t;+#define __DEFINED_int16_t+#endif++#if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t)+typedef signed int int32_t;+#define __DEFINED_int32_t+#endif++#if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t)+typedef signed _Int64 int64_t;+#define __DEFINED_int64_t+#endif++#if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t)+typedef signed _Int64 intmax_t;+#define __DEFINED_intmax_t+#endif++#if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t)+typedef unsigned char uint8_t;+#define __DEFINED_uint8_t+#endif++#if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t)+typedef unsigned short uint16_t;+#define __DEFINED_uint16_t+#endif++#if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t)+typedef unsigned int uint32_t;+#define __DEFINED_uint32_t+#endif++#if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t)+typedef unsigned _Int64 uint64_t;+#define __DEFINED_uint64_t+#endif++#if defined(__NEED_u_int64_t) && !defined(__DEFINED_u_int64_t)+typedef unsigned _Int64 u_int64_t;+#define __DEFINED_u_int64_t+#endif++#if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t)+typedef unsigned _Int64 uintmax_t;+#define __DEFINED_uintmax_t+#endif+++#if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t)+typedef unsigned mode_t;+#define __DEFINED_mode_t+#endif++#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)+typedef unsigned _Reg nlink_t;+#define __DEFINED_nlink_t+#endif++#if defined(__NEED_off_t) && !defined(__DEFINED_off_t)+typedef _Int64 off_t;+#define __DEFINED_off_t+#endif++#if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t)+typedef unsigned _Int64 ino_t;+#define __DEFINED_ino_t+#endif++#if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t)+typedef unsigned _Int64 dev_t;+#define __DEFINED_dev_t+#endif++#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)+typedef long blksize_t;+#define __DEFINED_blksize_t+#endif++#if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t)+typedef _Int64 blkcnt_t;+#define __DEFINED_blkcnt_t+#endif++#if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t)+typedef unsigned _Int64 fsblkcnt_t;+#define __DEFINED_fsblkcnt_t+#endif++#if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t)+typedef unsigned _Int64 fsfilcnt_t;+#define __DEFINED_fsfilcnt_t+#endif+++#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)+typedef unsigned wint_t;+#define __DEFINED_wint_t+#endif++#if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t)+typedef unsigned long wctype_t;+#define __DEFINED_wctype_t+#endif+++#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)+typedef void * timer_t;+#define __DEFINED_timer_t+#endif++#if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t)+typedef int clockid_t;+#define __DEFINED_clockid_t+#endif++#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)+typedef long clock_t;+#define __DEFINED_clock_t+#endif++#if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval)+struct timeval { time_t tv_sec; suseconds_t tv_usec; };+#define __DEFINED_struct_timeval+#endif++#if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec)+struct timespec { time_t tv_sec; int :8*(sizeof(time_t)-sizeof(long))*(__BYTE_ORDER==4321); long tv_nsec; int :8*(sizeof(time_t)-sizeof(long))*(__BYTE_ORDER!=4321); };+#define __DEFINED_struct_timespec+#endif+++#if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t)+typedef int pid_t;+#define __DEFINED_pid_t+#endif++#if defined(__NEED_id_t) && !defined(__DEFINED_id_t)+typedef unsigned id_t;+#define __DEFINED_id_t+#endif++#if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t)+typedef unsigned uid_t;+#define __DEFINED_uid_t+#endif++#if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t)+typedef unsigned gid_t;+#define __DEFINED_gid_t+#endif++#if defined(__NEED_key_t) && !defined(__DEFINED_key_t)+typedef int key_t;+#define __DEFINED_key_t+#endif++#if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t)+typedef unsigned useconds_t;+#define __DEFINED_useconds_t+#endif+++#ifdef __cplusplus+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)+typedef unsigned long pthread_t;+#define __DEFINED_pthread_t+#endif++#else+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)+typedef struct __pthread * pthread_t;+#define __DEFINED_pthread_t+#endif++#endif+#if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t)+typedef int pthread_once_t;+#define __DEFINED_pthread_once_t+#endif++#if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t)+typedef unsigned pthread_key_t;+#define __DEFINED_pthread_key_t+#endif++#if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t)+typedef int pthread_spinlock_t;+#define __DEFINED_pthread_spinlock_t+#endif++#if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t)+typedef struct { unsigned __attr; } pthread_mutexattr_t;+#define __DEFINED_pthread_mutexattr_t+#endif++#if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t)+typedef struct { unsigned __attr; } pthread_condattr_t;+#define __DEFINED_pthread_condattr_t+#endif++#if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t)+typedef struct { unsigned __attr; } pthread_barrierattr_t;+#define __DEFINED_pthread_barrierattr_t+#endif++#if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t)+typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;+#define __DEFINED_pthread_rwlockattr_t+#endif+++#if defined(__NEED_struct__IO_FILE) && !defined(__DEFINED_struct__IO_FILE)+struct _IO_FILE { char __x; };+#define __DEFINED_struct__IO_FILE+#endif++#if defined(__NEED_FILE) && !defined(__DEFINED_FILE)+typedef struct _IO_FILE FILE;+#define __DEFINED_FILE+#endif+++#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)+typedef __builtin_va_list va_list;+#define __DEFINED_va_list+#endif++#if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list)+typedef __builtin_va_list __isoc_va_list;+#define __DEFINED___isoc_va_list+#endif+++#if defined(__NEED_mbstate_t) && !defined(__DEFINED_mbstate_t)+typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t;+#define __DEFINED_mbstate_t+#endif+++#if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t)+typedef struct __locale_struct * locale_t;+#define __DEFINED_locale_t+#endif+++#if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t)+typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;+#define __DEFINED_sigset_t+#endif+++#if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec)+struct iovec { void *iov_base; size_t iov_len; };+#define __DEFINED_struct_iovec+#endif+++#if defined(__NEED_struct_winsize) && !defined(__DEFINED_struct_winsize)+struct winsize { unsigned short ws_row, ws_col, ws_xpixel, ws_ypixel; };+#define __DEFINED_struct_winsize+#endif+++#if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t)+typedef unsigned socklen_t;+#define __DEFINED_socklen_t+#endif++#if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t)+typedef unsigned short sa_family_t;+#define __DEFINED_sa_family_t+#endif+++#if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t)+typedef struct { union { int __i[sizeof(long)==8?14:9]; volatile int __vi[sizeof(long)==8?14:9]; unsigned long __s[sizeof(long)==8?7:9]; } __u; } pthread_attr_t;+#define __DEFINED_pthread_attr_t+#endif++#if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t)+typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } pthread_mutex_t;+#define __DEFINED_pthread_mutex_t+#endif++#if defined(__NEED_mtx_t) && !defined(__DEFINED_mtx_t)+typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } mtx_t;+#define __DEFINED_mtx_t+#endif++#if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t)+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } pthread_cond_t;+#define __DEFINED_pthread_cond_t+#endif++#if defined(__NEED_cnd_t) && !defined(__DEFINED_cnd_t)+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } cnd_t;+#define __DEFINED_cnd_t+#endif++#if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t)+typedef struct { union { int __i[sizeof(long)==8?14:8]; volatile int __vi[sizeof(long)==8?14:8]; void *__p[sizeof(long)==8?7:8]; } __u; } pthread_rwlock_t;+#define __DEFINED_pthread_rwlock_t+#endif++#if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t)+typedef struct { union { int __i[sizeof(long)==8?8:5]; volatile int __vi[sizeof(long)==8?8:5]; void *__p[sizeof(long)==8?4:5]; } __u; } pthread_barrier_t;+#define __DEFINED_pthread_barrier_t+#endif+++#undef _Addr+#undef _Int64+#undef _Reg
@@ -0,0 +1,11 @@+#define _DIRENT_HAVE_D_RECLEN+#define _DIRENT_HAVE_D_OFF+#define _DIRENT_HAVE_D_TYPE++struct dirent {+ ino_t d_ino;+ off_t d_off;+ unsigned short d_reclen;+ unsigned char d_type;+ char d_name[256];+};
@@ -0,0 +1,134 @@+#define EPERM 1+#define ENOENT 2+#define ESRCH 3+#define EINTR 4+#define EIO 5+#define ENXIO 6+#define E2BIG 7+#define ENOEXEC 8+#define EBADF 9+#define ECHILD 10+#define EAGAIN 11+#define ENOMEM 12+#define EACCES 13+#define EFAULT 14+#define ENOTBLK 15+#define EBUSY 16+#define EEXIST 17+#define EXDEV 18+#define ENODEV 19+#define ENOTDIR 20+#define EISDIR 21+#define EINVAL 22+#define ENFILE 23+#define EMFILE 24+#define ENOTTY 25+#define ETXTBSY 26+#define EFBIG 27+#define ENOSPC 28+#define ESPIPE 29+#define EROFS 30+#define EMLINK 31+#define EPIPE 32+#define EDOM 33+#define ERANGE 34+#define EDEADLK 35+#define ENAMETOOLONG 36+#define ENOLCK 37+#define ENOSYS 38+#define ENOTEMPTY 39+#define ELOOP 40+#define EWOULDBLOCK EAGAIN+#define ENOMSG 42+#define EIDRM 43+#define ECHRNG 44+#define EL2NSYNC 45+#define EL3HLT 46+#define EL3RST 47+#define ELNRNG 48+#define EUNATCH 49+#define ENOCSI 50+#define EL2HLT 51+#define EBADE 52+#define EBADR 53+#define EXFULL 54+#define ENOANO 55+#define EBADRQC 56+#define EBADSLT 57+#define EDEADLOCK EDEADLK+#define EBFONT 59+#define ENOSTR 60+#define ENODATA 61+#define ETIME 62+#define ENOSR 63+#define ENONET 64+#define ENOPKG 65+#define EREMOTE 66+#define ENOLINK 67+#define EADV 68+#define ESRMNT 69+#define ECOMM 70+#define EPROTO 71+#define EMULTIHOP 72+#define EDOTDOT 73+#define EBADMSG 74+#define EOVERFLOW 75+#define ENOTUNIQ 76+#define EBADFD 77+#define EREMCHG 78+#define ELIBACC 79+#define ELIBBAD 80+#define ELIBSCN 81+#define ELIBMAX 82+#define ELIBEXEC 83+#define EILSEQ 84+#define ERESTART 85+#define ESTRPIPE 86+#define EUSERS 87+#define ENOTSOCK 88+#define EDESTADDRREQ 89+#define EMSGSIZE 90+#define EPROTOTYPE 91+#define ENOPROTOOPT 92+#define EPROTONOSUPPORT 93+#define ESOCKTNOSUPPORT 94+#define EOPNOTSUPP 95+#define ENOTSUP EOPNOTSUPP+#define EPFNOSUPPORT 96+#define EAFNOSUPPORT 97+#define EADDRINUSE 98+#define EADDRNOTAVAIL 99+#define ENETDOWN 100+#define ENETUNREACH 101+#define ENETRESET 102+#define ECONNABORTED 103+#define ECONNRESET 104+#define ENOBUFS 105+#define EISCONN 106+#define ENOTCONN 107+#define ESHUTDOWN 108+#define ETOOMANYREFS 109+#define ETIMEDOUT 110+#define ECONNREFUSED 111+#define EHOSTDOWN 112+#define EHOSTUNREACH 113+#define EALREADY 114+#define EINPROGRESS 115+#define ESTALE 116+#define EUCLEAN 117+#define ENOTNAM 118+#define ENAVAIL 119+#define EISNAM 120+#define EREMOTEIO 121+#define EDQUOT 122+#define ENOMEDIUM 123+#define EMEDIUMTYPE 124+#define ECANCELED 125+#define ENOKEY 126+#define EKEYEXPIRED 127+#define EKEYREVOKED 128+#define EKEYREJECTED 129+#define EOWNERDEAD 130+#define ENOTRECOVERABLE 131+#define ERFKILL 132+#define EHWPOISON 133
@@ -0,0 +1,38 @@+#define O_CREAT 0100+#define O_EXCL 0200+#define O_NOCTTY 0400+#define O_TRUNC 01000+#define O_APPEND 02000+#define O_NONBLOCK 04000+#define O_DSYNC 010000+#define O_SYNC 04010000+#define O_RSYNC 04010000+#define O_DIRECTORY 040000+#define O_NOFOLLOW 0100000+#define O_CLOEXEC 02000000++#define O_ASYNC 020000+#define O_DIRECT 0200000+#define O_LARGEFILE 0400000+#define O_NOATIME 01000000+#define O_PATH 010000000+#define O_TMPFILE 020040000+#define O_NDELAY O_NONBLOCK++#define F_DUPFD 0+#define F_GETFD 1+#define F_SETFD 2+#define F_GETFL 3+#define F_SETFL 4+#define F_GETLK 5+#define F_SETLK 6+#define F_SETLKW 7+#define F_SETOWN 8+#define F_GETOWN 9+#define F_SETSIG 10+#define F_GETSIG 11++#define F_SETOWN_EX 15+#define F_GETOWN_EX 16++#define F_GETOWNER_UIDS 17
@@ -0,0 +1,19 @@+#define FE_INVALID 1+#define FE_DIVBYZERO 2+#define FE_OVERFLOW 4+#define FE_UNDERFLOW 8+#define FE_INEXACT 16+#define FE_ALL_EXCEPT 31+#define FE_TONEAREST 0+#define FE_DOWNWARD 0x800000+#define FE_UPWARD 0x400000+#define FE_TOWARDZERO 0xc00000++typedef unsigned int fexcept_t;++typedef struct {+ unsigned int __fpcr;+ unsigned int __fpsr;+} fenv_t;++#define FE_DFL_ENV ((const fenv_t *) -1)
@@ -0,0 +1,16 @@+#define FLT_EVAL_METHOD 0++#define LDBL_TRUE_MIN 6.47517511943802511092443895822764655e-4966L+#define LDBL_MIN 3.36210314311209350626267781732175260e-4932L+#define LDBL_MAX 1.18973149535723176508575932662800702e+4932L+#define LDBL_EPSILON 1.92592994438723585305597794258492732e-34L++#define LDBL_MANT_DIG 113+#define LDBL_MIN_EXP (-16381)+#define LDBL_MAX_EXP 16384++#define LDBL_DIG 33+#define LDBL_MIN_10_EXP (-4931)+#define LDBL_MAX_10_EXP 4932++#define DECIMAL_DIG 36
@@ -0,0 +1,52 @@+#define HWCAP_FP (1 << 0)+#define HWCAP_ASIMD (1 << 1)+#define HWCAP_EVTSTRM (1 << 2)+#define HWCAP_AES (1 << 3)+#define HWCAP_PMULL (1 << 4)+#define HWCAP_SHA1 (1 << 5)+#define HWCAP_SHA2 (1 << 6)+#define HWCAP_CRC32 (1 << 7)+#define HWCAP_ATOMICS (1 << 8)+#define HWCAP_FPHP (1 << 9)+#define HWCAP_ASIMDHP (1 << 10)+#define HWCAP_CPUID (1 << 11)+#define HWCAP_ASIMDRDM (1 << 12)+#define HWCAP_JSCVT (1 << 13)+#define HWCAP_FCMA (1 << 14)+#define HWCAP_LRCPC (1 << 15)+#define HWCAP_DCPOP (1 << 16)+#define HWCAP_SHA3 (1 << 17)+#define HWCAP_SM3 (1 << 18)+#define HWCAP_SM4 (1 << 19)+#define HWCAP_ASIMDDP (1 << 20)+#define HWCAP_SHA512 (1 << 21)+#define HWCAP_SVE (1 << 22)+#define HWCAP_ASIMDFHM (1 << 23)+#define HWCAP_DIT (1 << 24)+#define HWCAP_USCAT (1 << 25)+#define HWCAP_ILRCPC (1 << 26)+#define HWCAP_FLAGM (1 << 27)+#define HWCAP_SSBS (1 << 28)+#define HWCAP_SB (1 << 29)+#define HWCAP_PACA (1 << 30)+#define HWCAP_PACG (1UL << 31)++#define HWCAP2_DCPODP (1 << 0)+#define HWCAP2_SVE2 (1 << 1)+#define HWCAP2_SVEAES (1 << 2)+#define HWCAP2_SVEPMULL (1 << 3)+#define HWCAP2_SVEBITPERM (1 << 4)+#define HWCAP2_SVESHA3 (1 << 5)+#define HWCAP2_SVESM4 (1 << 6)+#define HWCAP2_FLAGM2 (1 << 7)+#define HWCAP2_FRINT (1 << 8)+#define HWCAP2_SVEI8MM (1 << 9)+#define HWCAP2_SVEF32MM (1 << 10)+#define HWCAP2_SVEF64MM (1 << 11)+#define HWCAP2_SVEBF16 (1 << 12)+#define HWCAP2_I8MM (1 << 13)+#define HWCAP2_BF16 (1 << 14)+#define HWCAP2_DGH (1 << 15)+#define HWCAP2_RNG (1 << 16)+#define HWCAP2_BTI (1 << 17)+#define HWCAP2_MTE (1 << 18)
@@ -0,0 +1,115 @@+#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )+#define _IOC_NONE 0U+#define _IOC_WRITE 1U+#define _IOC_READ 2U++#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)+#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))+#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))+#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))++#define TCGETS 0x5401+#define TCSETS 0x5402+#define TCSETSW 0x5403+#define TCSETSF 0x5404+#define TCGETA 0x5405+#define TCSETA 0x5406+#define TCSETAW 0x5407+#define TCSETAF 0x5408+#define TCSBRK 0x5409+#define TCXONC 0x540A+#define TCFLSH 0x540B+#define TIOCEXCL 0x540C+#define TIOCNXCL 0x540D+#define TIOCSCTTY 0x540E+#define TIOCGPGRP 0x540F+#define TIOCSPGRP 0x5410+#define TIOCOUTQ 0x5411+#define TIOCSTI 0x5412+#define TIOCGWINSZ 0x5413+#define TIOCSWINSZ 0x5414+#define TIOCMGET 0x5415+#define TIOCMBIS 0x5416+#define TIOCMBIC 0x5417+#define TIOCMSET 0x5418+#define TIOCGSOFTCAR 0x5419+#define TIOCSSOFTCAR 0x541A+#define FIONREAD 0x541B+#define TIOCINQ FIONREAD+#define TIOCLINUX 0x541C+#define TIOCCONS 0x541D+#define TIOCGSERIAL 0x541E+#define TIOCSSERIAL 0x541F+#define TIOCPKT 0x5420+#define FIONBIO 0x5421+#define TIOCNOTTY 0x5422+#define TIOCSETD 0x5423+#define TIOCGETD 0x5424+#define TCSBRKP 0x5425+#define TIOCSBRK 0x5427+#define TIOCCBRK 0x5428+#define TIOCGSID 0x5429+#define TIOCGRS485 0x542E+#define TIOCSRS485 0x542F+#define TIOCGPTN 0x80045430+#define TIOCSPTLCK 0x40045431+#define TIOCGDEV 0x80045432+#define TCGETX 0x5432+#define TCSETX 0x5433+#define TCSETXF 0x5434+#define TCSETXW 0x5435+#define TIOCSIG 0x40045436+#define TIOCVHANGUP 0x5437+#define TIOCGPKT 0x80045438+#define TIOCGPTLCK 0x80045439+#define TIOCGEXCL 0x80045440+#define TIOCGPTPEER 0x5441+#define TIOCGISO7816 0x80285442+#define TIOCSISO7816 0xc0285443++#define FIONCLEX 0x5450+#define FIOCLEX 0x5451+#define FIOASYNC 0x5452+#define TIOCSERCONFIG 0x5453+#define TIOCSERGWILD 0x5454+#define TIOCSERSWILD 0x5455+#define TIOCGLCKTRMIOS 0x5456+#define TIOCSLCKTRMIOS 0x5457+#define TIOCSERGSTRUCT 0x5458+#define TIOCSERGETLSR 0x5459+#define TIOCSERGETMULTI 0x545A+#define TIOCSERSETMULTI 0x545B++#define TIOCMIWAIT 0x545C+#define TIOCGICOUNT 0x545D+#define FIOQSIZE 0x5460++#define TIOCM_LE 0x001+#define TIOCM_DTR 0x002+#define TIOCM_RTS 0x004+#define TIOCM_ST 0x008+#define TIOCM_SR 0x010+#define TIOCM_CTS 0x020+#define TIOCM_CAR 0x040+#define TIOCM_RNG 0x080+#define TIOCM_DSR 0x100+#define TIOCM_CD TIOCM_CAR+#define TIOCM_RI TIOCM_RNG+#define TIOCM_OUT1 0x2000+#define TIOCM_OUT2 0x4000+#define TIOCM_LOOP 0x8000++#define FIOSETOWN 0x8901+#define SIOCSPGRP 0x8902+#define FIOGETOWN 0x8903+#define SIOCGPGRP 0x8904+#define SIOCATMARK 0x8905+#if __LONG_MAX == 0x7fffffff+#define SIOCGSTAMP _IOR(0x89, 6, char[16])+#define SIOCGSTAMPNS _IOR(0x89, 7, char[16])+#else+#define SIOCGSTAMP 0x8906+#define SIOCGSTAMPNS 0x8907+#endif++#include <bits/ioctl_fix.h>
@@ -0,0 +1,11 @@+struct ipc_perm {+ key_t __ipc_perm_key;+ uid_t uid;+ gid_t gid;+ uid_t cuid;+ gid_t cgid;+ mode_t mode;+ int __ipc_perm_seq;+ long __pad1;+ long __pad2;+};
@@ -0,0 +1,1 @@+#define IPC_STAT 2
@@ -0,0 +1,1 @@+#include <linux/kd.h>
@@ -0,0 +1,1 @@+typedef uint32_t Elf_Symndx;
@@ -0,0 +1,2 @@+#define PROT_BTI 0x10+#define PROT_MTE 0x20
@@ -0,0 +1,12 @@+struct msqid_ds {+ struct ipc_perm msg_perm;+ time_t msg_stime;+ time_t msg_rtime;+ time_t msg_ctime;+ unsigned long msg_cbytes;+ msgqnum_t msg_qnum;+ msglen_t msg_qbytes;+ pid_t msg_lspid;+ pid_t msg_lrpid;+ unsigned long __unused[2];+};
@@ -0,0 +1,2 @@+#define _POSIX_V6_LP64_OFF64 1+#define _POSIX_V7_LP64_OFF64 1
@@ -0,0 +1,2 @@+#undef __WORDSIZE+#define __WORDSIZE 64
@@ -0,0 +1,14 @@+struct semid_ds {+ struct ipc_perm sem_perm;+ time_t sem_otime;+ time_t sem_ctime;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned short sem_nsems;+ char __sem_nsems_pad[sizeof(long)-sizeof(short)];+#else+ char __sem_nsems_pad[sizeof(long)-sizeof(short)];+ unsigned short sem_nsems;+#endif+ long __unused3;+ long __unused4;+};
@@ -0,0 +1,1 @@+typedef unsigned long __jmp_buf[22];
@@ -0,0 +1,24 @@+#define SHMLBA 4096++struct shmid_ds {+ struct ipc_perm shm_perm;+ size_t shm_segsz;+ time_t shm_atime;+ time_t shm_dtime;+ time_t shm_ctime;+ pid_t shm_cpid;+ pid_t shm_lpid;+ unsigned long shm_nattch;+ unsigned long __pad1;+ unsigned long __pad2;+};++struct shminfo {+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];+};++struct shm_info {+ int __used_ids;+ unsigned long shm_tot, shm_rss, shm_swp;+ unsigned long __swap_attempts, __swap_successes;+};
@@ -0,0 +1,153 @@+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define MINSIGSTKSZ 6144+#define SIGSTKSZ 12288+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+typedef unsigned long greg_t;+typedef unsigned long gregset_t[34];++typedef struct {+ __uint128_t vregs[32];+ unsigned int fpsr;+ unsigned int fpcr;+} fpregset_t;+typedef struct sigcontext {+ unsigned long fault_address;+ unsigned long regs[31];+ unsigned long sp, pc, pstate;+ long double __reserved[256];+} mcontext_t;++#define FPSIMD_MAGIC 0x46508001+#define ESR_MAGIC 0x45535201+#define EXTRA_MAGIC 0x45585401+#define SVE_MAGIC 0x53564501+struct _aarch64_ctx {+ unsigned int magic;+ unsigned int size;+};+struct fpsimd_context {+ struct _aarch64_ctx head;+ unsigned int fpsr;+ unsigned int fpcr;+ __uint128_t vregs[32];+};+struct esr_context {+ struct _aarch64_ctx head;+ unsigned long esr;+};+struct extra_context {+ struct _aarch64_ctx head;+ unsigned long datap;+ unsigned int size;+ unsigned int __reserved[3];+};+struct sve_context {+ struct _aarch64_ctx head;+ unsigned short vl;+ unsigned short __reserved[3];+};+#define SVE_VQ_BYTES 16+#define SVE_VQ_MIN 1+#define SVE_VQ_MAX 512+#define SVE_VL_MIN (SVE_VQ_MIN * SVE_VQ_BYTES)+#define SVE_VL_MAX (SVE_VQ_MAX * SVE_VQ_BYTES)+#define SVE_NUM_ZREGS 32+#define SVE_NUM_PREGS 16+#define sve_vl_valid(vl) \+ ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX)+#define sve_vq_from_vl(vl) ((vl) / SVE_VQ_BYTES)+#define sve_vl_from_vq(vq) ((vq) * SVE_VQ_BYTES)+#define SVE_SIG_ZREG_SIZE(vq) ((unsigned)(vq) * SVE_VQ_BYTES)+#define SVE_SIG_PREG_SIZE(vq) ((unsigned)(vq) * (SVE_VQ_BYTES / 8))+#define SVE_SIG_FFR_SIZE(vq) SVE_SIG_PREG_SIZE(vq)+#define SVE_SIG_REGS_OFFSET \+ ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1)) \+ / SVE_VQ_BYTES * SVE_VQ_BYTES)+#define SVE_SIG_ZREGS_OFFSET SVE_SIG_REGS_OFFSET+#define SVE_SIG_ZREG_OFFSET(vq, n) \+ (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n))+#define SVE_SIG_ZREGS_SIZE(vq) \+ (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET)+#define SVE_SIG_PREGS_OFFSET(vq) \+ (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq))+#define SVE_SIG_PREG_OFFSET(vq, n) \+ (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n))+#define SVE_SIG_PREGS_SIZE(vq) \+ (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq))+#define SVE_SIG_FFR_OFFSET(vq) \+ (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq))+#define SVE_SIG_REGS_SIZE(vq) \+ (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)+#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))+#else+typedef struct {+ long double __regs[18+256];+} mcontext_t;+#endif++struct sigaltstack {+ void *ss_sp;+ int ss_flags;+ size_t ss_size;+};++typedef struct __ucontext {+ unsigned long uc_flags;+ struct __ucontext *uc_link;+ stack_t uc_stack;+ sigset_t uc_sigmask;+ mcontext_t uc_mcontext;+} ucontext_t;++#define SA_NOCLDSTOP 1+#define SA_NOCLDWAIT 2+#define SA_SIGINFO 4+#define SA_ONSTACK 0x08000000+#define SA_RESTART 0x10000000+#define SA_NODEFER 0x40000000+#define SA_RESETHAND 0x80000000+#define SA_RESTORER 0x04000000++#endif++#define SIGHUP 1+#define SIGINT 2+#define SIGQUIT 3+#define SIGILL 4+#define SIGTRAP 5+#define SIGABRT 6+#define SIGIOT SIGABRT+#define SIGBUS 7+#define SIGFPE 8+#define SIGKILL 9+#define SIGUSR1 10+#define SIGSEGV 11+#define SIGUSR2 12+#define SIGPIPE 13+#define SIGALRM 14+#define SIGTERM 15+#define SIGSTKFLT 16+#define SIGCHLD 17+#define SIGCONT 18+#define SIGSTOP 19+#define SIGTSTP 20+#define SIGTTIN 21+#define SIGTTOU 22+#define SIGURG 23+#define SIGXCPU 24+#define SIGXFSZ 25+#define SIGVTALRM 26+#define SIGPROF 27+#define SIGWINCH 28+#define SIGIO 29+#define SIGPOLL 29+#define SIGPWR 30+#define SIGSYS 31+#define SIGUNUSED SIGSYS++#define _NSIG 65
@@ -0,0 +1,1 @@+#include <linux/soundcard.h>
@@ -0,0 +1,18 @@+struct stat {+ dev_t st_dev;+ ino_t st_ino;+ mode_t st_mode;+ nlink_t st_nlink;+ uid_t st_uid;+ gid_t st_gid;+ dev_t st_rdev;+ unsigned long __pad;+ off_t st_size;+ blksize_t st_blksize;+ int __pad2;+ blkcnt_t st_blocks;+ struct timespec st_atim;+ struct timespec st_mtim;+ struct timespec st_ctim;+ unsigned __unused[2];+};
@@ -0,0 +1,7 @@+struct statfs {+ unsigned long f_type, f_bsize;+ fsblkcnt_t f_blocks, f_bfree, f_bavail;+ fsfilcnt_t f_files, f_ffree;+ fsid_t f_fsid;+ unsigned long f_namelen, f_frsize, f_flags, f_spare[4];+};
@@ -0,0 +1,20 @@+typedef int32_t int_fast16_t;+typedef int32_t int_fast32_t;+typedef uint32_t uint_fast16_t;+typedef uint32_t uint_fast32_t;++#define INT_FAST16_MIN INT32_MIN+#define INT_FAST32_MIN INT32_MIN++#define INT_FAST16_MAX INT32_MAX+#define INT_FAST32_MAX INT32_MAX++#define UINT_FAST16_MAX UINT32_MAX+#define UINT_FAST32_MAX UINT32_MAX++#define INTPTR_MIN INT64_MIN+#define INTPTR_MAX INT64_MAX+#define UINTPTR_MAX UINT64_MAX+#define PTRDIFF_MIN INT64_MIN+#define PTRDIFF_MAX INT64_MAX+#define SIZE_MAX UINT64_MAX
@@ -0,0 +1,613 @@+#define __NR_io_setup 0+#define __NR_io_destroy 1+#define __NR_io_submit 2+#define __NR_io_cancel 3+#define __NR_io_getevents 4+#define __NR_setxattr 5+#define __NR_lsetxattr 6+#define __NR_fsetxattr 7+#define __NR_getxattr 8+#define __NR_lgetxattr 9+#define __NR_fgetxattr 10+#define __NR_listxattr 11+#define __NR_llistxattr 12+#define __NR_flistxattr 13+#define __NR_removexattr 14+#define __NR_lremovexattr 15+#define __NR_fremovexattr 16+#define __NR_getcwd 17+#define __NR_lookup_dcookie 18+#define __NR_eventfd2 19+#define __NR_epoll_create1 20+#define __NR_epoll_ctl 21+#define __NR_epoll_pwait 22+#define __NR_dup 23+#define __NR_dup3 24+#define __NR_fcntl 25+#define __NR_inotify_init1 26+#define __NR_inotify_add_watch 27+#define __NR_inotify_rm_watch 28+#define __NR_ioctl 29+#define __NR_ioprio_set 30+#define __NR_ioprio_get 31+#define __NR_flock 32+#define __NR_mknodat 33+#define __NR_mkdirat 34+#define __NR_unlinkat 35+#define __NR_symlinkat 36+#define __NR_linkat 37+#define __NR_renameat 38+#define __NR_umount2 39+#define __NR_mount 40+#define __NR_pivot_root 41+#define __NR_nfsservctl 42+#define __NR_statfs 43+#define __NR_fstatfs 44+#define __NR_truncate 45+#define __NR_ftruncate 46+#define __NR_fallocate 47+#define __NR_faccessat 48+#define __NR_chdir 49+#define __NR_fchdir 50+#define __NR_chroot 51+#define __NR_fchmod 52+#define __NR_fchmodat 53+#define __NR_fchownat 54+#define __NR_fchown 55+#define __NR_openat 56+#define __NR_close 57+#define __NR_vhangup 58+#define __NR_pipe2 59+#define __NR_quotactl 60+#define __NR_getdents64 61+#define __NR_lseek 62+#define __NR_read 63+#define __NR_write 64+#define __NR_readv 65+#define __NR_writev 66+#define __NR_pread64 67+#define __NR_pwrite64 68+#define __NR_preadv 69+#define __NR_pwritev 70+#define __NR_sendfile 71+#define __NR_pselect6 72+#define __NR_ppoll 73+#define __NR_signalfd4 74+#define __NR_vmsplice 75+#define __NR_splice 76+#define __NR_tee 77+#define __NR_readlinkat 78+#define __NR_newfstatat 79+#define __NR_fstat 80+#define __NR_sync 81+#define __NR_fsync 82+#define __NR_fdatasync 83+#define __NR_sync_file_range 84+#define __NR_timerfd_create 85+#define __NR_timerfd_settime 86+#define __NR_timerfd_gettime 87+#define __NR_utimensat 88+#define __NR_acct 89+#define __NR_capget 90+#define __NR_capset 91+#define __NR_personality 92+#define __NR_exit 93+#define __NR_exit_group 94+#define __NR_waitid 95+#define __NR_set_tid_address 96+#define __NR_unshare 97+#define __NR_futex 98+#define __NR_set_robust_list 99+#define __NR_get_robust_list 100+#define __NR_nanosleep 101+#define __NR_getitimer 102+#define __NR_setitimer 103+#define __NR_kexec_load 104+#define __NR_init_module 105+#define __NR_delete_module 106+#define __NR_timer_create 107+#define __NR_timer_gettime 108+#define __NR_timer_getoverrun 109+#define __NR_timer_settime 110+#define __NR_timer_delete 111+#define __NR_clock_settime 112+#define __NR_clock_gettime 113+#define __NR_clock_getres 114+#define __NR_clock_nanosleep 115+#define __NR_syslog 116+#define __NR_ptrace 117+#define __NR_sched_setparam 118+#define __NR_sched_setscheduler 119+#define __NR_sched_getscheduler 120+#define __NR_sched_getparam 121+#define __NR_sched_setaffinity 122+#define __NR_sched_getaffinity 123+#define __NR_sched_yield 124+#define __NR_sched_get_priority_max 125+#define __NR_sched_get_priority_min 126+#define __NR_sched_rr_get_interval 127+#define __NR_restart_syscall 128+#define __NR_kill 129+#define __NR_tkill 130+#define __NR_tgkill 131+#define __NR_sigaltstack 132+#define __NR_rt_sigsuspend 133+#define __NR_rt_sigaction 134+#define __NR_rt_sigprocmask 135+#define __NR_rt_sigpending 136+#define __NR_rt_sigtimedwait 137+#define __NR_rt_sigqueueinfo 138+#define __NR_rt_sigreturn 139+#define __NR_setpriority 140+#define __NR_getpriority 141+#define __NR_reboot 142+#define __NR_setregid 143+#define __NR_setgid 144+#define __NR_setreuid 145+#define __NR_setuid 146+#define __NR_setresuid 147+#define __NR_getresuid 148+#define __NR_setresgid 149+#define __NR_getresgid 150+#define __NR_setfsuid 151+#define __NR_setfsgid 152+#define __NR_times 153+#define __NR_setpgid 154+#define __NR_getpgid 155+#define __NR_getsid 156+#define __NR_setsid 157+#define __NR_getgroups 158+#define __NR_setgroups 159+#define __NR_uname 160+#define __NR_sethostname 161+#define __NR_setdomainname 162+#define __NR_getrlimit 163+#define __NR_setrlimit 164+#define __NR_getrusage 165+#define __NR_umask 166+#define __NR_prctl 167+#define __NR_getcpu 168+#define __NR_gettimeofday 169+#define __NR_settimeofday 170+#define __NR_adjtimex 171+#define __NR_getpid 172+#define __NR_getppid 173+#define __NR_getuid 174+#define __NR_geteuid 175+#define __NR_getgid 176+#define __NR_getegid 177+#define __NR_gettid 178+#define __NR_sysinfo 179+#define __NR_mq_open 180+#define __NR_mq_unlink 181+#define __NR_mq_timedsend 182+#define __NR_mq_timedreceive 183+#define __NR_mq_notify 184+#define __NR_mq_getsetattr 185+#define __NR_msgget 186+#define __NR_msgctl 187+#define __NR_msgrcv 188+#define __NR_msgsnd 189+#define __NR_semget 190+#define __NR_semctl 191+#define __NR_semtimedop 192+#define __NR_semop 193+#define __NR_shmget 194+#define __NR_shmctl 195+#define __NR_shmat 196+#define __NR_shmdt 197+#define __NR_socket 198+#define __NR_socketpair 199+#define __NR_bind 200+#define __NR_listen 201+#define __NR_accept 202+#define __NR_connect 203+#define __NR_getsockname 204+#define __NR_getpeername 205+#define __NR_sendto 206+#define __NR_recvfrom 207+#define __NR_setsockopt 208+#define __NR_getsockopt 209+#define __NR_shutdown 210+#define __NR_sendmsg 211+#define __NR_recvmsg 212+#define __NR_readahead 213+#define __NR_brk 214+#define __NR_munmap 215+#define __NR_mremap 216+#define __NR_add_key 217+#define __NR_request_key 218+#define __NR_keyctl 219+#define __NR_clone 220+#define __NR_execve 221+#define __NR_mmap 222+#define __NR_fadvise64 223+#define __NR_swapon 224+#define __NR_swapoff 225+#define __NR_mprotect 226+#define __NR_msync 227+#define __NR_mlock 228+#define __NR_munlock 229+#define __NR_mlockall 230+#define __NR_munlockall 231+#define __NR_mincore 232+#define __NR_madvise 233+#define __NR_remap_file_pages 234+#define __NR_mbind 235+#define __NR_get_mempolicy 236+#define __NR_set_mempolicy 237+#define __NR_migrate_pages 238+#define __NR_move_pages 239+#define __NR_rt_tgsigqueueinfo 240+#define __NR_perf_event_open 241+#define __NR_accept4 242+#define __NR_recvmmsg 243+#define __NR_wait4 260+#define __NR_prlimit64 261+#define __NR_fanotify_init 262+#define __NR_fanotify_mark 263+#define __NR_name_to_handle_at 264+#define __NR_open_by_handle_at 265+#define __NR_clock_adjtime 266+#define __NR_syncfs 267+#define __NR_setns 268+#define __NR_sendmmsg 269+#define __NR_process_vm_readv 270+#define __NR_process_vm_writev 271+#define __NR_kcmp 272+#define __NR_finit_module 273+#define __NR_sched_setattr 274+#define __NR_sched_getattr 275+#define __NR_renameat2 276+#define __NR_seccomp 277+#define __NR_getrandom 278+#define __NR_memfd_create 279+#define __NR_bpf 280+#define __NR_execveat 281+#define __NR_userfaultfd 282+#define __NR_membarrier 283+#define __NR_mlock2 284+#define __NR_copy_file_range 285+#define __NR_preadv2 286+#define __NR_pwritev2 287+#define __NR_pkey_mprotect 288+#define __NR_pkey_alloc 289+#define __NR_pkey_free 290+#define __NR_statx 291+#define __NR_io_pgetevents 292+#define __NR_rseq 293+#define __NR_kexec_file_load 294+#define __NR_pidfd_send_signal 424+#define __NR_io_uring_setup 425+#define __NR_io_uring_enter 426+#define __NR_io_uring_register 427+#define __NR_open_tree 428+#define __NR_move_mount 429+#define __NR_fsopen 430+#define __NR_fsconfig 431+#define __NR_fsmount 432+#define __NR_fspick 433+#define __NR_pidfd_open 434+#define __NR_clone3 435+#define __NR_close_range 436+#define __NR_openat2 437+#define __NR_pidfd_getfd 438+#define __NR_faccessat2 439+#define __NR_process_madvise 440+#define __NR_epoll_pwait2 441+#define __NR_mount_setattr 442+#define __NR_landlock_create_ruleset 444+#define __NR_landlock_add_rule 445+#define __NR_landlock_restrict_self 446+#define __NR_process_mrelease 448+#define __NR_futex_waitv 449+#define __NR_set_mempolicy_home_node 450+#define __NR_cachestat 451+#define __NR_fchmodat2 452++#define SYS_io_setup 0+#define SYS_io_destroy 1+#define SYS_io_submit 2+#define SYS_io_cancel 3+#define SYS_io_getevents 4+#define SYS_setxattr 5+#define SYS_lsetxattr 6+#define SYS_fsetxattr 7+#define SYS_getxattr 8+#define SYS_lgetxattr 9+#define SYS_fgetxattr 10+#define SYS_listxattr 11+#define SYS_llistxattr 12+#define SYS_flistxattr 13+#define SYS_removexattr 14+#define SYS_lremovexattr 15+#define SYS_fremovexattr 16+#define SYS_getcwd 17+#define SYS_lookup_dcookie 18+#define SYS_eventfd2 19+#define SYS_epoll_create1 20+#define SYS_epoll_ctl 21+#define SYS_epoll_pwait 22+#define SYS_dup 23+#define SYS_dup3 24+#define SYS_fcntl 25+#define SYS_inotify_init1 26+#define SYS_inotify_add_watch 27+#define SYS_inotify_rm_watch 28+#define SYS_ioctl 29+#define SYS_ioprio_set 30+#define SYS_ioprio_get 31+#define SYS_flock 32+#define SYS_mknodat 33+#define SYS_mkdirat 34+#define SYS_unlinkat 35+#define SYS_symlinkat 36+#define SYS_linkat 37+#define SYS_renameat 38+#define SYS_umount2 39+#define SYS_mount 40+#define SYS_pivot_root 41+#define SYS_nfsservctl 42+#define SYS_statfs 43+#define SYS_fstatfs 44+#define SYS_truncate 45+#define SYS_ftruncate 46+#define SYS_fallocate 47+#define SYS_faccessat 48+#define SYS_chdir 49+#define SYS_fchdir 50+#define SYS_chroot 51+#define SYS_fchmod 52+#define SYS_fchmodat 53+#define SYS_fchownat 54+#define SYS_fchown 55+#define SYS_openat 56+#define SYS_close 57+#define SYS_vhangup 58+#define SYS_pipe2 59+#define SYS_quotactl 60+#define SYS_getdents64 61+#define SYS_lseek 62+#define SYS_read 63+#define SYS_write 64+#define SYS_readv 65+#define SYS_writev 66+#define SYS_pread64 67+#define SYS_pwrite64 68+#define SYS_preadv 69+#define SYS_pwritev 70+#define SYS_sendfile 71+#define SYS_pselect6 72+#define SYS_ppoll 73+#define SYS_signalfd4 74+#define SYS_vmsplice 75+#define SYS_splice 76+#define SYS_tee 77+#define SYS_readlinkat 78+#define SYS_newfstatat 79+#define SYS_fstat 80+#define SYS_sync 81+#define SYS_fsync 82+#define SYS_fdatasync 83+#define SYS_sync_file_range 84+#define SYS_timerfd_create 85+#define SYS_timerfd_settime 86+#define SYS_timerfd_gettime 87+#define SYS_utimensat 88+#define SYS_acct 89+#define SYS_capget 90+#define SYS_capset 91+#define SYS_personality 92+#define SYS_exit 93+#define SYS_exit_group 94+#define SYS_waitid 95+#define SYS_set_tid_address 96+#define SYS_unshare 97+#define SYS_futex 98+#define SYS_set_robust_list 99+#define SYS_get_robust_list 100+#define SYS_nanosleep 101+#define SYS_getitimer 102+#define SYS_setitimer 103+#define SYS_kexec_load 104+#define SYS_init_module 105+#define SYS_delete_module 106+#define SYS_timer_create 107+#define SYS_timer_gettime 108+#define SYS_timer_getoverrun 109+#define SYS_timer_settime 110+#define SYS_timer_delete 111+#define SYS_clock_settime 112+#define SYS_clock_gettime 113+#define SYS_clock_getres 114+#define SYS_clock_nanosleep 115+#define SYS_syslog 116+#define SYS_ptrace 117+#define SYS_sched_setparam 118+#define SYS_sched_setscheduler 119+#define SYS_sched_getscheduler 120+#define SYS_sched_getparam 121+#define SYS_sched_setaffinity 122+#define SYS_sched_getaffinity 123+#define SYS_sched_yield 124+#define SYS_sched_get_priority_max 125+#define SYS_sched_get_priority_min 126+#define SYS_sched_rr_get_interval 127+#define SYS_restart_syscall 128+#define SYS_kill 129+#define SYS_tkill 130+#define SYS_tgkill 131+#define SYS_sigaltstack 132+#define SYS_rt_sigsuspend 133+#define SYS_rt_sigaction 134+#define SYS_rt_sigprocmask 135+#define SYS_rt_sigpending 136+#define SYS_rt_sigtimedwait 137+#define SYS_rt_sigqueueinfo 138+#define SYS_rt_sigreturn 139+#define SYS_setpriority 140+#define SYS_getpriority 141+#define SYS_reboot 142+#define SYS_setregid 143+#define SYS_setgid 144+#define SYS_setreuid 145+#define SYS_setuid 146+#define SYS_setresuid 147+#define SYS_getresuid 148+#define SYS_setresgid 149+#define SYS_getresgid 150+#define SYS_setfsuid 151+#define SYS_setfsgid 152+#define SYS_times 153+#define SYS_setpgid 154+#define SYS_getpgid 155+#define SYS_getsid 156+#define SYS_setsid 157+#define SYS_getgroups 158+#define SYS_setgroups 159+#define SYS_uname 160+#define SYS_sethostname 161+#define SYS_setdomainname 162+#define SYS_getrlimit 163+#define SYS_setrlimit 164+#define SYS_getrusage 165+#define SYS_umask 166+#define SYS_prctl 167+#define SYS_getcpu 168+#define SYS_gettimeofday 169+#define SYS_settimeofday 170+#define SYS_adjtimex 171+#define SYS_getpid 172+#define SYS_getppid 173+#define SYS_getuid 174+#define SYS_geteuid 175+#define SYS_getgid 176+#define SYS_getegid 177+#define SYS_gettid 178+#define SYS_sysinfo 179+#define SYS_mq_open 180+#define SYS_mq_unlink 181+#define SYS_mq_timedsend 182+#define SYS_mq_timedreceive 183+#define SYS_mq_notify 184+#define SYS_mq_getsetattr 185+#define SYS_msgget 186+#define SYS_msgctl 187+#define SYS_msgrcv 188+#define SYS_msgsnd 189+#define SYS_semget 190+#define SYS_semctl 191+#define SYS_semtimedop 192+#define SYS_semop 193+#define SYS_shmget 194+#define SYS_shmctl 195+#define SYS_shmat 196+#define SYS_shmdt 197+#define SYS_socket 198+#define SYS_socketpair 199+#define SYS_bind 200+#define SYS_listen 201+#define SYS_accept 202+#define SYS_connect 203+#define SYS_getsockname 204+#define SYS_getpeername 205+#define SYS_sendto 206+#define SYS_recvfrom 207+#define SYS_setsockopt 208+#define SYS_getsockopt 209+#define SYS_shutdown 210+#define SYS_sendmsg 211+#define SYS_recvmsg 212+#define SYS_readahead 213+#define SYS_brk 214+#define SYS_munmap 215+#define SYS_mremap 216+#define SYS_add_key 217+#define SYS_request_key 218+#define SYS_keyctl 219+#define SYS_clone 220+#define SYS_execve 221+#define SYS_mmap 222+#define SYS_fadvise64 223+#define SYS_swapon 224+#define SYS_swapoff 225+#define SYS_mprotect 226+#define SYS_msync 227+#define SYS_mlock 228+#define SYS_munlock 229+#define SYS_mlockall 230+#define SYS_munlockall 231+#define SYS_mincore 232+#define SYS_madvise 233+#define SYS_remap_file_pages 234+#define SYS_mbind 235+#define SYS_get_mempolicy 236+#define SYS_set_mempolicy 237+#define SYS_migrate_pages 238+#define SYS_move_pages 239+#define SYS_rt_tgsigqueueinfo 240+#define SYS_perf_event_open 241+#define SYS_accept4 242+#define SYS_recvmmsg 243+#define SYS_wait4 260+#define SYS_prlimit64 261+#define SYS_fanotify_init 262+#define SYS_fanotify_mark 263+#define SYS_name_to_handle_at 264+#define SYS_open_by_handle_at 265+#define SYS_clock_adjtime 266+#define SYS_syncfs 267+#define SYS_setns 268+#define SYS_sendmmsg 269+#define SYS_process_vm_readv 270+#define SYS_process_vm_writev 271+#define SYS_kcmp 272+#define SYS_finit_module 273+#define SYS_sched_setattr 274+#define SYS_sched_getattr 275+#define SYS_renameat2 276+#define SYS_seccomp 277+#define SYS_getrandom 278+#define SYS_memfd_create 279+#define SYS_bpf 280+#define SYS_execveat 281+#define SYS_userfaultfd 282+#define SYS_membarrier 283+#define SYS_mlock2 284+#define SYS_copy_file_range 285+#define SYS_preadv2 286+#define SYS_pwritev2 287+#define SYS_pkey_mprotect 288+#define SYS_pkey_alloc 289+#define SYS_pkey_free 290+#define SYS_statx 291+#define SYS_io_pgetevents 292+#define SYS_rseq 293+#define SYS_kexec_file_load 294+#define SYS_pidfd_send_signal 424+#define SYS_io_uring_setup 425+#define SYS_io_uring_enter 426+#define SYS_io_uring_register 427+#define SYS_open_tree 428+#define SYS_move_mount 429+#define SYS_fsopen 430+#define SYS_fsconfig 431+#define SYS_fsmount 432+#define SYS_fspick 433+#define SYS_pidfd_open 434+#define SYS_clone3 435+#define SYS_close_range 436+#define SYS_openat2 437+#define SYS_pidfd_getfd 438+#define SYS_faccessat2 439+#define SYS_process_madvise 440+#define SYS_epoll_pwait2 441+#define SYS_mount_setattr 442+#define SYS_landlock_create_ruleset 444+#define SYS_landlock_add_rule 445+#define SYS_landlock_restrict_self 446+#define SYS_process_mrelease 448+#define SYS_futex_waitv 449+#define SYS_set_mempolicy_home_node 450+#define SYS_cachestat 451+#define SYS_fchmodat2 452
@@ -0,0 +1,166 @@+struct termios {+ tcflag_t c_iflag;+ tcflag_t c_oflag;+ tcflag_t c_cflag;+ tcflag_t c_lflag;+ cc_t c_line;+ cc_t c_cc[NCCS];+ speed_t __c_ispeed;+ speed_t __c_ospeed;+};++#define VINTR 0+#define VQUIT 1+#define VERASE 2+#define VKILL 3+#define VEOF 4+#define VTIME 5+#define VMIN 6+#define VSWTC 7+#define VSTART 8+#define VSTOP 9+#define VSUSP 10+#define VEOL 11+#define VREPRINT 12+#define VDISCARD 13+#define VWERASE 14+#define VLNEXT 15+#define VEOL2 16++#define IGNBRK 0000001+#define BRKINT 0000002+#define IGNPAR 0000004+#define PARMRK 0000010+#define INPCK 0000020+#define ISTRIP 0000040+#define INLCR 0000100+#define IGNCR 0000200+#define ICRNL 0000400+#define IUCLC 0001000+#define IXON 0002000+#define IXANY 0004000+#define IXOFF 0010000+#define IMAXBEL 0020000+#define IUTF8 0040000++#define OPOST 0000001+#define OLCUC 0000002+#define ONLCR 0000004+#define OCRNL 0000010+#define ONOCR 0000020+#define ONLRET 0000040+#define OFILL 0000100+#define OFDEL 0000200+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)+#define NLDLY 0000400+#define NL0 0000000+#define NL1 0000400+#define CRDLY 0003000+#define CR0 0000000+#define CR1 0001000+#define CR2 0002000+#define CR3 0003000+#define TABDLY 0014000+#define TAB0 0000000+#define TAB1 0004000+#define TAB2 0010000+#define TAB3 0014000+#define BSDLY 0020000+#define BS0 0000000+#define BS1 0020000+#define FFDLY 0100000+#define FF0 0000000+#define FF1 0100000+#endif++#define VTDLY 0040000+#define VT0 0000000+#define VT1 0040000++#define B0 0000000+#define B50 0000001+#define B75 0000002+#define B110 0000003+#define B134 0000004+#define B150 0000005+#define B200 0000006+#define B300 0000007+#define B600 0000010+#define B1200 0000011+#define B1800 0000012+#define B2400 0000013+#define B4800 0000014+#define B9600 0000015+#define B19200 0000016+#define B38400 0000017++#define B57600 0010001+#define B115200 0010002+#define B230400 0010003+#define B460800 0010004+#define B500000 0010005+#define B576000 0010006+#define B921600 0010007+#define B1000000 0010010+#define B1152000 0010011+#define B1500000 0010012+#define B2000000 0010013+#define B2500000 0010014+#define B3000000 0010015+#define B3500000 0010016+#define B4000000 0010017++#define CSIZE 0000060+#define CS5 0000000+#define CS6 0000020+#define CS7 0000040+#define CS8 0000060+#define CSTOPB 0000100+#define CREAD 0000200+#define PARENB 0000400+#define PARODD 0001000+#define HUPCL 0002000+#define CLOCAL 0004000++#define ISIG 0000001+#define ICANON 0000002+#define ECHO 0000010+#define ECHOE 0000020+#define ECHOK 0000040+#define ECHONL 0000100+#define NOFLSH 0000200+#define TOSTOP 0000400+#define IEXTEN 0100000++#define TCOOFF 0+#define TCOON 1+#define TCIOFF 2+#define TCION 3++#define TCIFLUSH 0+#define TCOFLUSH 1+#define TCIOFLUSH 2++#define TCSANOW 0+#define TCSADRAIN 1+#define TCSAFLUSH 2++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define EXTA 0000016+#define EXTB 0000017+#define CBAUD 0010017+#define CBAUDEX 0010000+#define CIBAUD 002003600000+#define CMSPAR 010000000000+#define CRTSCTS 020000000000++#define XCASE 0000004+#define ECHOCTL 0001000+#define ECHOPRT 0002000+#define ECHOKE 0004000+#define FLUSHO 0010000+#define PENDIN 0040000+#define EXTPROC 0200000++#define XTABS 0014000+#endif
@@ -0,0 +1,16 @@+struct user_regs_struct {+ unsigned long long regs[31];+ unsigned long long sp;+ unsigned long long pc;+ unsigned long long pstate;+};++struct user_fpsimd_struct {+ __uint128_t vregs[32];+ unsigned int fpsr;+ unsigned int fpcr;+};++#define ELF_NREG 34+typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NREG];+typedef struct user_fpsimd_struct elf_fpregset_t;
@@ -0,0 +1,1 @@+#include <linux/vt.h>
@@ -0,0 +1,26 @@+#ifndef _BYTESWAP_H+#define _BYTESWAP_H++#include <features.h>+#include <stdint.h>++static __inline uint16_t __bswap_16(uint16_t __x)+{+ return __x<<8 | __x>>8;+}++static __inline uint32_t __bswap_32(uint32_t __x)+{+ return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;+}++static __inline uint64_t __bswap_64(uint64_t __x)+{+ return __bswap_32(__x)+0ULL<<32 | __bswap_32(__x>>32);+}++#define bswap_16(x) __bswap_16(x)+#define bswap_32(x) __bswap_32(x)+#define bswap_64(x) __bswap_64(x)++#endif
@@ -0,0 +1,133 @@+#ifndef _COMPLEX_H+#define _COMPLEX_H++#ifdef __cplusplus+extern "C" {+#endif++#define complex _Complex+#ifdef __GNUC__+#define _Complex_I (__extension__ (0.0f+1.0fi))+#else+#define _Complex_I (0.0f+1.0fi)+#endif+#define I _Complex_I++double complex cacos(double complex);+float complex cacosf(float complex);+long double complex cacosl(long double complex);++double complex casin(double complex);+float complex casinf(float complex);+long double complex casinl(long double complex);++double complex catan(double complex);+float complex catanf(float complex);+long double complex catanl(long double complex);++double complex ccos(double complex);+float complex ccosf(float complex);+long double complex ccosl(long double complex);++double complex csin(double complex);+float complex csinf(float complex);+long double complex csinl(long double complex);++double complex ctan(double complex);+float complex ctanf(float complex);+long double complex ctanl(long double complex);++double complex cacosh(double complex);+float complex cacoshf(float complex);+long double complex cacoshl(long double complex);++double complex casinh(double complex);+float complex casinhf(float complex);+long double complex casinhl(long double complex);++double complex catanh(double complex);+float complex catanhf(float complex);+long double complex catanhl(long double complex);++double complex ccosh(double complex);+float complex ccoshf(float complex);+long double complex ccoshl(long double complex);++double complex csinh(double complex);+float complex csinhf(float complex);+long double complex csinhl(long double complex);++double complex ctanh(double complex);+float complex ctanhf(float complex);+long double complex ctanhl(long double complex);++double complex cexp(double complex);+float complex cexpf(float complex);+long double complex cexpl(long double complex);++double complex clog(double complex);+float complex clogf(float complex);+long double complex clogl(long double complex);++double cabs(double complex);+float cabsf(float complex);+long double cabsl(long double complex);++double complex cpow(double complex, double complex);+float complex cpowf(float complex, float complex);+long double complex cpowl(long double complex, long double complex);++double complex csqrt(double complex);+float complex csqrtf(float complex);+long double complex csqrtl(long double complex);++double carg(double complex);+float cargf(float complex);+long double cargl(long double complex);++double cimag(double complex);+float cimagf(float complex);+long double cimagl(long double complex);++double complex conj(double complex);+float complex conjf(float complex);+long double complex conjl(long double complex);++double complex cproj(double complex);+float complex cprojf(float complex);+long double complex cprojl(long double complex);++double creal(double complex);+float crealf(float complex);+long double creall(long double complex);++#ifndef __cplusplus+#define __CIMAG(x, t) \+ (+(union { _Complex t __z; t __xy[2]; }){(_Complex t)(x)}.__xy[1])++#define creal(x) ((double)(x))+#define crealf(x) ((float)(x))+#define creall(x) ((long double)(x))++#define cimag(x) __CIMAG(x, double)+#define cimagf(x) __CIMAG(x, float)+#define cimagl(x) __CIMAG(x, long double)+#endif++#if __STDC_VERSION__ >= 201112L+#if defined(_Imaginary_I)+#define __CMPLX(x, y, t) ((t)(x) + _Imaginary_I*(t)(y))+#elif defined(__clang__)+#define __CMPLX(x, y, t) (+(_Complex t){ (t)(x), (t)(y) })+#else+#define __CMPLX(x, y, t) (__builtin_complex((t)(x), (t)(y)))+#endif+#define CMPLX(x, y) __CMPLX(x, y, double)+#define CMPLXF(x, y) __CMPLX(x, y, float)+#define CMPLXL(x, y) __CMPLX(x, y, long double)+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,29 @@+#ifndef _CPIO_H+#define _CPIO_H++#define MAGIC "070707"++#define C_IRUSR 000400+#define C_IWUSR 000200+#define C_IXUSR 000100+#define C_IRGRP 000040+#define C_IWGRP 000020+#define C_IXGRP 000010+#define C_IROTH 000004+#define C_IWOTH 000002+#define C_IXOTH 000001++#define C_ISUID 004000+#define C_ISGID 002000+#define C_ISVTX 001000++#define C_ISBLK 060000+#define C_ISCHR 020000+#define C_ISDIR 040000+#define C_ISFIFO 010000+#define C_ISSOCK 0140000+#define C_ISLNK 0120000+#define C_ISCTG 0110000+#define C_ISREG 0100000++#endif
@@ -0,0 +1,20 @@+#ifndef _CRYPT_H+#define _CRYPT_H++#ifdef __cplusplus+extern "C" {+#endif++struct crypt_data {+ int initialized;+ char __buf[256];+};++char *crypt(const char *, const char *);+char *crypt_r(const char *, const char *, struct crypt_data *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,77 @@+#ifndef _CTYPE_H+#define _CTYPE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++int isalnum(int);+int isalpha(int);+int isblank(int);+int iscntrl(int);+int isdigit(int);+int isgraph(int);+int islower(int);+int isprint(int);+int ispunct(int);+int isspace(int);+int isupper(int);+int isxdigit(int);+int tolower(int);+int toupper(int);++#ifndef __cplusplus+static __inline int __isspace(int _c)+{+ return _c == ' ' || (unsigned)_c-'\t' < 5;+}++#define isalpha(a) (0 ? isalpha(a) : (((unsigned)(a)|32)-'a') < 26)+#define isdigit(a) (0 ? isdigit(a) : ((unsigned)(a)-'0') < 10)+#define islower(a) (0 ? islower(a) : ((unsigned)(a)-'a') < 26)+#define isupper(a) (0 ? isupper(a) : ((unsigned)(a)-'A') < 26)+#define isprint(a) (0 ? isprint(a) : ((unsigned)(a)-0x20) < 0x5f)+#define isgraph(a) (0 ? isgraph(a) : ((unsigned)(a)-0x21) < 0x5e)+#define isspace(a) __isspace(a)+#endif+++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++#define __NEED_locale_t+#include <bits/alltypes.h>++int isalnum_l(int, locale_t);+int isalpha_l(int, locale_t);+int isblank_l(int, locale_t);+int iscntrl_l(int, locale_t);+int isdigit_l(int, locale_t);+int isgraph_l(int, locale_t);+int islower_l(int, locale_t);+int isprint_l(int, locale_t);+int ispunct_l(int, locale_t);+int isspace_l(int, locale_t);+int isupper_l(int, locale_t);+int isxdigit_l(int, locale_t);+int tolower_l(int, locale_t);+int toupper_l(int, locale_t);++int isascii(int);+int toascii(int);+#define _tolower(a) ((a)|0x20)+#define _toupper(a) ((a)&0x5f)+#ifndef __cplusplus+#define isascii(a) (0 ? isascii(a) : (unsigned)(a) < 128)+#endif++#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,75 @@+#ifndef _DIRENT_H+#define _DIRENT_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_ino_t+#define __NEED_off_t+#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+#define __NEED_size_t+#endif++#include <bits/alltypes.h>++#include <bits/dirent.h>++typedef struct __dirstream DIR;++#define d_fileno d_ino++int closedir(DIR *);+DIR *fdopendir(int);+DIR *opendir(const char *);+struct dirent *readdir(DIR *);+int readdir_r(DIR *__restrict, struct dirent *__restrict, struct dirent **__restrict);+void rewinddir(DIR *);+int dirfd(DIR *);++int alphasort(const struct dirent **, const struct dirent **);+int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **));++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+void seekdir(DIR *, long);+long telldir(DIR *);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define DT_UNKNOWN 0+#define DT_FIFO 1+#define DT_CHR 2+#define DT_DIR 4+#define DT_BLK 6+#define DT_REG 8+#define DT_LNK 10+#define DT_SOCK 12+#define DT_WHT 14+#define IFTODT(x) ((x)>>12 & 017)+#define DTTOIF(x) ((x)<<12)+int getdents(int, struct dirent *, size_t);+#endif++#ifdef _GNU_SOURCE+int versionsort(const struct dirent **, const struct dirent **);+#endif++#if defined(_LARGEFILE64_SOURCE)+#define dirent64 dirent+#define readdir64 readdir+#define readdir64_r readdir_r+#define scandir64 scandir+#define alphasort64 alphasort+#define versionsort64 versionsort+#define off64_t off_t+#define ino64_t ino_t+#define getdents64 getdents+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,46 @@+#ifndef _DLFCN_H+#define _DLFCN_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define RTLD_LAZY 1+#define RTLD_NOW 2+#define RTLD_NOLOAD 4+#define RTLD_NODELETE 4096+#define RTLD_GLOBAL 256+#define RTLD_LOCAL 0++#define RTLD_NEXT ((void *)-1)+#define RTLD_DEFAULT ((void *)0)++#define RTLD_DI_LINKMAP 2++int dlclose(void *);+char *dlerror(void);+void *dlopen(const char *, int);+void *dlsym(void *__restrict, const char *__restrict);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+typedef struct {+ const char *dli_fname;+ void *dli_fbase;+ const char *dli_sname;+ void *dli_saddr;+} Dl_info;+int dladdr(const void *, Dl_info *);+int dlinfo(void *, int, void *);+#endif++#if _REDIR_TIME64+__REDIR(dlsym, __dlsym_time64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,3414 @@+#ifndef _ELF_H+#define _ELF_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>++typedef uint16_t Elf32_Half;+typedef uint16_t Elf64_Half;++typedef uint32_t Elf32_Word;+typedef int32_t Elf32_Sword;+typedef uint32_t Elf64_Word;+typedef int32_t Elf64_Sword;++typedef uint64_t Elf32_Xword;+typedef int64_t Elf32_Sxword;+typedef uint64_t Elf64_Xword;+typedef int64_t Elf64_Sxword;++typedef uint32_t Elf32_Addr;+typedef uint64_t Elf64_Addr;++typedef uint32_t Elf32_Off;+typedef uint64_t Elf64_Off;++typedef uint16_t Elf32_Section;+typedef uint16_t Elf64_Section;++typedef Elf32_Half Elf32_Versym;+typedef Elf64_Half Elf64_Versym;++#define EI_NIDENT (16)++typedef struct {+ unsigned char e_ident[EI_NIDENT];+ Elf32_Half e_type;+ Elf32_Half e_machine;+ Elf32_Word e_version;+ Elf32_Addr e_entry;+ Elf32_Off e_phoff;+ Elf32_Off e_shoff;+ Elf32_Word e_flags;+ Elf32_Half e_ehsize;+ Elf32_Half e_phentsize;+ Elf32_Half e_phnum;+ Elf32_Half e_shentsize;+ Elf32_Half e_shnum;+ Elf32_Half e_shstrndx;+} Elf32_Ehdr;++typedef struct {+ unsigned char e_ident[EI_NIDENT];+ Elf64_Half e_type;+ Elf64_Half e_machine;+ Elf64_Word e_version;+ Elf64_Addr e_entry;+ Elf64_Off e_phoff;+ Elf64_Off e_shoff;+ Elf64_Word e_flags;+ Elf64_Half e_ehsize;+ Elf64_Half e_phentsize;+ Elf64_Half e_phnum;+ Elf64_Half e_shentsize;+ Elf64_Half e_shnum;+ Elf64_Half e_shstrndx;+} Elf64_Ehdr;++#define EI_MAG0 0+#define ELFMAG0 0x7f++#define EI_MAG1 1+#define ELFMAG1 'E'++#define EI_MAG2 2+#define ELFMAG2 'L'++#define EI_MAG3 3+#define ELFMAG3 'F'+++#define ELFMAG "\177ELF"+#define SELFMAG 4++#define EI_CLASS 4+#define ELFCLASSNONE 0+#define ELFCLASS32 1+#define ELFCLASS64 2+#define ELFCLASSNUM 3++#define EI_DATA 5+#define ELFDATANONE 0+#define ELFDATA2LSB 1+#define ELFDATA2MSB 2+#define ELFDATANUM 3++#define EI_VERSION 6+++#define EI_OSABI 7+#define ELFOSABI_NONE 0+#define ELFOSABI_SYSV 0+#define ELFOSABI_HPUX 1+#define ELFOSABI_NETBSD 2+#define ELFOSABI_LINUX 3+#define ELFOSABI_GNU 3+#define ELFOSABI_SOLARIS 6+#define ELFOSABI_AIX 7+#define ELFOSABI_IRIX 8+#define ELFOSABI_FREEBSD 9+#define ELFOSABI_TRU64 10+#define ELFOSABI_MODESTO 11+#define ELFOSABI_OPENBSD 12+#define ELFOSABI_ARM 97+#define ELFOSABI_STANDALONE 255++#define EI_ABIVERSION 8++#define EI_PAD 9++++#define ET_NONE 0+#define ET_REL 1+#define ET_EXEC 2+#define ET_DYN 3+#define ET_CORE 4+#define ET_NUM 5+#define ET_LOOS 0xfe00+#define ET_HIOS 0xfeff+#define ET_LOPROC 0xff00+#define ET_HIPROC 0xffff++++#define EM_NONE 0+#define EM_M32 1+#define EM_SPARC 2+#define EM_386 3+#define EM_68K 4+#define EM_88K 5+#define EM_860 7+#define EM_MIPS 8+#define EM_S370 9+#define EM_MIPS_RS3_LE 10++#define EM_PARISC 15+#define EM_VPP500 17+#define EM_SPARC32PLUS 18+#define EM_960 19+#define EM_PPC 20+#define EM_PPC64 21+#define EM_S390 22++#define EM_V800 36+#define EM_FR20 37+#define EM_RH32 38+#define EM_RCE 39+#define EM_ARM 40+#define EM_FAKE_ALPHA 41+#define EM_SH 42+#define EM_SPARCV9 43+#define EM_TRICORE 44+#define EM_ARC 45+#define EM_H8_300 46+#define EM_H8_300H 47+#define EM_H8S 48+#define EM_H8_500 49+#define EM_IA_64 50+#define EM_MIPS_X 51+#define EM_COLDFIRE 52+#define EM_68HC12 53+#define EM_MMA 54+#define EM_PCP 55+#define EM_NCPU 56+#define EM_NDR1 57+#define EM_STARCORE 58+#define EM_ME16 59+#define EM_ST100 60+#define EM_TINYJ 61+#define EM_X86_64 62+#define EM_PDSP 63++#define EM_FX66 66+#define EM_ST9PLUS 67+#define EM_ST7 68+#define EM_68HC16 69+#define EM_68HC11 70+#define EM_68HC08 71+#define EM_68HC05 72+#define EM_SVX 73+#define EM_ST19 74+#define EM_VAX 75+#define EM_CRIS 76+#define EM_JAVELIN 77+#define EM_FIREPATH 78+#define EM_ZSP 79+#define EM_MMIX 80+#define EM_HUANY 81+#define EM_PRISM 82+#define EM_AVR 83+#define EM_FR30 84+#define EM_D10V 85+#define EM_D30V 86+#define EM_V850 87+#define EM_M32R 88+#define EM_MN10300 89+#define EM_MN10200 90+#define EM_PJ 91+#define EM_OR1K 92+#define EM_OPENRISC 92+#define EM_ARC_A5 93+#define EM_ARC_COMPACT 93+#define EM_XTENSA 94+#define EM_VIDEOCORE 95+#define EM_TMM_GPP 96+#define EM_NS32K 97+#define EM_TPC 98+#define EM_SNP1K 99+#define EM_ST200 100+#define EM_IP2K 101+#define EM_MAX 102+#define EM_CR 103+#define EM_F2MC16 104+#define EM_MSP430 105+#define EM_BLACKFIN 106+#define EM_SE_C33 107+#define EM_SEP 108+#define EM_ARCA 109+#define EM_UNICORE 110+#define EM_EXCESS 111+#define EM_DXP 112+#define EM_ALTERA_NIOS2 113+#define EM_CRX 114+#define EM_XGATE 115+#define EM_C166 116+#define EM_M16C 117+#define EM_DSPIC30F 118+#define EM_CE 119+#define EM_M32C 120+#define EM_TSK3000 131+#define EM_RS08 132+#define EM_SHARC 133+#define EM_ECOG2 134+#define EM_SCORE7 135+#define EM_DSP24 136+#define EM_VIDEOCORE3 137+#define EM_LATTICEMICO32 138+#define EM_SE_C17 139+#define EM_TI_C6000 140+#define EM_TI_C2000 141+#define EM_TI_C5500 142+#define EM_TI_ARP32 143+#define EM_TI_PRU 144+#define EM_MMDSP_PLUS 160+#define EM_CYPRESS_M8C 161+#define EM_R32C 162+#define EM_TRIMEDIA 163+#define EM_QDSP6 164+#define EM_8051 165+#define EM_STXP7X 166+#define EM_NDS32 167+#define EM_ECOG1X 168+#define EM_MAXQ30 169+#define EM_XIMO16 170+#define EM_MANIK 171+#define EM_CRAYNV2 172+#define EM_RX 173+#define EM_METAG 174+#define EM_MCST_ELBRUS 175+#define EM_ECOG16 176+#define EM_CR16 177+#define EM_ETPU 178+#define EM_SLE9X 179+#define EM_L10M 180+#define EM_K10M 181+#define EM_AARCH64 183+#define EM_AVR32 185+#define EM_STM8 186+#define EM_TILE64 187+#define EM_TILEPRO 188+#define EM_MICROBLAZE 189+#define EM_CUDA 190+#define EM_TILEGX 191+#define EM_CLOUDSHIELD 192+#define EM_COREA_1ST 193+#define EM_COREA_2ND 194+#define EM_ARC_COMPACT2 195+#define EM_OPEN8 196+#define EM_RL78 197+#define EM_VIDEOCORE5 198+#define EM_78KOR 199+#define EM_56800EX 200+#define EM_BA1 201+#define EM_BA2 202+#define EM_XCORE 203+#define EM_MCHP_PIC 204+#define EM_KM32 210+#define EM_KMX32 211+#define EM_EMX16 212+#define EM_EMX8 213+#define EM_KVARC 214+#define EM_CDP 215+#define EM_COGE 216+#define EM_COOL 217+#define EM_NORC 218+#define EM_CSR_KALIMBA 219+#define EM_Z80 220+#define EM_VISIUM 221+#define EM_FT32 222+#define EM_MOXIE 223+#define EM_AMDGPU 224+#define EM_RISCV 243+#define EM_BPF 247+#define EM_CSKY 252+#define EM_LOONGARCH 258+#define EM_NUM 259++#define EM_ALPHA 0x9026++#define EV_NONE 0+#define EV_CURRENT 1+#define EV_NUM 2++typedef struct {+ Elf32_Word sh_name;+ Elf32_Word sh_type;+ Elf32_Word sh_flags;+ Elf32_Addr sh_addr;+ Elf32_Off sh_offset;+ Elf32_Word sh_size;+ Elf32_Word sh_link;+ Elf32_Word sh_info;+ Elf32_Word sh_addralign;+ Elf32_Word sh_entsize;+} Elf32_Shdr;++typedef struct {+ Elf64_Word sh_name;+ Elf64_Word sh_type;+ Elf64_Xword sh_flags;+ Elf64_Addr sh_addr;+ Elf64_Off sh_offset;+ Elf64_Xword sh_size;+ Elf64_Word sh_link;+ Elf64_Word sh_info;+ Elf64_Xword sh_addralign;+ Elf64_Xword sh_entsize;+} Elf64_Shdr;++++#define SHN_UNDEF 0+#define SHN_LORESERVE 0xff00+#define SHN_LOPROC 0xff00+#define SHN_BEFORE 0xff00++#define SHN_AFTER 0xff01++#define SHN_HIPROC 0xff1f+#define SHN_LOOS 0xff20+#define SHN_HIOS 0xff3f+#define SHN_ABS 0xfff1+#define SHN_COMMON 0xfff2+#define SHN_XINDEX 0xffff+#define SHN_HIRESERVE 0xffff++++#define SHT_NULL 0+#define SHT_PROGBITS 1+#define SHT_SYMTAB 2+#define SHT_STRTAB 3+#define SHT_RELA 4+#define SHT_HASH 5+#define SHT_DYNAMIC 6+#define SHT_NOTE 7+#define SHT_NOBITS 8+#define SHT_REL 9+#define SHT_SHLIB 10+#define SHT_DYNSYM 11+#define SHT_INIT_ARRAY 14+#define SHT_FINI_ARRAY 15+#define SHT_PREINIT_ARRAY 16+#define SHT_GROUP 17+#define SHT_SYMTAB_SHNDX 18+#define SHT_RELR 19+#define SHT_NUM 20+#define SHT_LOOS 0x60000000+#define SHT_GNU_ATTRIBUTES 0x6ffffff5+#define SHT_GNU_HASH 0x6ffffff6+#define SHT_GNU_LIBLIST 0x6ffffff7+#define SHT_CHECKSUM 0x6ffffff8+#define SHT_LOSUNW 0x6ffffffa+#define SHT_SUNW_move 0x6ffffffa+#define SHT_SUNW_COMDAT 0x6ffffffb+#define SHT_SUNW_syminfo 0x6ffffffc+#define SHT_GNU_verdef 0x6ffffffd+#define SHT_GNU_verneed 0x6ffffffe+#define SHT_GNU_versym 0x6fffffff+#define SHT_HISUNW 0x6fffffff+#define SHT_HIOS 0x6fffffff+#define SHT_LOPROC 0x70000000+#define SHT_HIPROC 0x7fffffff+#define SHT_LOUSER 0x80000000+#define SHT_HIUSER 0x8fffffff++#define SHF_WRITE (1 << 0)+#define SHF_ALLOC (1 << 1)+#define SHF_EXECINSTR (1 << 2)+#define SHF_MERGE (1 << 4)+#define SHF_STRINGS (1 << 5)+#define SHF_INFO_LINK (1 << 6)+#define SHF_LINK_ORDER (1 << 7)+#define SHF_OS_NONCONFORMING (1 << 8)++#define SHF_GROUP (1 << 9)+#define SHF_TLS (1 << 10)+#define SHF_COMPRESSED (1 << 11)+#define SHF_MASKOS 0x0ff00000+#define SHF_MASKPROC 0xf0000000+#define SHF_ORDERED (1 << 30)+#define SHF_EXCLUDE (1U << 31)++typedef struct {+ Elf32_Word ch_type;+ Elf32_Word ch_size;+ Elf32_Word ch_addralign;+} Elf32_Chdr;++typedef struct {+ Elf64_Word ch_type;+ Elf64_Word ch_reserved;+ Elf64_Xword ch_size;+ Elf64_Xword ch_addralign;+} Elf64_Chdr;++#define ELFCOMPRESS_ZLIB 1+#define ELFCOMPRESS_ZSTD 2+#define ELFCOMPRESS_LOOS 0x60000000+#define ELFCOMPRESS_HIOS 0x6fffffff+#define ELFCOMPRESS_LOPROC 0x70000000+#define ELFCOMPRESS_HIPROC 0x7fffffff+++#define GRP_COMDAT 0x1++typedef struct {+ Elf32_Word st_name;+ Elf32_Addr st_value;+ Elf32_Word st_size;+ unsigned char st_info;+ unsigned char st_other;+ Elf32_Section st_shndx;+} Elf32_Sym;++typedef struct {+ Elf64_Word st_name;+ unsigned char st_info;+ unsigned char st_other;+ Elf64_Section st_shndx;+ Elf64_Addr st_value;+ Elf64_Xword st_size;+} Elf64_Sym;++typedef struct {+ Elf32_Half si_boundto;+ Elf32_Half si_flags;+} Elf32_Syminfo;++typedef struct {+ Elf64_Half si_boundto;+ Elf64_Half si_flags;+} Elf64_Syminfo;++#define SYMINFO_BT_SELF 0xffff+#define SYMINFO_BT_PARENT 0xfffe+#define SYMINFO_BT_LOWRESERVE 0xff00++#define SYMINFO_FLG_DIRECT 0x0001+#define SYMINFO_FLG_PASSTHRU 0x0002+#define SYMINFO_FLG_COPY 0x0004+#define SYMINFO_FLG_LAZYLOAD 0x0008++#define SYMINFO_NONE 0+#define SYMINFO_CURRENT 1+#define SYMINFO_NUM 2++#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)+#define ELF32_ST_TYPE(val) ((val) & 0xf)+#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))++#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)+#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)+#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))++#define STB_LOCAL 0+#define STB_GLOBAL 1+#define STB_WEAK 2+#define STB_NUM 3+#define STB_LOOS 10+#define STB_GNU_UNIQUE 10+#define STB_HIOS 12+#define STB_LOPROC 13+#define STB_HIPROC 15++#define STT_NOTYPE 0+#define STT_OBJECT 1+#define STT_FUNC 2+#define STT_SECTION 3+#define STT_FILE 4+#define STT_COMMON 5+#define STT_TLS 6+#define STT_NUM 7+#define STT_LOOS 10+#define STT_GNU_IFUNC 10+#define STT_HIOS 12+#define STT_LOPROC 13+#define STT_HIPROC 15++#define STN_UNDEF 0++#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)+#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)++#define STV_DEFAULT 0+#define STV_INTERNAL 1+#define STV_HIDDEN 2+#define STV_PROTECTED 3+++++typedef struct {+ Elf32_Addr r_offset;+ Elf32_Word r_info;+} Elf32_Rel;++typedef struct {+ Elf64_Addr r_offset;+ Elf64_Xword r_info;+} Elf64_Rel;++++typedef struct {+ Elf32_Addr r_offset;+ Elf32_Word r_info;+ Elf32_Sword r_addend;+} Elf32_Rela;++typedef struct {+ Elf64_Addr r_offset;+ Elf64_Xword r_info;+ Elf64_Sxword r_addend;+} Elf64_Rela;++++typedef Elf32_Word Elf32_Relr;+typedef Elf64_Xword Elf64_Relr;++++#define ELF32_R_SYM(val) ((val) >> 8)+#define ELF32_R_TYPE(val) ((val) & 0xff)+#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))++#define ELF64_R_SYM(i) ((i) >> 32)+#define ELF64_R_TYPE(i) ((i) & 0xffffffff)+#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))++++typedef struct {+ Elf32_Word p_type;+ Elf32_Off p_offset;+ Elf32_Addr p_vaddr;+ Elf32_Addr p_paddr;+ Elf32_Word p_filesz;+ Elf32_Word p_memsz;+ Elf32_Word p_flags;+ Elf32_Word p_align;+} Elf32_Phdr;++typedef struct {+ Elf64_Word p_type;+ Elf64_Word p_flags;+ Elf64_Off p_offset;+ Elf64_Addr p_vaddr;+ Elf64_Addr p_paddr;+ Elf64_Xword p_filesz;+ Elf64_Xword p_memsz;+ Elf64_Xword p_align;+} Elf64_Phdr;++++#define PT_NULL 0+#define PT_LOAD 1+#define PT_DYNAMIC 2+#define PT_INTERP 3+#define PT_NOTE 4+#define PT_SHLIB 5+#define PT_PHDR 6+#define PT_TLS 7+#define PT_NUM 8+#define PT_LOOS 0x60000000+#define PT_GNU_EH_FRAME 0x6474e550+#define PT_GNU_STACK 0x6474e551+#define PT_GNU_RELRO 0x6474e552+#define PT_GNU_PROPERTY 0x6474e553+#define PT_LOSUNW 0x6ffffffa+#define PT_SUNWBSS 0x6ffffffa+#define PT_SUNWSTACK 0x6ffffffb+#define PT_HISUNW 0x6fffffff+#define PT_HIOS 0x6fffffff+#define PT_LOPROC 0x70000000+#define PT_HIPROC 0x7fffffff+++#define PN_XNUM 0xffff+++#define PF_X (1 << 0)+#define PF_W (1 << 1)+#define PF_R (1 << 2)+#define PF_MASKOS 0x0ff00000+#define PF_MASKPROC 0xf0000000++++#define NT_PRSTATUS 1+#define NT_PRFPREG 2+#define NT_FPREGSET 2+#define NT_PRPSINFO 3+#define NT_PRXREG 4+#define NT_TASKSTRUCT 4+#define NT_PLATFORM 5+#define NT_AUXV 6+#define NT_GWINDOWS 7+#define NT_ASRS 8+#define NT_PSTATUS 10+#define NT_PSINFO 13+#define NT_PRCRED 14+#define NT_UTSNAME 15+#define NT_LWPSTATUS 16+#define NT_LWPSINFO 17+#define NT_PRFPXREG 20+#define NT_SIGINFO 0x53494749+#define NT_FILE 0x46494c45+#define NT_PRXFPREG 0x46e62b7f+#define NT_PPC_VMX 0x100+#define NT_PPC_SPE 0x101+#define NT_PPC_VSX 0x102+#define NT_PPC_TAR 0x103+#define NT_PPC_PPR 0x104+#define NT_PPC_DSCR 0x105+#define NT_PPC_EBB 0x106+#define NT_PPC_PMU 0x107+#define NT_PPC_TM_CGPR 0x108+#define NT_PPC_TM_CFPR 0x109+#define NT_PPC_TM_CVMX 0x10a+#define NT_PPC_TM_CVSX 0x10b+#define NT_PPC_TM_SPR 0x10c+#define NT_PPC_TM_CTAR 0x10d+#define NT_PPC_TM_CPPR 0x10e+#define NT_PPC_TM_CDSCR 0x10f+#define NT_386_TLS 0x200+#define NT_386_IOPERM 0x201+#define NT_X86_XSTATE 0x202+#define NT_S390_HIGH_GPRS 0x300+#define NT_S390_TIMER 0x301+#define NT_S390_TODCMP 0x302+#define NT_S390_TODPREG 0x303+#define NT_S390_CTRS 0x304+#define NT_S390_PREFIX 0x305+#define NT_S390_LAST_BREAK 0x306+#define NT_S390_SYSTEM_CALL 0x307+#define NT_S390_TDB 0x308+#define NT_S390_VXRS_LOW 0x309+#define NT_S390_VXRS_HIGH 0x30a+#define NT_S390_GS_CB 0x30b+#define NT_S390_GS_BC 0x30c+#define NT_S390_RI_CB 0x30d+#define NT_ARM_VFP 0x400+#define NT_ARM_TLS 0x401+#define NT_ARM_HW_BREAK 0x402+#define NT_ARM_HW_WATCH 0x403+#define NT_ARM_SYSTEM_CALL 0x404+#define NT_ARM_SVE 0x405+#define NT_ARM_PAC_MASK 0x406+#define NT_ARM_PACA_KEYS 0x407+#define NT_ARM_PACG_KEYS 0x408+#define NT_ARM_TAGGED_ADDR_CTRL 0x409+#define NT_ARM_PAC_ENABLED_KEYS 0x40a+#define NT_METAG_CBUF 0x500+#define NT_METAG_RPIPE 0x501+#define NT_METAG_TLS 0x502+#define NT_ARC_V2 0x600+#define NT_VMCOREDD 0x700+#define NT_MIPS_DSP 0x800+#define NT_MIPS_FP_MODE 0x801+#define NT_MIPS_MSA 0x802+#define NT_RISCV_CSR 0x900+#define NT_RISCV_VECTOR 0x901+#define NT_VERSION 1+#define NT_LOONGARCH_CPUCFG 0xa00+#define NT_LOONGARCH_CSR 0xa01+#define NT_LOONGARCH_LSX 0xa02+#define NT_LOONGARCH_LASX 0xa03+#define NT_LOONGARCH_LBT 0xa04+++++typedef struct {+ Elf32_Sword d_tag;+ union {+ Elf32_Word d_val;+ Elf32_Addr d_ptr;+ } d_un;+} Elf32_Dyn;++typedef struct {+ Elf64_Sxword d_tag;+ union {+ Elf64_Xword d_val;+ Elf64_Addr d_ptr;+ } d_un;+} Elf64_Dyn;++++#define DT_NULL 0+#define DT_NEEDED 1+#define DT_PLTRELSZ 2+#define DT_PLTGOT 3+#define DT_HASH 4+#define DT_STRTAB 5+#define DT_SYMTAB 6+#define DT_RELA 7+#define DT_RELASZ 8+#define DT_RELAENT 9+#define DT_STRSZ 10+#define DT_SYMENT 11+#define DT_INIT 12+#define DT_FINI 13+#define DT_SONAME 14+#define DT_RPATH 15+#define DT_SYMBOLIC 16+#define DT_REL 17+#define DT_RELSZ 18+#define DT_RELENT 19+#define DT_PLTREL 20+#define DT_DEBUG 21+#define DT_TEXTREL 22+#define DT_JMPREL 23+#define DT_BIND_NOW 24+#define DT_INIT_ARRAY 25+#define DT_FINI_ARRAY 26+#define DT_INIT_ARRAYSZ 27+#define DT_FINI_ARRAYSZ 28+#define DT_RUNPATH 29+#define DT_FLAGS 30+#define DT_ENCODING 32+#define DT_PREINIT_ARRAY 32+#define DT_PREINIT_ARRAYSZ 33+#define DT_SYMTAB_SHNDX 34+#define DT_RELRSZ 35+#define DT_RELR 36+#define DT_RELRENT 37+#define DT_NUM 38+#define DT_LOOS 0x6000000d+#define DT_HIOS 0x6ffff000+#define DT_LOPROC 0x70000000+#define DT_HIPROC 0x7fffffff+#define DT_PROCNUM DT_MIPS_NUM++#define DT_VALRNGLO 0x6ffffd00+#define DT_GNU_PRELINKED 0x6ffffdf5+#define DT_GNU_CONFLICTSZ 0x6ffffdf6+#define DT_GNU_LIBLISTSZ 0x6ffffdf7+#define DT_CHECKSUM 0x6ffffdf8+#define DT_PLTPADSZ 0x6ffffdf9+#define DT_MOVEENT 0x6ffffdfa+#define DT_MOVESZ 0x6ffffdfb+#define DT_FEATURE_1 0x6ffffdfc+#define DT_POSFLAG_1 0x6ffffdfd++#define DT_SYMINSZ 0x6ffffdfe+#define DT_SYMINENT 0x6ffffdff+#define DT_VALRNGHI 0x6ffffdff+#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag))+#define DT_VALNUM 12++#define DT_ADDRRNGLO 0x6ffffe00+#define DT_GNU_HASH 0x6ffffef5+#define DT_TLSDESC_PLT 0x6ffffef6+#define DT_TLSDESC_GOT 0x6ffffef7+#define DT_GNU_CONFLICT 0x6ffffef8+#define DT_GNU_LIBLIST 0x6ffffef9+#define DT_CONFIG 0x6ffffefa+#define DT_DEPAUDIT 0x6ffffefb+#define DT_AUDIT 0x6ffffefc+#define DT_PLTPAD 0x6ffffefd+#define DT_MOVETAB 0x6ffffefe+#define DT_SYMINFO 0x6ffffeff+#define DT_ADDRRNGHI 0x6ffffeff+#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag))+#define DT_ADDRNUM 11++++#define DT_VERSYM 0x6ffffff0++#define DT_RELACOUNT 0x6ffffff9+#define DT_RELCOUNT 0x6ffffffa+++#define DT_FLAGS_1 0x6ffffffb+#define DT_VERDEF 0x6ffffffc++#define DT_VERDEFNUM 0x6ffffffd+#define DT_VERNEED 0x6ffffffe++#define DT_VERNEEDNUM 0x6fffffff+#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))+#define DT_VERSIONTAGNUM 16++++#define DT_AUXILIARY 0x7ffffffd+#define DT_FILTER 0x7fffffff+#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)+#define DT_EXTRANUM 3+++#define DF_ORIGIN 0x00000001+#define DF_SYMBOLIC 0x00000002+#define DF_TEXTREL 0x00000004+#define DF_BIND_NOW 0x00000008+#define DF_STATIC_TLS 0x00000010++++#define DF_1_NOW 0x00000001+#define DF_1_GLOBAL 0x00000002+#define DF_1_GROUP 0x00000004+#define DF_1_NODELETE 0x00000008+#define DF_1_LOADFLTR 0x00000010+#define DF_1_INITFIRST 0x00000020+#define DF_1_NOOPEN 0x00000040+#define DF_1_ORIGIN 0x00000080+#define DF_1_DIRECT 0x00000100+#define DF_1_TRANS 0x00000200+#define DF_1_INTERPOSE 0x00000400+#define DF_1_NODEFLIB 0x00000800+#define DF_1_NODUMP 0x00001000+#define DF_1_CONFALT 0x00002000+#define DF_1_ENDFILTEE 0x00004000+#define DF_1_DISPRELDNE 0x00008000+#define DF_1_DISPRELPND 0x00010000+#define DF_1_NODIRECT 0x00020000+#define DF_1_IGNMULDEF 0x00040000+#define DF_1_NOKSYMS 0x00080000+#define DF_1_NOHDR 0x00100000+#define DF_1_EDITED 0x00200000+#define DF_1_NORELOC 0x00400000+#define DF_1_SYMINTPOSE 0x00800000+#define DF_1_GLOBAUDIT 0x01000000+#define DF_1_SINGLETON 0x02000000+#define DF_1_STUB 0x04000000+#define DF_1_PIE 0x08000000++#define DTF_1_PARINIT 0x00000001+#define DTF_1_CONFEXP 0x00000002+++#define DF_P1_LAZYLOAD 0x00000001+#define DF_P1_GROUPPERM 0x00000002+++++typedef struct {+ Elf32_Half vd_version;+ Elf32_Half vd_flags;+ Elf32_Half vd_ndx;+ Elf32_Half vd_cnt;+ Elf32_Word vd_hash;+ Elf32_Word vd_aux;+ Elf32_Word vd_next;+} Elf32_Verdef;++typedef struct {+ Elf64_Half vd_version;+ Elf64_Half vd_flags;+ Elf64_Half vd_ndx;+ Elf64_Half vd_cnt;+ Elf64_Word vd_hash;+ Elf64_Word vd_aux;+ Elf64_Word vd_next;+} Elf64_Verdef;++++#define VER_DEF_NONE 0+#define VER_DEF_CURRENT 1+#define VER_DEF_NUM 2+++#define VER_FLG_BASE 0x1+#define VER_FLG_WEAK 0x2+++#define VER_NDX_LOCAL 0+#define VER_NDX_GLOBAL 1+#define VER_NDX_LORESERVE 0xff00+#define VER_NDX_ELIMINATE 0xff01++++typedef struct {+ Elf32_Word vda_name;+ Elf32_Word vda_next;+} Elf32_Verdaux;++typedef struct {+ Elf64_Word vda_name;+ Elf64_Word vda_next;+} Elf64_Verdaux;+++++typedef struct {+ Elf32_Half vn_version;+ Elf32_Half vn_cnt;+ Elf32_Word vn_file;+ Elf32_Word vn_aux;+ Elf32_Word vn_next;+} Elf32_Verneed;++typedef struct {+ Elf64_Half vn_version;+ Elf64_Half vn_cnt;+ Elf64_Word vn_file;+ Elf64_Word vn_aux;+ Elf64_Word vn_next;+} Elf64_Verneed;++++#define VER_NEED_NONE 0+#define VER_NEED_CURRENT 1+#define VER_NEED_NUM 2++++typedef struct {+ Elf32_Word vna_hash;+ Elf32_Half vna_flags;+ Elf32_Half vna_other;+ Elf32_Word vna_name;+ Elf32_Word vna_next;+} Elf32_Vernaux;++typedef struct {+ Elf64_Word vna_hash;+ Elf64_Half vna_flags;+ Elf64_Half vna_other;+ Elf64_Word vna_name;+ Elf64_Word vna_next;+} Elf64_Vernaux;++++#define VER_FLG_WEAK 0x2++++typedef struct {+ uint32_t a_type;+ union {+ uint32_t a_val;+ } a_un;+} Elf32_auxv_t;++typedef struct {+ uint64_t a_type;+ union {+ uint64_t a_val;+ } a_un;+} Elf64_auxv_t;++++#define AT_NULL 0+#define AT_IGNORE 1+#define AT_EXECFD 2+#define AT_PHDR 3+#define AT_PHENT 4+#define AT_PHNUM 5+#define AT_PAGESZ 6+#define AT_BASE 7+#define AT_FLAGS 8+#define AT_ENTRY 9+#define AT_NOTELF 10+#define AT_UID 11+#define AT_EUID 12+#define AT_GID 13+#define AT_EGID 14+#define AT_CLKTCK 17+++#define AT_PLATFORM 15+#define AT_HWCAP 16+++++#define AT_FPUCW 18+++#define AT_DCACHEBSIZE 19+#define AT_ICACHEBSIZE 20+#define AT_UCACHEBSIZE 21++++#define AT_IGNOREPPC 22++#define AT_SECURE 23++#define AT_BASE_PLATFORM 24++#define AT_RANDOM 25++#define AT_HWCAP2 26++#define AT_EXECFN 31++++#define AT_SYSINFO 32+#define AT_SYSINFO_EHDR 33++++#define AT_L1I_CACHESHAPE 34+#define AT_L1D_CACHESHAPE 35+#define AT_L2_CACHESHAPE 36+#define AT_L3_CACHESHAPE 37++#define AT_L1I_CACHESIZE 40+#define AT_L1I_CACHEGEOMETRY 41+#define AT_L1D_CACHESIZE 42+#define AT_L1D_CACHEGEOMETRY 43+#define AT_L2_CACHESIZE 44+#define AT_L2_CACHEGEOMETRY 45+#define AT_L3_CACHESIZE 46+#define AT_L3_CACHEGEOMETRY 47++#define AT_MINSIGSTKSZ 51+++typedef struct {+ Elf32_Word n_namesz;+ Elf32_Word n_descsz;+ Elf32_Word n_type;+} Elf32_Nhdr;++typedef struct {+ Elf64_Word n_namesz;+ Elf64_Word n_descsz;+ Elf64_Word n_type;+} Elf64_Nhdr;+++++#define ELF_NOTE_SOLARIS "SUNW Solaris"+++#define ELF_NOTE_GNU "GNU"++++++#define ELF_NOTE_PAGESIZE_HINT 1+++#define NT_GNU_ABI_TAG 1+#define ELF_NOTE_ABI NT_GNU_ABI_TAG++++#define ELF_NOTE_OS_LINUX 0+#define ELF_NOTE_OS_GNU 1+#define ELF_NOTE_OS_SOLARIS2 2+#define ELF_NOTE_OS_FREEBSD 3++#define NT_GNU_BUILD_ID 3+#define NT_GNU_GOLD_VERSION 4+#define NT_GNU_PROPERTY_TYPE_0 5++++typedef struct {+ Elf32_Xword m_value;+ Elf32_Word m_info;+ Elf32_Word m_poffset;+ Elf32_Half m_repeat;+ Elf32_Half m_stride;+} Elf32_Move;++typedef struct {+ Elf64_Xword m_value;+ Elf64_Xword m_info;+ Elf64_Xword m_poffset;+ Elf64_Half m_repeat;+ Elf64_Half m_stride;+} Elf64_Move;+++#define ELF32_M_SYM(info) ((info) >> 8)+#define ELF32_M_SIZE(info) ((unsigned char) (info))+#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))++#define ELF64_M_SYM(info) ELF32_M_SYM (info)+#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)+#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)++#define EF_CPU32 0x00810000++#define R_68K_NONE 0+#define R_68K_32 1+#define R_68K_16 2+#define R_68K_8 3+#define R_68K_PC32 4+#define R_68K_PC16 5+#define R_68K_PC8 6+#define R_68K_GOT32 7+#define R_68K_GOT16 8+#define R_68K_GOT8 9+#define R_68K_GOT32O 10+#define R_68K_GOT16O 11+#define R_68K_GOT8O 12+#define R_68K_PLT32 13+#define R_68K_PLT16 14+#define R_68K_PLT8 15+#define R_68K_PLT32O 16+#define R_68K_PLT16O 17+#define R_68K_PLT8O 18+#define R_68K_COPY 19+#define R_68K_GLOB_DAT 20+#define R_68K_JMP_SLOT 21+#define R_68K_RELATIVE 22+#define R_68K_TLS_GD32 25+#define R_68K_TLS_GD16 26+#define R_68K_TLS_GD8 27+#define R_68K_TLS_LDM32 28+#define R_68K_TLS_LDM16 29+#define R_68K_TLS_LDM8 30+#define R_68K_TLS_LDO32 31+#define R_68K_TLS_LDO16 32+#define R_68K_TLS_LDO8 33+#define R_68K_TLS_IE32 34+#define R_68K_TLS_IE16 35+#define R_68K_TLS_IE8 36+#define R_68K_TLS_LE32 37+#define R_68K_TLS_LE16 38+#define R_68K_TLS_LE8 39+#define R_68K_TLS_DTPMOD32 40+#define R_68K_TLS_DTPREL32 41+#define R_68K_TLS_TPREL32 42+#define R_68K_NUM 43++#define R_386_NONE 0+#define R_386_32 1+#define R_386_PC32 2+#define R_386_GOT32 3+#define R_386_PLT32 4+#define R_386_COPY 5+#define R_386_GLOB_DAT 6+#define R_386_JMP_SLOT 7+#define R_386_RELATIVE 8+#define R_386_GOTOFF 9+#define R_386_GOTPC 10+#define R_386_32PLT 11+#define R_386_TLS_TPOFF 14+#define R_386_TLS_IE 15+#define R_386_TLS_GOTIE 16+#define R_386_TLS_LE 17+#define R_386_TLS_GD 18+#define R_386_TLS_LDM 19+#define R_386_16 20+#define R_386_PC16 21+#define R_386_8 22+#define R_386_PC8 23+#define R_386_TLS_GD_32 24+#define R_386_TLS_GD_PUSH 25+#define R_386_TLS_GD_CALL 26+#define R_386_TLS_GD_POP 27+#define R_386_TLS_LDM_32 28+#define R_386_TLS_LDM_PUSH 29+#define R_386_TLS_LDM_CALL 30+#define R_386_TLS_LDM_POP 31+#define R_386_TLS_LDO_32 32+#define R_386_TLS_IE_32 33+#define R_386_TLS_LE_32 34+#define R_386_TLS_DTPMOD32 35+#define R_386_TLS_DTPOFF32 36+#define R_386_TLS_TPOFF32 37+#define R_386_SIZE32 38+#define R_386_TLS_GOTDESC 39+#define R_386_TLS_DESC_CALL 40+#define R_386_TLS_DESC 41+#define R_386_IRELATIVE 42+#define R_386_GOT32X 43+#define R_386_NUM 44++++++#define STT_SPARC_REGISTER 13++++#define EF_SPARCV9_MM 3+#define EF_SPARCV9_TSO 0+#define EF_SPARCV9_PSO 1+#define EF_SPARCV9_RMO 2+#define EF_SPARC_LEDATA 0x800000+#define EF_SPARC_EXT_MASK 0xFFFF00+#define EF_SPARC_32PLUS 0x000100+#define EF_SPARC_SUN_US1 0x000200+#define EF_SPARC_HAL_R1 0x000400+#define EF_SPARC_SUN_US3 0x000800++++#define R_SPARC_NONE 0+#define R_SPARC_8 1+#define R_SPARC_16 2+#define R_SPARC_32 3+#define R_SPARC_DISP8 4+#define R_SPARC_DISP16 5+#define R_SPARC_DISP32 6+#define R_SPARC_WDISP30 7+#define R_SPARC_WDISP22 8+#define R_SPARC_HI22 9+#define R_SPARC_22 10+#define R_SPARC_13 11+#define R_SPARC_LO10 12+#define R_SPARC_GOT10 13+#define R_SPARC_GOT13 14+#define R_SPARC_GOT22 15+#define R_SPARC_PC10 16+#define R_SPARC_PC22 17+#define R_SPARC_WPLT30 18+#define R_SPARC_COPY 19+#define R_SPARC_GLOB_DAT 20+#define R_SPARC_JMP_SLOT 21+#define R_SPARC_RELATIVE 22+#define R_SPARC_UA32 23++++#define R_SPARC_PLT32 24+#define R_SPARC_HIPLT22 25+#define R_SPARC_LOPLT10 26+#define R_SPARC_PCPLT32 27+#define R_SPARC_PCPLT22 28+#define R_SPARC_PCPLT10 29+#define R_SPARC_10 30+#define R_SPARC_11 31+#define R_SPARC_64 32+#define R_SPARC_OLO10 33+#define R_SPARC_HH22 34+#define R_SPARC_HM10 35+#define R_SPARC_LM22 36+#define R_SPARC_PC_HH22 37+#define R_SPARC_PC_HM10 38+#define R_SPARC_PC_LM22 39+#define R_SPARC_WDISP16 40+#define R_SPARC_WDISP19 41+#define R_SPARC_GLOB_JMP 42+#define R_SPARC_7 43+#define R_SPARC_5 44+#define R_SPARC_6 45+#define R_SPARC_DISP64 46+#define R_SPARC_PLT64 47+#define R_SPARC_HIX22 48+#define R_SPARC_LOX10 49+#define R_SPARC_H44 50+#define R_SPARC_M44 51+#define R_SPARC_L44 52+#define R_SPARC_REGISTER 53+#define R_SPARC_UA64 54+#define R_SPARC_UA16 55+#define R_SPARC_TLS_GD_HI22 56+#define R_SPARC_TLS_GD_LO10 57+#define R_SPARC_TLS_GD_ADD 58+#define R_SPARC_TLS_GD_CALL 59+#define R_SPARC_TLS_LDM_HI22 60+#define R_SPARC_TLS_LDM_LO10 61+#define R_SPARC_TLS_LDM_ADD 62+#define R_SPARC_TLS_LDM_CALL 63+#define R_SPARC_TLS_LDO_HIX22 64+#define R_SPARC_TLS_LDO_LOX10 65+#define R_SPARC_TLS_LDO_ADD 66+#define R_SPARC_TLS_IE_HI22 67+#define R_SPARC_TLS_IE_LO10 68+#define R_SPARC_TLS_IE_LD 69+#define R_SPARC_TLS_IE_LDX 70+#define R_SPARC_TLS_IE_ADD 71+#define R_SPARC_TLS_LE_HIX22 72+#define R_SPARC_TLS_LE_LOX10 73+#define R_SPARC_TLS_DTPMOD32 74+#define R_SPARC_TLS_DTPMOD64 75+#define R_SPARC_TLS_DTPOFF32 76+#define R_SPARC_TLS_DTPOFF64 77+#define R_SPARC_TLS_TPOFF32 78+#define R_SPARC_TLS_TPOFF64 79+#define R_SPARC_GOTDATA_HIX22 80+#define R_SPARC_GOTDATA_LOX10 81+#define R_SPARC_GOTDATA_OP_HIX22 82+#define R_SPARC_GOTDATA_OP_LOX10 83+#define R_SPARC_GOTDATA_OP 84+#define R_SPARC_H34 85+#define R_SPARC_SIZE32 86+#define R_SPARC_SIZE64 87+#define R_SPARC_GNU_VTINHERIT 250+#define R_SPARC_GNU_VTENTRY 251+#define R_SPARC_REV32 252++#define R_SPARC_NUM 253++++#define DT_SPARC_REGISTER 0x70000001+#define DT_SPARC_NUM 2+++#define EF_MIPS_NOREORDER 1+#define EF_MIPS_PIC 2+#define EF_MIPS_CPIC 4+#define EF_MIPS_XGOT 8+#define EF_MIPS_64BIT_WHIRL 16+#define EF_MIPS_ABI2 32+#define EF_MIPS_ABI_ON32 64+#define EF_MIPS_FP64 512+#define EF_MIPS_NAN2008 1024+#define EF_MIPS_ARCH 0xf0000000++++#define EF_MIPS_ARCH_1 0x00000000+#define EF_MIPS_ARCH_2 0x10000000+#define EF_MIPS_ARCH_3 0x20000000+#define EF_MIPS_ARCH_4 0x30000000+#define EF_MIPS_ARCH_5 0x40000000+#define EF_MIPS_ARCH_32 0x50000000+#define EF_MIPS_ARCH_64 0x60000000+#define EF_MIPS_ARCH_32R2 0x70000000+#define EF_MIPS_ARCH_64R2 0x80000000+++#define E_MIPS_ARCH_1 0x00000000+#define E_MIPS_ARCH_2 0x10000000+#define E_MIPS_ARCH_3 0x20000000+#define E_MIPS_ARCH_4 0x30000000+#define E_MIPS_ARCH_5 0x40000000+#define E_MIPS_ARCH_32 0x50000000+#define E_MIPS_ARCH_64 0x60000000++++#define SHN_MIPS_ACOMMON 0xff00+#define SHN_MIPS_TEXT 0xff01+#define SHN_MIPS_DATA 0xff02+#define SHN_MIPS_SCOMMON 0xff03+#define SHN_MIPS_SUNDEFINED 0xff04++++#define SHT_MIPS_LIBLIST 0x70000000+#define SHT_MIPS_MSYM 0x70000001+#define SHT_MIPS_CONFLICT 0x70000002+#define SHT_MIPS_GPTAB 0x70000003+#define SHT_MIPS_UCODE 0x70000004+#define SHT_MIPS_DEBUG 0x70000005+#define SHT_MIPS_REGINFO 0x70000006+#define SHT_MIPS_PACKAGE 0x70000007+#define SHT_MIPS_PACKSYM 0x70000008+#define SHT_MIPS_RELD 0x70000009+#define SHT_MIPS_IFACE 0x7000000b+#define SHT_MIPS_CONTENT 0x7000000c+#define SHT_MIPS_OPTIONS 0x7000000d+#define SHT_MIPS_SHDR 0x70000010+#define SHT_MIPS_FDESC 0x70000011+#define SHT_MIPS_EXTSYM 0x70000012+#define SHT_MIPS_DENSE 0x70000013+#define SHT_MIPS_PDESC 0x70000014+#define SHT_MIPS_LOCSYM 0x70000015+#define SHT_MIPS_AUXSYM 0x70000016+#define SHT_MIPS_OPTSYM 0x70000017+#define SHT_MIPS_LOCSTR 0x70000018+#define SHT_MIPS_LINE 0x70000019+#define SHT_MIPS_RFDESC 0x7000001a+#define SHT_MIPS_DELTASYM 0x7000001b+#define SHT_MIPS_DELTAINST 0x7000001c+#define SHT_MIPS_DELTACLASS 0x7000001d+#define SHT_MIPS_DWARF 0x7000001e+#define SHT_MIPS_DELTADECL 0x7000001f+#define SHT_MIPS_SYMBOL_LIB 0x70000020+#define SHT_MIPS_EVENTS 0x70000021+#define SHT_MIPS_TRANSLATE 0x70000022+#define SHT_MIPS_PIXIE 0x70000023+#define SHT_MIPS_XLATE 0x70000024+#define SHT_MIPS_XLATE_DEBUG 0x70000025+#define SHT_MIPS_WHIRL 0x70000026+#define SHT_MIPS_EH_REGION 0x70000027+#define SHT_MIPS_XLATE_OLD 0x70000028+#define SHT_MIPS_PDR_EXCEPTION 0x70000029++++#define SHF_MIPS_GPREL 0x10000000+#define SHF_MIPS_MERGE 0x20000000+#define SHF_MIPS_ADDR 0x40000000+#define SHF_MIPS_STRINGS 0x80000000+#define SHF_MIPS_NOSTRIP 0x08000000+#define SHF_MIPS_LOCAL 0x04000000+#define SHF_MIPS_NAMES 0x02000000+#define SHF_MIPS_NODUPE 0x01000000++++++#define STO_MIPS_DEFAULT 0x0+#define STO_MIPS_INTERNAL 0x1+#define STO_MIPS_HIDDEN 0x2+#define STO_MIPS_PROTECTED 0x3+#define STO_MIPS_PLT 0x8+#define STO_MIPS_SC_ALIGN_UNUSED 0xff+++#define STB_MIPS_SPLIT_COMMON 13++++typedef union {+ struct {+ Elf32_Word gt_current_g_value;+ Elf32_Word gt_unused;+ } gt_header;+ struct {+ Elf32_Word gt_g_value;+ Elf32_Word gt_bytes;+ } gt_entry;+} Elf32_gptab;++++typedef struct {+ Elf32_Word ri_gprmask;+ Elf32_Word ri_cprmask[4];+ Elf32_Sword ri_gp_value;+} Elf32_RegInfo;++++typedef struct {+ unsigned char kind;++ unsigned char size;+ Elf32_Section section;++ Elf32_Word info;+} Elf_Options;++++#define ODK_NULL 0+#define ODK_REGINFO 1+#define ODK_EXCEPTIONS 2+#define ODK_PAD 3+#define ODK_HWPATCH 4+#define ODK_FILL 5+#define ODK_TAGS 6+#define ODK_HWAND 7+#define ODK_HWOR 8++++#define OEX_FPU_MIN 0x1f+#define OEX_FPU_MAX 0x1f00+#define OEX_PAGE0 0x10000+#define OEX_SMM 0x20000+#define OEX_FPDBUG 0x40000+#define OEX_PRECISEFP OEX_FPDBUG+#define OEX_DISMISS 0x80000++#define OEX_FPU_INVAL 0x10+#define OEX_FPU_DIV0 0x08+#define OEX_FPU_OFLO 0x04+#define OEX_FPU_UFLO 0x02+#define OEX_FPU_INEX 0x01++++#define OHW_R4KEOP 0x1+#define OHW_R8KPFETCH 0x2+#define OHW_R5KEOP 0x4+#define OHW_R5KCVTL 0x8++#define OPAD_PREFIX 0x1+#define OPAD_POSTFIX 0x2+#define OPAD_SYMBOL 0x4++++typedef struct {+ Elf32_Word hwp_flags1;+ Elf32_Word hwp_flags2;+} Elf_Options_Hw;++++#define OHWA0_R4KEOP_CHECKED 0x00000001+#define OHWA1_R4KEOP_CLEAN 0x00000002++++#define R_MIPS_NONE 0+#define R_MIPS_16 1+#define R_MIPS_32 2+#define R_MIPS_REL32 3+#define R_MIPS_26 4+#define R_MIPS_HI16 5+#define R_MIPS_LO16 6+#define R_MIPS_GPREL16 7+#define R_MIPS_LITERAL 8+#define R_MIPS_GOT16 9+#define R_MIPS_PC16 10+#define R_MIPS_CALL16 11+#define R_MIPS_GPREL32 12++#define R_MIPS_SHIFT5 16+#define R_MIPS_SHIFT6 17+#define R_MIPS_64 18+#define R_MIPS_GOT_DISP 19+#define R_MIPS_GOT_PAGE 20+#define R_MIPS_GOT_OFST 21+#define R_MIPS_GOT_HI16 22+#define R_MIPS_GOT_LO16 23+#define R_MIPS_SUB 24+#define R_MIPS_INSERT_A 25+#define R_MIPS_INSERT_B 26+#define R_MIPS_DELETE 27+#define R_MIPS_HIGHER 28+#define R_MIPS_HIGHEST 29+#define R_MIPS_CALL_HI16 30+#define R_MIPS_CALL_LO16 31+#define R_MIPS_SCN_DISP 32+#define R_MIPS_REL16 33+#define R_MIPS_ADD_IMMEDIATE 34+#define R_MIPS_PJUMP 35+#define R_MIPS_RELGOT 36+#define R_MIPS_JALR 37+#define R_MIPS_TLS_DTPMOD32 38+#define R_MIPS_TLS_DTPREL32 39+#define R_MIPS_TLS_DTPMOD64 40+#define R_MIPS_TLS_DTPREL64 41+#define R_MIPS_TLS_GD 42+#define R_MIPS_TLS_LDM 43+#define R_MIPS_TLS_DTPREL_HI16 44+#define R_MIPS_TLS_DTPREL_LO16 45+#define R_MIPS_TLS_GOTTPREL 46+#define R_MIPS_TLS_TPREL32 47+#define R_MIPS_TLS_TPREL64 48+#define R_MIPS_TLS_TPREL_HI16 49+#define R_MIPS_TLS_TPREL_LO16 50+#define R_MIPS_GLOB_DAT 51+#define R_MIPS_COPY 126+#define R_MIPS_JUMP_SLOT 127++#define R_MIPS_NUM 128++++#define PT_MIPS_REGINFO 0x70000000+#define PT_MIPS_RTPROC 0x70000001+#define PT_MIPS_OPTIONS 0x70000002+#define PT_MIPS_ABIFLAGS 0x70000003++++#define PF_MIPS_LOCAL 0x10000000++++#define DT_MIPS_RLD_VERSION 0x70000001+#define DT_MIPS_TIME_STAMP 0x70000002+#define DT_MIPS_ICHECKSUM 0x70000003+#define DT_MIPS_IVERSION 0x70000004+#define DT_MIPS_FLAGS 0x70000005+#define DT_MIPS_BASE_ADDRESS 0x70000006+#define DT_MIPS_MSYM 0x70000007+#define DT_MIPS_CONFLICT 0x70000008+#define DT_MIPS_LIBLIST 0x70000009+#define DT_MIPS_LOCAL_GOTNO 0x7000000a+#define DT_MIPS_CONFLICTNO 0x7000000b+#define DT_MIPS_LIBLISTNO 0x70000010+#define DT_MIPS_SYMTABNO 0x70000011+#define DT_MIPS_UNREFEXTNO 0x70000012+#define DT_MIPS_GOTSYM 0x70000013+#define DT_MIPS_HIPAGENO 0x70000014+#define DT_MIPS_RLD_MAP 0x70000016+#define DT_MIPS_DELTA_CLASS 0x70000017+#define DT_MIPS_DELTA_CLASS_NO 0x70000018++#define DT_MIPS_DELTA_INSTANCE 0x70000019+#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a++#define DT_MIPS_DELTA_RELOC 0x7000001b+#define DT_MIPS_DELTA_RELOC_NO 0x7000001c++#define DT_MIPS_DELTA_SYM 0x7000001d++#define DT_MIPS_DELTA_SYM_NO 0x7000001e++#define DT_MIPS_DELTA_CLASSSYM 0x70000020++#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021++#define DT_MIPS_CXX_FLAGS 0x70000022+#define DT_MIPS_PIXIE_INIT 0x70000023+#define DT_MIPS_SYMBOL_LIB 0x70000024+#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025+#define DT_MIPS_LOCAL_GOTIDX 0x70000026+#define DT_MIPS_HIDDEN_GOTIDX 0x70000027+#define DT_MIPS_PROTECTED_GOTIDX 0x70000028+#define DT_MIPS_OPTIONS 0x70000029+#define DT_MIPS_INTERFACE 0x7000002a+#define DT_MIPS_DYNSTR_ALIGN 0x7000002b+#define DT_MIPS_INTERFACE_SIZE 0x7000002c+#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d++#define DT_MIPS_PERF_SUFFIX 0x7000002e++#define DT_MIPS_COMPACT_SIZE 0x7000002f+#define DT_MIPS_GP_VALUE 0x70000030+#define DT_MIPS_AUX_DYNAMIC 0x70000031++#define DT_MIPS_PLTGOT 0x70000032++#define DT_MIPS_RWPLT 0x70000034+#define DT_MIPS_RLD_MAP_REL 0x70000035+#define DT_MIPS_NUM 0x36++++#define RHF_NONE 0+#define RHF_QUICKSTART (1 << 0)+#define RHF_NOTPOT (1 << 1)+#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)+#define RHF_NO_MOVE (1 << 3)+#define RHF_SGI_ONLY (1 << 4)+#define RHF_GUARANTEE_INIT (1 << 5)+#define RHF_DELTA_C_PLUS_PLUS (1 << 6)+#define RHF_GUARANTEE_START_INIT (1 << 7)+#define RHF_PIXIE (1 << 8)+#define RHF_DEFAULT_DELAY_LOAD (1 << 9)+#define RHF_REQUICKSTART (1 << 10)+#define RHF_REQUICKSTARTED (1 << 11)+#define RHF_CORD (1 << 12)+#define RHF_NO_UNRES_UNDEF (1 << 13)+#define RHF_RLD_ORDER_SAFE (1 << 14)++++typedef struct {+ Elf32_Word l_name;+ Elf32_Word l_time_stamp;+ Elf32_Word l_checksum;+ Elf32_Word l_version;+ Elf32_Word l_flags;+} Elf32_Lib;++typedef struct {+ Elf64_Word l_name;+ Elf64_Word l_time_stamp;+ Elf64_Word l_checksum;+ Elf64_Word l_version;+ Elf64_Word l_flags;+} Elf64_Lib;+++++#define LL_NONE 0+#define LL_EXACT_MATCH (1 << 0)+#define LL_IGNORE_INT_VER (1 << 1)+#define LL_REQUIRE_MINOR (1 << 2)+#define LL_EXPORTS (1 << 3)+#define LL_DELAY_LOAD (1 << 4)+#define LL_DELTA (1 << 5)++++typedef Elf32_Addr Elf32_Conflict;++typedef struct {+ Elf32_Half version;+ unsigned char isa_level;+ unsigned char isa_rev;+ unsigned char gpr_size;+ unsigned char cpr1_size;+ unsigned char cpr2_size;+ unsigned char fp_abi;+ Elf32_Word isa_ext;+ Elf32_Word ases;+ Elf32_Word flags1;+ Elf32_Word flags2;+} Elf_MIPS_ABIFlags_v0;++#define MIPS_AFL_REG_NONE 0x00+#define MIPS_AFL_REG_32 0x01+#define MIPS_AFL_REG_64 0x02+#define MIPS_AFL_REG_128 0x03++#define MIPS_AFL_ASE_DSP 0x00000001+#define MIPS_AFL_ASE_DSPR2 0x00000002+#define MIPS_AFL_ASE_EVA 0x00000004+#define MIPS_AFL_ASE_MCU 0x00000008+#define MIPS_AFL_ASE_MDMX 0x00000010+#define MIPS_AFL_ASE_MIPS3D 0x00000020+#define MIPS_AFL_ASE_MT 0x00000040+#define MIPS_AFL_ASE_SMARTMIPS 0x00000080+#define MIPS_AFL_ASE_VIRT 0x00000100+#define MIPS_AFL_ASE_MSA 0x00000200+#define MIPS_AFL_ASE_MIPS16 0x00000400+#define MIPS_AFL_ASE_MICROMIPS 0x00000800+#define MIPS_AFL_ASE_XPA 0x00001000+#define MIPS_AFL_ASE_MASK 0x00001fff++#define MIPS_AFL_EXT_XLR 1+#define MIPS_AFL_EXT_OCTEON2 2+#define MIPS_AFL_EXT_OCTEONP 3+#define MIPS_AFL_EXT_LOONGSON_3A 4+#define MIPS_AFL_EXT_OCTEON 5+#define MIPS_AFL_EXT_5900 6+#define MIPS_AFL_EXT_4650 7+#define MIPS_AFL_EXT_4010 8+#define MIPS_AFL_EXT_4100 9+#define MIPS_AFL_EXT_3900 10+#define MIPS_AFL_EXT_10000 11+#define MIPS_AFL_EXT_SB1 12+#define MIPS_AFL_EXT_4111 13+#define MIPS_AFL_EXT_4120 14+#define MIPS_AFL_EXT_5400 15+#define MIPS_AFL_EXT_5500 16+#define MIPS_AFL_EXT_LOONGSON_2E 17+#define MIPS_AFL_EXT_LOONGSON_2F 18++#define MIPS_AFL_FLAGS1_ODDSPREG 1++enum+{+ Val_GNU_MIPS_ABI_FP_ANY = 0,+ Val_GNU_MIPS_ABI_FP_DOUBLE = 1,+ Val_GNU_MIPS_ABI_FP_SINGLE = 2,+ Val_GNU_MIPS_ABI_FP_SOFT = 3,+ Val_GNU_MIPS_ABI_FP_OLD_64 = 4,+ Val_GNU_MIPS_ABI_FP_XX = 5,+ Val_GNU_MIPS_ABI_FP_64 = 6,+ Val_GNU_MIPS_ABI_FP_64A = 7,+ Val_GNU_MIPS_ABI_FP_MAX = 7+};+++++#define EF_PARISC_TRAPNIL 0x00010000+#define EF_PARISC_EXT 0x00020000+#define EF_PARISC_LSB 0x00040000+#define EF_PARISC_WIDE 0x00080000+#define EF_PARISC_NO_KABP 0x00100000++#define EF_PARISC_LAZYSWAP 0x00400000+#define EF_PARISC_ARCH 0x0000ffff++++#define EFA_PARISC_1_0 0x020b+#define EFA_PARISC_1_1 0x0210+#define EFA_PARISC_2_0 0x0214++++#define SHN_PARISC_ANSI_COMMON 0xff00++#define SHN_PARISC_HUGE_COMMON 0xff01++++#define SHT_PARISC_EXT 0x70000000+#define SHT_PARISC_UNWIND 0x70000001+#define SHT_PARISC_DOC 0x70000002++++#define SHF_PARISC_SHORT 0x20000000+#define SHF_PARISC_HUGE 0x40000000+#define SHF_PARISC_SBP 0x80000000++++#define STT_PARISC_MILLICODE 13++#define STT_HP_OPAQUE (STT_LOOS + 0x1)+#define STT_HP_STUB (STT_LOOS + 0x2)++++#define R_PARISC_NONE 0+#define R_PARISC_DIR32 1+#define R_PARISC_DIR21L 2+#define R_PARISC_DIR17R 3+#define R_PARISC_DIR17F 4+#define R_PARISC_DIR14R 6+#define R_PARISC_PCREL32 9+#define R_PARISC_PCREL21L 10+#define R_PARISC_PCREL17R 11+#define R_PARISC_PCREL17F 12+#define R_PARISC_PCREL14R 14+#define R_PARISC_DPREL21L 18+#define R_PARISC_DPREL14R 22+#define R_PARISC_GPREL21L 26+#define R_PARISC_GPREL14R 30+#define R_PARISC_LTOFF21L 34+#define R_PARISC_LTOFF14R 38+#define R_PARISC_SECREL32 41+#define R_PARISC_SEGBASE 48+#define R_PARISC_SEGREL32 49+#define R_PARISC_PLTOFF21L 50+#define R_PARISC_PLTOFF14R 54+#define R_PARISC_LTOFF_FPTR32 57+#define R_PARISC_LTOFF_FPTR21L 58+#define R_PARISC_LTOFF_FPTR14R 62+#define R_PARISC_FPTR64 64+#define R_PARISC_PLABEL32 65+#define R_PARISC_PLABEL21L 66+#define R_PARISC_PLABEL14R 70+#define R_PARISC_PCREL64 72+#define R_PARISC_PCREL22F 74+#define R_PARISC_PCREL14WR 75+#define R_PARISC_PCREL14DR 76+#define R_PARISC_PCREL16F 77+#define R_PARISC_PCREL16WF 78+#define R_PARISC_PCREL16DF 79+#define R_PARISC_DIR64 80+#define R_PARISC_DIR14WR 83+#define R_PARISC_DIR14DR 84+#define R_PARISC_DIR16F 85+#define R_PARISC_DIR16WF 86+#define R_PARISC_DIR16DF 87+#define R_PARISC_GPREL64 88+#define R_PARISC_GPREL14WR 91+#define R_PARISC_GPREL14DR 92+#define R_PARISC_GPREL16F 93+#define R_PARISC_GPREL16WF 94+#define R_PARISC_GPREL16DF 95+#define R_PARISC_LTOFF64 96+#define R_PARISC_LTOFF14WR 99+#define R_PARISC_LTOFF14DR 100+#define R_PARISC_LTOFF16F 101+#define R_PARISC_LTOFF16WF 102+#define R_PARISC_LTOFF16DF 103+#define R_PARISC_SECREL64 104+#define R_PARISC_SEGREL64 112+#define R_PARISC_PLTOFF14WR 115+#define R_PARISC_PLTOFF14DR 116+#define R_PARISC_PLTOFF16F 117+#define R_PARISC_PLTOFF16WF 118+#define R_PARISC_PLTOFF16DF 119+#define R_PARISC_LTOFF_FPTR64 120+#define R_PARISC_LTOFF_FPTR14WR 123+#define R_PARISC_LTOFF_FPTR14DR 124+#define R_PARISC_LTOFF_FPTR16F 125+#define R_PARISC_LTOFF_FPTR16WF 126+#define R_PARISC_LTOFF_FPTR16DF 127+#define R_PARISC_LORESERVE 128+#define R_PARISC_COPY 128+#define R_PARISC_IPLT 129+#define R_PARISC_EPLT 130+#define R_PARISC_TPREL32 153+#define R_PARISC_TPREL21L 154+#define R_PARISC_TPREL14R 158+#define R_PARISC_LTOFF_TP21L 162+#define R_PARISC_LTOFF_TP14R 166+#define R_PARISC_LTOFF_TP14F 167+#define R_PARISC_TPREL64 216+#define R_PARISC_TPREL14WR 219+#define R_PARISC_TPREL14DR 220+#define R_PARISC_TPREL16F 221+#define R_PARISC_TPREL16WF 222+#define R_PARISC_TPREL16DF 223+#define R_PARISC_LTOFF_TP64 224+#define R_PARISC_LTOFF_TP14WR 227+#define R_PARISC_LTOFF_TP14DR 228+#define R_PARISC_LTOFF_TP16F 229+#define R_PARISC_LTOFF_TP16WF 230+#define R_PARISC_LTOFF_TP16DF 231+#define R_PARISC_GNU_VTENTRY 232+#define R_PARISC_GNU_VTINHERIT 233+#define R_PARISC_TLS_GD21L 234+#define R_PARISC_TLS_GD14R 235+#define R_PARISC_TLS_GDCALL 236+#define R_PARISC_TLS_LDM21L 237+#define R_PARISC_TLS_LDM14R 238+#define R_PARISC_TLS_LDMCALL 239+#define R_PARISC_TLS_LDO21L 240+#define R_PARISC_TLS_LDO14R 241+#define R_PARISC_TLS_DTPMOD32 242+#define R_PARISC_TLS_DTPMOD64 243+#define R_PARISC_TLS_DTPOFF32 244+#define R_PARISC_TLS_DTPOFF64 245+#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L+#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R+#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L+#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R+#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32+#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64+#define R_PARISC_HIRESERVE 255++++#define PT_HP_TLS (PT_LOOS + 0x0)+#define PT_HP_CORE_NONE (PT_LOOS + 0x1)+#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)+#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)+#define PT_HP_CORE_COMM (PT_LOOS + 0x4)+#define PT_HP_CORE_PROC (PT_LOOS + 0x5)+#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)+#define PT_HP_CORE_STACK (PT_LOOS + 0x7)+#define PT_HP_CORE_SHM (PT_LOOS + 0x8)+#define PT_HP_CORE_MMF (PT_LOOS + 0x9)+#define PT_HP_PARALLEL (PT_LOOS + 0x10)+#define PT_HP_FASTBIND (PT_LOOS + 0x11)+#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)+#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)+#define PT_HP_STACK (PT_LOOS + 0x14)++#define PT_PARISC_ARCHEXT 0x70000000+#define PT_PARISC_UNWIND 0x70000001++++#define PF_PARISC_SBP 0x08000000++#define PF_HP_PAGE_SIZE 0x00100000+#define PF_HP_FAR_SHARED 0x00200000+#define PF_HP_NEAR_SHARED 0x00400000+#define PF_HP_CODE 0x01000000+#define PF_HP_MODIFY 0x02000000+#define PF_HP_LAZYSWAP 0x04000000+#define PF_HP_SBP 0x08000000+++++++#define EF_ALPHA_32BIT 1+#define EF_ALPHA_CANRELAX 2+++++#define SHT_ALPHA_DEBUG 0x70000001+#define SHT_ALPHA_REGINFO 0x70000002++++#define SHF_ALPHA_GPREL 0x10000000+++#define STO_ALPHA_NOPV 0x80+#define STO_ALPHA_STD_GPLOAD 0x88++++#define R_ALPHA_NONE 0+#define R_ALPHA_REFLONG 1+#define R_ALPHA_REFQUAD 2+#define R_ALPHA_GPREL32 3+#define R_ALPHA_LITERAL 4+#define R_ALPHA_LITUSE 5+#define R_ALPHA_GPDISP 6+#define R_ALPHA_BRADDR 7+#define R_ALPHA_HINT 8+#define R_ALPHA_SREL16 9+#define R_ALPHA_SREL32 10+#define R_ALPHA_SREL64 11+#define R_ALPHA_GPRELHIGH 17+#define R_ALPHA_GPRELLOW 18+#define R_ALPHA_GPREL16 19+#define R_ALPHA_COPY 24+#define R_ALPHA_GLOB_DAT 25+#define R_ALPHA_JMP_SLOT 26+#define R_ALPHA_RELATIVE 27+#define R_ALPHA_TLS_GD_HI 28+#define R_ALPHA_TLSGD 29+#define R_ALPHA_TLS_LDM 30+#define R_ALPHA_DTPMOD64 31+#define R_ALPHA_GOTDTPREL 32+#define R_ALPHA_DTPREL64 33+#define R_ALPHA_DTPRELHI 34+#define R_ALPHA_DTPRELLO 35+#define R_ALPHA_DTPREL16 36+#define R_ALPHA_GOTTPREL 37+#define R_ALPHA_TPREL64 38+#define R_ALPHA_TPRELHI 39+#define R_ALPHA_TPRELLO 40+#define R_ALPHA_TPREL16 41++#define R_ALPHA_NUM 46+++#define LITUSE_ALPHA_ADDR 0+#define LITUSE_ALPHA_BASE 1+#define LITUSE_ALPHA_BYTOFF 2+#define LITUSE_ALPHA_JSR 3+#define LITUSE_ALPHA_TLS_GD 4+#define LITUSE_ALPHA_TLS_LDM 5+++#define DT_ALPHA_PLTRO (DT_LOPROC + 0)+#define DT_ALPHA_NUM 1+++++#define EF_PPC_EMB 0x80000000+++#define EF_PPC_RELOCATABLE 0x00010000+#define EF_PPC_RELOCATABLE_LIB 0x00008000++++#define R_PPC_NONE 0+#define R_PPC_ADDR32 1+#define R_PPC_ADDR24 2+#define R_PPC_ADDR16 3+#define R_PPC_ADDR16_LO 4+#define R_PPC_ADDR16_HI 5+#define R_PPC_ADDR16_HA 6+#define R_PPC_ADDR14 7+#define R_PPC_ADDR14_BRTAKEN 8+#define R_PPC_ADDR14_BRNTAKEN 9+#define R_PPC_REL24 10+#define R_PPC_REL14 11+#define R_PPC_REL14_BRTAKEN 12+#define R_PPC_REL14_BRNTAKEN 13+#define R_PPC_GOT16 14+#define R_PPC_GOT16_LO 15+#define R_PPC_GOT16_HI 16+#define R_PPC_GOT16_HA 17+#define R_PPC_PLTREL24 18+#define R_PPC_COPY 19+#define R_PPC_GLOB_DAT 20+#define R_PPC_JMP_SLOT 21+#define R_PPC_RELATIVE 22+#define R_PPC_LOCAL24PC 23+#define R_PPC_UADDR32 24+#define R_PPC_UADDR16 25+#define R_PPC_REL32 26+#define R_PPC_PLT32 27+#define R_PPC_PLTREL32 28+#define R_PPC_PLT16_LO 29+#define R_PPC_PLT16_HI 30+#define R_PPC_PLT16_HA 31+#define R_PPC_SDAREL16 32+#define R_PPC_SECTOFF 33+#define R_PPC_SECTOFF_LO 34+#define R_PPC_SECTOFF_HI 35+#define R_PPC_SECTOFF_HA 36+++#define R_PPC_TLS 67+#define R_PPC_DTPMOD32 68+#define R_PPC_TPREL16 69+#define R_PPC_TPREL16_LO 70+#define R_PPC_TPREL16_HI 71+#define R_PPC_TPREL16_HA 72+#define R_PPC_TPREL32 73+#define R_PPC_DTPREL16 74+#define R_PPC_DTPREL16_LO 75+#define R_PPC_DTPREL16_HI 76+#define R_PPC_DTPREL16_HA 77+#define R_PPC_DTPREL32 78+#define R_PPC_GOT_TLSGD16 79+#define R_PPC_GOT_TLSGD16_LO 80+#define R_PPC_GOT_TLSGD16_HI 81+#define R_PPC_GOT_TLSGD16_HA 82+#define R_PPC_GOT_TLSLD16 83+#define R_PPC_GOT_TLSLD16_LO 84+#define R_PPC_GOT_TLSLD16_HI 85+#define R_PPC_GOT_TLSLD16_HA 86+#define R_PPC_GOT_TPREL16 87+#define R_PPC_GOT_TPREL16_LO 88+#define R_PPC_GOT_TPREL16_HI 89+#define R_PPC_GOT_TPREL16_HA 90+#define R_PPC_GOT_DTPREL16 91+#define R_PPC_GOT_DTPREL16_LO 92+#define R_PPC_GOT_DTPREL16_HI 93+#define R_PPC_GOT_DTPREL16_HA 94+#define R_PPC_TLSGD 95+#define R_PPC_TLSLD 96+++#define R_PPC_EMB_NADDR32 101+#define R_PPC_EMB_NADDR16 102+#define R_PPC_EMB_NADDR16_LO 103+#define R_PPC_EMB_NADDR16_HI 104+#define R_PPC_EMB_NADDR16_HA 105+#define R_PPC_EMB_SDAI16 106+#define R_PPC_EMB_SDA2I16 107+#define R_PPC_EMB_SDA2REL 108+#define R_PPC_EMB_SDA21 109+#define R_PPC_EMB_MRKREF 110+#define R_PPC_EMB_RELSEC16 111+#define R_PPC_EMB_RELST_LO 112+#define R_PPC_EMB_RELST_HI 113+#define R_PPC_EMB_RELST_HA 114+#define R_PPC_EMB_BIT_FLD 115+#define R_PPC_EMB_RELSDA 116+++#define R_PPC_DIAB_SDA21_LO 180+#define R_PPC_DIAB_SDA21_HI 181+#define R_PPC_DIAB_SDA21_HA 182+#define R_PPC_DIAB_RELSDA_LO 183+#define R_PPC_DIAB_RELSDA_HI 184+#define R_PPC_DIAB_RELSDA_HA 185+++#define R_PPC_IRELATIVE 248+++#define R_PPC_REL16 249+#define R_PPC_REL16_LO 250+#define R_PPC_REL16_HI 251+#define R_PPC_REL16_HA 252++++#define R_PPC_TOC16 255+++#define DT_PPC_GOT (DT_LOPROC + 0)+#define DT_PPC_OPT (DT_LOPROC + 1)+#define DT_PPC_NUM 2++#define PPC_OPT_TLS 1+++#define R_PPC64_NONE R_PPC_NONE+#define R_PPC64_ADDR32 R_PPC_ADDR32+#define R_PPC64_ADDR24 R_PPC_ADDR24+#define R_PPC64_ADDR16 R_PPC_ADDR16+#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO+#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI+#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA+#define R_PPC64_ADDR14 R_PPC_ADDR14+#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN+#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN+#define R_PPC64_REL24 R_PPC_REL24+#define R_PPC64_REL14 R_PPC_REL14+#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN+#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN+#define R_PPC64_GOT16 R_PPC_GOT16+#define R_PPC64_GOT16_LO R_PPC_GOT16_LO+#define R_PPC64_GOT16_HI R_PPC_GOT16_HI+#define R_PPC64_GOT16_HA R_PPC_GOT16_HA++#define R_PPC64_COPY R_PPC_COPY+#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT+#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT+#define R_PPC64_RELATIVE R_PPC_RELATIVE++#define R_PPC64_UADDR32 R_PPC_UADDR32+#define R_PPC64_UADDR16 R_PPC_UADDR16+#define R_PPC64_REL32 R_PPC_REL32+#define R_PPC64_PLT32 R_PPC_PLT32+#define R_PPC64_PLTREL32 R_PPC_PLTREL32+#define R_PPC64_PLT16_LO R_PPC_PLT16_LO+#define R_PPC64_PLT16_HI R_PPC_PLT16_HI+#define R_PPC64_PLT16_HA R_PPC_PLT16_HA++#define R_PPC64_SECTOFF R_PPC_SECTOFF+#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO+#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI+#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA+#define R_PPC64_ADDR30 37+#define R_PPC64_ADDR64 38+#define R_PPC64_ADDR16_HIGHER 39+#define R_PPC64_ADDR16_HIGHERA 40+#define R_PPC64_ADDR16_HIGHEST 41+#define R_PPC64_ADDR16_HIGHESTA 42+#define R_PPC64_UADDR64 43+#define R_PPC64_REL64 44+#define R_PPC64_PLT64 45+#define R_PPC64_PLTREL64 46+#define R_PPC64_TOC16 47+#define R_PPC64_TOC16_LO 48+#define R_PPC64_TOC16_HI 49+#define R_PPC64_TOC16_HA 50+#define R_PPC64_TOC 51+#define R_PPC64_PLTGOT16 52+#define R_PPC64_PLTGOT16_LO 53+#define R_PPC64_PLTGOT16_HI 54+#define R_PPC64_PLTGOT16_HA 55++#define R_PPC64_ADDR16_DS 56+#define R_PPC64_ADDR16_LO_DS 57+#define R_PPC64_GOT16_DS 58+#define R_PPC64_GOT16_LO_DS 59+#define R_PPC64_PLT16_LO_DS 60+#define R_PPC64_SECTOFF_DS 61+#define R_PPC64_SECTOFF_LO_DS 62+#define R_PPC64_TOC16_DS 63+#define R_PPC64_TOC16_LO_DS 64+#define R_PPC64_PLTGOT16_DS 65+#define R_PPC64_PLTGOT16_LO_DS 66+++#define R_PPC64_TLS 67+#define R_PPC64_DTPMOD64 68+#define R_PPC64_TPREL16 69+#define R_PPC64_TPREL16_LO 70+#define R_PPC64_TPREL16_HI 71+#define R_PPC64_TPREL16_HA 72+#define R_PPC64_TPREL64 73+#define R_PPC64_DTPREL16 74+#define R_PPC64_DTPREL16_LO 75+#define R_PPC64_DTPREL16_HI 76+#define R_PPC64_DTPREL16_HA 77+#define R_PPC64_DTPREL64 78+#define R_PPC64_GOT_TLSGD16 79+#define R_PPC64_GOT_TLSGD16_LO 80+#define R_PPC64_GOT_TLSGD16_HI 81+#define R_PPC64_GOT_TLSGD16_HA 82+#define R_PPC64_GOT_TLSLD16 83+#define R_PPC64_GOT_TLSLD16_LO 84+#define R_PPC64_GOT_TLSLD16_HI 85+#define R_PPC64_GOT_TLSLD16_HA 86+#define R_PPC64_GOT_TPREL16_DS 87+#define R_PPC64_GOT_TPREL16_LO_DS 88+#define R_PPC64_GOT_TPREL16_HI 89+#define R_PPC64_GOT_TPREL16_HA 90+#define R_PPC64_GOT_DTPREL16_DS 91+#define R_PPC64_GOT_DTPREL16_LO_DS 92+#define R_PPC64_GOT_DTPREL16_HI 93+#define R_PPC64_GOT_DTPREL16_HA 94+#define R_PPC64_TPREL16_DS 95+#define R_PPC64_TPREL16_LO_DS 96+#define R_PPC64_TPREL16_HIGHER 97+#define R_PPC64_TPREL16_HIGHERA 98+#define R_PPC64_TPREL16_HIGHEST 99+#define R_PPC64_TPREL16_HIGHESTA 100+#define R_PPC64_DTPREL16_DS 101+#define R_PPC64_DTPREL16_LO_DS 102+#define R_PPC64_DTPREL16_HIGHER 103+#define R_PPC64_DTPREL16_HIGHERA 104+#define R_PPC64_DTPREL16_HIGHEST 105+#define R_PPC64_DTPREL16_HIGHESTA 106+#define R_PPC64_TLSGD 107+#define R_PPC64_TLSLD 108+#define R_PPC64_TOCSAVE 109+#define R_PPC64_ADDR16_HIGH 110+#define R_PPC64_ADDR16_HIGHA 111+#define R_PPC64_TPREL16_HIGH 112+#define R_PPC64_TPREL16_HIGHA 113+#define R_PPC64_DTPREL16_HIGH 114+#define R_PPC64_DTPREL16_HIGHA 115+++#define R_PPC64_JMP_IREL 247+#define R_PPC64_IRELATIVE 248+#define R_PPC64_REL16 249+#define R_PPC64_REL16_LO 250+#define R_PPC64_REL16_HI 251+#define R_PPC64_REL16_HA 252++#define EF_PPC64_ABI 3++#define DT_PPC64_GLINK (DT_LOPROC + 0)+#define DT_PPC64_OPD (DT_LOPROC + 1)+#define DT_PPC64_OPDSZ (DT_LOPROC + 2)+#define DT_PPC64_OPT (DT_LOPROC + 3)+#define DT_PPC64_NUM 4++#define PPC64_OPT_TLS 1+#define PPC64_OPT_MULTI_TOC 2+#define PPC64_OPT_LOCALENTRY 4++#define STO_PPC64_LOCAL_BIT 5+#define STO_PPC64_LOCAL_MASK 0xe0+#define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc)+++#define EF_ARM_RELEXEC 0x01+#define EF_ARM_HASENTRY 0x02+#define EF_ARM_INTERWORK 0x04+#define EF_ARM_APCS_26 0x08+#define EF_ARM_APCS_FLOAT 0x10+#define EF_ARM_PIC 0x20+#define EF_ARM_ALIGN8 0x40+#define EF_ARM_NEW_ABI 0x80+#define EF_ARM_OLD_ABI 0x100+#define EF_ARM_SOFT_FLOAT 0x200+#define EF_ARM_VFP_FLOAT 0x400+#define EF_ARM_MAVERICK_FLOAT 0x800++#define EF_ARM_ABI_FLOAT_SOFT 0x200+#define EF_ARM_ABI_FLOAT_HARD 0x400+++#define EF_ARM_SYMSARESORTED 0x04+#define EF_ARM_DYNSYMSUSESEGIDX 0x08+#define EF_ARM_MAPSYMSFIRST 0x10+#define EF_ARM_EABIMASK 0XFF000000+++#define EF_ARM_BE8 0x00800000+#define EF_ARM_LE8 0x00400000++#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)+#define EF_ARM_EABI_UNKNOWN 0x00000000+#define EF_ARM_EABI_VER1 0x01000000+#define EF_ARM_EABI_VER2 0x02000000+#define EF_ARM_EABI_VER3 0x03000000+#define EF_ARM_EABI_VER4 0x04000000+#define EF_ARM_EABI_VER5 0x05000000+++#define STT_ARM_TFUNC STT_LOPROC+#define STT_ARM_16BIT STT_HIPROC+++#define SHF_ARM_ENTRYSECT 0x10000000+#define SHF_ARM_COMDEF 0x80000000++++#define PF_ARM_SB 0x10000000++#define PF_ARM_PI 0x20000000+#define PF_ARM_ABS 0x40000000+++#define PT_ARM_EXIDX (PT_LOPROC + 1)+++#define SHT_ARM_EXIDX (SHT_LOPROC + 1)+#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2)+#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)++#define R_AARCH64_NONE 0+#define R_AARCH64_P32_ABS32 1+#define R_AARCH64_P32_COPY 180+#define R_AARCH64_P32_GLOB_DAT 181+#define R_AARCH64_P32_JUMP_SLOT 182+#define R_AARCH64_P32_RELATIVE 183+#define R_AARCH64_P32_TLS_DTPMOD 184+#define R_AARCH64_P32_TLS_DTPREL 185+#define R_AARCH64_P32_TLS_TPREL 186+#define R_AARCH64_P32_TLSDESC 187+#define R_AARCH64_P32_IRELATIVE 188+#define R_AARCH64_ABS64 257+#define R_AARCH64_ABS32 258+#define R_AARCH64_ABS16 259+#define R_AARCH64_PREL64 260+#define R_AARCH64_PREL32 261+#define R_AARCH64_PREL16 262+#define R_AARCH64_MOVW_UABS_G0 263+#define R_AARCH64_MOVW_UABS_G0_NC 264+#define R_AARCH64_MOVW_UABS_G1 265+#define R_AARCH64_MOVW_UABS_G1_NC 266+#define R_AARCH64_MOVW_UABS_G2 267+#define R_AARCH64_MOVW_UABS_G2_NC 268+#define R_AARCH64_MOVW_UABS_G3 269+#define R_AARCH64_MOVW_SABS_G0 270+#define R_AARCH64_MOVW_SABS_G1 271+#define R_AARCH64_MOVW_SABS_G2 272+#define R_AARCH64_LD_PREL_LO19 273+#define R_AARCH64_ADR_PREL_LO21 274+#define R_AARCH64_ADR_PREL_PG_HI21 275+#define R_AARCH64_ADR_PREL_PG_HI21_NC 276+#define R_AARCH64_ADD_ABS_LO12_NC 277+#define R_AARCH64_LDST8_ABS_LO12_NC 278+#define R_AARCH64_TSTBR14 279+#define R_AARCH64_CONDBR19 280+#define R_AARCH64_JUMP26 282+#define R_AARCH64_CALL26 283+#define R_AARCH64_LDST16_ABS_LO12_NC 284+#define R_AARCH64_LDST32_ABS_LO12_NC 285+#define R_AARCH64_LDST64_ABS_LO12_NC 286+#define R_AARCH64_MOVW_PREL_G0 287+#define R_AARCH64_MOVW_PREL_G0_NC 288+#define R_AARCH64_MOVW_PREL_G1 289+#define R_AARCH64_MOVW_PREL_G1_NC 290+#define R_AARCH64_MOVW_PREL_G2 291+#define R_AARCH64_MOVW_PREL_G2_NC 292+#define R_AARCH64_MOVW_PREL_G3 293+#define R_AARCH64_LDST128_ABS_LO12_NC 299+#define R_AARCH64_MOVW_GOTOFF_G0 300+#define R_AARCH64_MOVW_GOTOFF_G0_NC 301+#define R_AARCH64_MOVW_GOTOFF_G1 302+#define R_AARCH64_MOVW_GOTOFF_G1_NC 303+#define R_AARCH64_MOVW_GOTOFF_G2 304+#define R_AARCH64_MOVW_GOTOFF_G2_NC 305+#define R_AARCH64_MOVW_GOTOFF_G3 306+#define R_AARCH64_GOTREL64 307+#define R_AARCH64_GOTREL32 308+#define R_AARCH64_GOT_LD_PREL19 309+#define R_AARCH64_LD64_GOTOFF_LO15 310+#define R_AARCH64_ADR_GOT_PAGE 311+#define R_AARCH64_LD64_GOT_LO12_NC 312+#define R_AARCH64_LD64_GOTPAGE_LO15 313+#define R_AARCH64_TLSGD_ADR_PREL21 512+#define R_AARCH64_TLSGD_ADR_PAGE21 513+#define R_AARCH64_TLSGD_ADD_LO12_NC 514+#define R_AARCH64_TLSGD_MOVW_G1 515+#define R_AARCH64_TLSGD_MOVW_G0_NC 516+#define R_AARCH64_TLSLD_ADR_PREL21 517+#define R_AARCH64_TLSLD_ADR_PAGE21 518+#define R_AARCH64_TLSLD_ADD_LO12_NC 519+#define R_AARCH64_TLSLD_MOVW_G1 520+#define R_AARCH64_TLSLD_MOVW_G0_NC 521+#define R_AARCH64_TLSLD_LD_PREL19 522+#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527+#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540+#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541+#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542+#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543+#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544+#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545+#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546+#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547+#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548+#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549+#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550+#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559+#define R_AARCH64_TLSDESC_LD_PREL19 560+#define R_AARCH64_TLSDESC_ADR_PREL21 561+#define R_AARCH64_TLSDESC_ADR_PAGE21 562+#define R_AARCH64_TLSDESC_LD64_LO12 563+#define R_AARCH64_TLSDESC_ADD_LO12 564+#define R_AARCH64_TLSDESC_OFF_G1 565+#define R_AARCH64_TLSDESC_OFF_G0_NC 566+#define R_AARCH64_TLSDESC_LDR 567+#define R_AARCH64_TLSDESC_ADD 568+#define R_AARCH64_TLSDESC_CALL 569+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573+#define R_AARCH64_COPY 1024+#define R_AARCH64_GLOB_DAT 1025+#define R_AARCH64_JUMP_SLOT 1026+#define R_AARCH64_RELATIVE 1027+#define R_AARCH64_TLS_DTPMOD 1028+#define R_AARCH64_TLS_DTPMOD64 1028+#define R_AARCH64_TLS_DTPREL 1029+#define R_AARCH64_TLS_DTPREL64 1029+#define R_AARCH64_TLS_TPREL 1030+#define R_AARCH64_TLS_TPREL64 1030+#define R_AARCH64_TLSDESC 1031+++#define R_ARM_NONE 0+#define R_ARM_PC24 1+#define R_ARM_ABS32 2+#define R_ARM_REL32 3+#define R_ARM_PC13 4+#define R_ARM_ABS16 5+#define R_ARM_ABS12 6+#define R_ARM_THM_ABS5 7+#define R_ARM_ABS8 8+#define R_ARM_SBREL32 9+#define R_ARM_THM_PC22 10+#define R_ARM_THM_PC8 11+#define R_ARM_AMP_VCALL9 12+#define R_ARM_TLS_DESC 13+#define R_ARM_THM_SWI8 14+#define R_ARM_XPC25 15+#define R_ARM_THM_XPC22 16+#define R_ARM_TLS_DTPMOD32 17+#define R_ARM_TLS_DTPOFF32 18+#define R_ARM_TLS_TPOFF32 19+#define R_ARM_COPY 20+#define R_ARM_GLOB_DAT 21+#define R_ARM_JUMP_SLOT 22+#define R_ARM_RELATIVE 23+#define R_ARM_GOTOFF 24+#define R_ARM_GOTPC 25+#define R_ARM_GOT32 26+#define R_ARM_PLT32 27+#define R_ARM_CALL 28+#define R_ARM_JUMP24 29+#define R_ARM_THM_JUMP24 30+#define R_ARM_BASE_ABS 31+#define R_ARM_ALU_PCREL_7_0 32+#define R_ARM_ALU_PCREL_15_8 33+#define R_ARM_ALU_PCREL_23_15 34+#define R_ARM_LDR_SBREL_11_0 35+#define R_ARM_ALU_SBREL_19_12 36+#define R_ARM_ALU_SBREL_27_20 37+#define R_ARM_TARGET1 38+#define R_ARM_SBREL31 39+#define R_ARM_V4BX 40+#define R_ARM_TARGET2 41+#define R_ARM_PREL31 42+#define R_ARM_MOVW_ABS_NC 43+#define R_ARM_MOVT_ABS 44+#define R_ARM_MOVW_PREL_NC 45+#define R_ARM_MOVT_PREL 46+#define R_ARM_THM_MOVW_ABS_NC 47+#define R_ARM_THM_MOVT_ABS 48+#define R_ARM_THM_MOVW_PREL_NC 49+#define R_ARM_THM_MOVT_PREL 50+#define R_ARM_THM_JUMP19 51+#define R_ARM_THM_JUMP6 52+#define R_ARM_THM_ALU_PREL_11_0 53+#define R_ARM_THM_PC12 54+#define R_ARM_ABS32_NOI 55+#define R_ARM_REL32_NOI 56+#define R_ARM_ALU_PC_G0_NC 57+#define R_ARM_ALU_PC_G0 58+#define R_ARM_ALU_PC_G1_NC 59+#define R_ARM_ALU_PC_G1 60+#define R_ARM_ALU_PC_G2 61+#define R_ARM_LDR_PC_G1 62+#define R_ARM_LDR_PC_G2 63+#define R_ARM_LDRS_PC_G0 64+#define R_ARM_LDRS_PC_G1 65+#define R_ARM_LDRS_PC_G2 66+#define R_ARM_LDC_PC_G0 67+#define R_ARM_LDC_PC_G1 68+#define R_ARM_LDC_PC_G2 69+#define R_ARM_ALU_SB_G0_NC 70+#define R_ARM_ALU_SB_G0 71+#define R_ARM_ALU_SB_G1_NC 72+#define R_ARM_ALU_SB_G1 73+#define R_ARM_ALU_SB_G2 74+#define R_ARM_LDR_SB_G0 75+#define R_ARM_LDR_SB_G1 76+#define R_ARM_LDR_SB_G2 77+#define R_ARM_LDRS_SB_G0 78+#define R_ARM_LDRS_SB_G1 79+#define R_ARM_LDRS_SB_G2 80+#define R_ARM_LDC_SB_G0 81+#define R_ARM_LDC_SB_G1 82+#define R_ARM_LDC_SB_G2 83+#define R_ARM_MOVW_BREL_NC 84+#define R_ARM_MOVT_BREL 85+#define R_ARM_MOVW_BREL 86+#define R_ARM_THM_MOVW_BREL_NC 87+#define R_ARM_THM_MOVT_BREL 88+#define R_ARM_THM_MOVW_BREL 89+#define R_ARM_TLS_GOTDESC 90+#define R_ARM_TLS_CALL 91+#define R_ARM_TLS_DESCSEQ 92+#define R_ARM_THM_TLS_CALL 93+#define R_ARM_PLT32_ABS 94+#define R_ARM_GOT_ABS 95+#define R_ARM_GOT_PREL 96+#define R_ARM_GOT_BREL12 97+#define R_ARM_GOTOFF12 98+#define R_ARM_GOTRELAX 99+#define R_ARM_GNU_VTENTRY 100+#define R_ARM_GNU_VTINHERIT 101+#define R_ARM_THM_PC11 102+#define R_ARM_THM_PC9 103+#define R_ARM_TLS_GD32 104++#define R_ARM_TLS_LDM32 105++#define R_ARM_TLS_LDO32 106++#define R_ARM_TLS_IE32 107++#define R_ARM_TLS_LE32 108+#define R_ARM_TLS_LDO12 109+#define R_ARM_TLS_LE12 110+#define R_ARM_TLS_IE12GP 111+#define R_ARM_ME_TOO 128+#define R_ARM_THM_TLS_DESCSEQ 129+#define R_ARM_THM_TLS_DESCSEQ16 129+#define R_ARM_THM_TLS_DESCSEQ32 130+#define R_ARM_THM_GOT_BREL12 131+#define R_ARM_IRELATIVE 160+#define R_ARM_RXPC25 249+#define R_ARM_RSBREL32 250+#define R_ARM_THM_RPC22 251+#define R_ARM_RREL32 252+#define R_ARM_RABS22 253+#define R_ARM_RPC24 254+#define R_ARM_RBASE 255++#define R_ARM_NUM 256+++#define R_CKCORE_NONE 0+#define R_CKCORE_ADDR32 1+#define R_CKCORE_PCRELIMM8BY4 2+#define R_CKCORE_PCRELIMM11BY2 3+#define R_CKCORE_PCREL32 5+#define R_CKCORE_PCRELJSR_IMM11BY2 6+#define R_CKCORE_RELATIVE 9+#define R_CKCORE_COPY 10+#define R_CKCORE_GLOB_DAT 11+#define R_CKCORE_JUMP_SLOT 12+#define R_CKCORE_GOTOFF 13+#define R_CKCORE_GOTPC 14+#define R_CKCORE_GOT32 15+#define R_CKCORE_PLT32 16+#define R_CKCORE_ADDRGOT 17+#define R_CKCORE_ADDRPLT 18+#define R_CKCORE_PCREL_IMM26BY2 19+#define R_CKCORE_PCREL_IMM16BY2 20+#define R_CKCORE_PCREL_IMM16BY4 21+#define R_CKCORE_PCREL_IMM10BY2 22+#define R_CKCORE_PCREL_IMM10BY4 23+#define R_CKCORE_ADDR_HI16 24+#define R_CKCORE_ADDR_LO16 25+#define R_CKCORE_GOTPC_HI16 26+#define R_CKCORE_GOTPC_LO16 27+#define R_CKCORE_GOTOFF_HI16 28+#define R_CKCORE_GOTOFF_LO16 29+#define R_CKCORE_GOT12 30+#define R_CKCORE_GOT_HI16 31+#define R_CKCORE_GOT_LO16 32+#define R_CKCORE_PLT12 33+#define R_CKCORE_PLT_HI16 34+#define R_CKCORE_PLT_LO16 35+#define R_CKCORE_ADDRGOT_HI16 36+#define R_CKCORE_ADDRGOT_LO16 37+#define R_CKCORE_ADDRPLT_HI16 38+#define R_CKCORE_ADDRPLT_LO16 39+#define R_CKCORE_PCREL_JSR_IMM26BY2 40+#define R_CKCORE_TOFFSET_LO16 41+#define R_CKCORE_DOFFSET_LO16 42+#define R_CKCORE_PCREL_IMM18BY2 43+#define R_CKCORE_DOFFSET_IMM18 44+#define R_CKCORE_DOFFSET_IMM18BY2 45+#define R_CKCORE_DOFFSET_IMM18BY4 46+#define R_CKCORE_GOT_IMM18BY4 48+#define R_CKCORE_PLT_IMM18BY4 49+#define R_CKCORE_PCREL_IMM7BY4 50+#define R_CKCORE_TLS_LE32 51+#define R_CKCORE_TLS_IE32 52+#define R_CKCORE_TLS_GD32 53+#define R_CKCORE_TLS_LDM32 54+#define R_CKCORE_TLS_LDO32 55+#define R_CKCORE_TLS_DTPMOD32 56+#define R_CKCORE_TLS_DTPOFF32 57+#define R_CKCORE_TLS_TPOFF32 58+++#define EF_IA_64_MASKOS 0x0000000f+#define EF_IA_64_ABI64 0x00000010+#define EF_IA_64_ARCH 0xff000000+++#define PT_IA_64_ARCHEXT (PT_LOPROC + 0)+#define PT_IA_64_UNWIND (PT_LOPROC + 1)+#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)+#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)+#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)+++#define PF_IA_64_NORECOV 0x80000000+++#define SHT_IA_64_EXT (SHT_LOPROC + 0)+#define SHT_IA_64_UNWIND (SHT_LOPROC + 1)+++#define SHF_IA_64_SHORT 0x10000000+#define SHF_IA_64_NORECOV 0x20000000+++#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)+#define DT_IA_64_NUM 1+++#define R_IA64_NONE 0x00+#define R_IA64_IMM14 0x21+#define R_IA64_IMM22 0x22+#define R_IA64_IMM64 0x23+#define R_IA64_DIR32MSB 0x24+#define R_IA64_DIR32LSB 0x25+#define R_IA64_DIR64MSB 0x26+#define R_IA64_DIR64LSB 0x27+#define R_IA64_GPREL22 0x2a+#define R_IA64_GPREL64I 0x2b+#define R_IA64_GPREL32MSB 0x2c+#define R_IA64_GPREL32LSB 0x2d+#define R_IA64_GPREL64MSB 0x2e+#define R_IA64_GPREL64LSB 0x2f+#define R_IA64_LTOFF22 0x32+#define R_IA64_LTOFF64I 0x33+#define R_IA64_PLTOFF22 0x3a+#define R_IA64_PLTOFF64I 0x3b+#define R_IA64_PLTOFF64MSB 0x3e+#define R_IA64_PLTOFF64LSB 0x3f+#define R_IA64_FPTR64I 0x43+#define R_IA64_FPTR32MSB 0x44+#define R_IA64_FPTR32LSB 0x45+#define R_IA64_FPTR64MSB 0x46+#define R_IA64_FPTR64LSB 0x47+#define R_IA64_PCREL60B 0x48+#define R_IA64_PCREL21B 0x49+#define R_IA64_PCREL21M 0x4a+#define R_IA64_PCREL21F 0x4b+#define R_IA64_PCREL32MSB 0x4c+#define R_IA64_PCREL32LSB 0x4d+#define R_IA64_PCREL64MSB 0x4e+#define R_IA64_PCREL64LSB 0x4f+#define R_IA64_LTOFF_FPTR22 0x52+#define R_IA64_LTOFF_FPTR64I 0x53+#define R_IA64_LTOFF_FPTR32MSB 0x54+#define R_IA64_LTOFF_FPTR32LSB 0x55+#define R_IA64_LTOFF_FPTR64MSB 0x56+#define R_IA64_LTOFF_FPTR64LSB 0x57+#define R_IA64_SEGREL32MSB 0x5c+#define R_IA64_SEGREL32LSB 0x5d+#define R_IA64_SEGREL64MSB 0x5e+#define R_IA64_SEGREL64LSB 0x5f+#define R_IA64_SECREL32MSB 0x64+#define R_IA64_SECREL32LSB 0x65+#define R_IA64_SECREL64MSB 0x66+#define R_IA64_SECREL64LSB 0x67+#define R_IA64_REL32MSB 0x6c+#define R_IA64_REL32LSB 0x6d+#define R_IA64_REL64MSB 0x6e+#define R_IA64_REL64LSB 0x6f+#define R_IA64_LTV32MSB 0x74+#define R_IA64_LTV32LSB 0x75+#define R_IA64_LTV64MSB 0x76+#define R_IA64_LTV64LSB 0x77+#define R_IA64_PCREL21BI 0x79+#define R_IA64_PCREL22 0x7a+#define R_IA64_PCREL64I 0x7b+#define R_IA64_IPLTMSB 0x80+#define R_IA64_IPLTLSB 0x81+#define R_IA64_COPY 0x84+#define R_IA64_SUB 0x85+#define R_IA64_LTOFF22X 0x86+#define R_IA64_LDXMOV 0x87+#define R_IA64_TPREL14 0x91+#define R_IA64_TPREL22 0x92+#define R_IA64_TPREL64I 0x93+#define R_IA64_TPREL64MSB 0x96+#define R_IA64_TPREL64LSB 0x97+#define R_IA64_LTOFF_TPREL22 0x9a+#define R_IA64_DTPMOD64MSB 0xa6+#define R_IA64_DTPMOD64LSB 0xa7+#define R_IA64_LTOFF_DTPMOD22 0xaa+#define R_IA64_DTPREL14 0xb1+#define R_IA64_DTPREL22 0xb2+#define R_IA64_DTPREL64I 0xb3+#define R_IA64_DTPREL32MSB 0xb4+#define R_IA64_DTPREL32LSB 0xb5+#define R_IA64_DTPREL64MSB 0xb6+#define R_IA64_DTPREL64LSB 0xb7+#define R_IA64_LTOFF_DTPREL22 0xba+++#define EF_SH_MACH_MASK 0x1f+#define EF_SH_UNKNOWN 0x0+#define EF_SH1 0x1+#define EF_SH2 0x2+#define EF_SH3 0x3+#define EF_SH_DSP 0x4+#define EF_SH3_DSP 0x5+#define EF_SH4AL_DSP 0x6+#define EF_SH3E 0x8+#define EF_SH4 0x9+#define EF_SH2E 0xb+#define EF_SH4A 0xc+#define EF_SH2A 0xd+#define EF_SH4_NOFPU 0x10+#define EF_SH4A_NOFPU 0x11+#define EF_SH4_NOMMU_NOFPU 0x12+#define EF_SH2A_NOFPU 0x13+#define EF_SH3_NOMMU 0x14+#define EF_SH2A_SH4_NOFPU 0x15+#define EF_SH2A_SH3_NOFPU 0x16+#define EF_SH2A_SH4 0x17+#define EF_SH2A_SH3E 0x18++#define R_SH_NONE 0+#define R_SH_DIR32 1+#define R_SH_REL32 2+#define R_SH_DIR8WPN 3+#define R_SH_IND12W 4+#define R_SH_DIR8WPL 5+#define R_SH_DIR8WPZ 6+#define R_SH_DIR8BP 7+#define R_SH_DIR8W 8+#define R_SH_DIR8L 9+#define R_SH_SWITCH16 25+#define R_SH_SWITCH32 26+#define R_SH_USES 27+#define R_SH_COUNT 28+#define R_SH_ALIGN 29+#define R_SH_CODE 30+#define R_SH_DATA 31+#define R_SH_LABEL 32+#define R_SH_SWITCH8 33+#define R_SH_GNU_VTINHERIT 34+#define R_SH_GNU_VTENTRY 35+#define R_SH_TLS_GD_32 144+#define R_SH_TLS_LD_32 145+#define R_SH_TLS_LDO_32 146+#define R_SH_TLS_IE_32 147+#define R_SH_TLS_LE_32 148+#define R_SH_TLS_DTPMOD32 149+#define R_SH_TLS_DTPOFF32 150+#define R_SH_TLS_TPOFF32 151+#define R_SH_GOT32 160+#define R_SH_PLT32 161+#define R_SH_COPY 162+#define R_SH_GLOB_DAT 163+#define R_SH_JMP_SLOT 164+#define R_SH_RELATIVE 165+#define R_SH_GOTOFF 166+#define R_SH_GOTPC 167+#define R_SH_GOT20 201+#define R_SH_GOTOFF20 202+#define R_SH_GOTFUNCDESC 203+#define R_SH_GOTFUNCDEST20 204+#define R_SH_GOTOFFFUNCDESC 205+#define R_SH_GOTOFFFUNCDEST20 206+#define R_SH_FUNCDESC 207+#define R_SH_FUNCDESC_VALUE 208++#define R_SH_NUM 256++++#define R_390_NONE 0+#define R_390_8 1+#define R_390_12 2+#define R_390_16 3+#define R_390_32 4+#define R_390_PC32 5+#define R_390_GOT12 6+#define R_390_GOT32 7+#define R_390_PLT32 8+#define R_390_COPY 9+#define R_390_GLOB_DAT 10+#define R_390_JMP_SLOT 11+#define R_390_RELATIVE 12+#define R_390_GOTOFF32 13+#define R_390_GOTPC 14+#define R_390_GOT16 15+#define R_390_PC16 16+#define R_390_PC16DBL 17+#define R_390_PLT16DBL 18+#define R_390_PC32DBL 19+#define R_390_PLT32DBL 20+#define R_390_GOTPCDBL 21+#define R_390_64 22+#define R_390_PC64 23+#define R_390_GOT64 24+#define R_390_PLT64 25+#define R_390_GOTENT 26+#define R_390_GOTOFF16 27+#define R_390_GOTOFF64 28+#define R_390_GOTPLT12 29+#define R_390_GOTPLT16 30+#define R_390_GOTPLT32 31+#define R_390_GOTPLT64 32+#define R_390_GOTPLTENT 33+#define R_390_PLTOFF16 34+#define R_390_PLTOFF32 35+#define R_390_PLTOFF64 36+#define R_390_TLS_LOAD 37+#define R_390_TLS_GDCALL 38++#define R_390_TLS_LDCALL 39++#define R_390_TLS_GD32 40++#define R_390_TLS_GD64 41++#define R_390_TLS_GOTIE12 42++#define R_390_TLS_GOTIE32 43++#define R_390_TLS_GOTIE64 44++#define R_390_TLS_LDM32 45++#define R_390_TLS_LDM64 46++#define R_390_TLS_IE32 47++#define R_390_TLS_IE64 48++#define R_390_TLS_IEENT 49++#define R_390_TLS_LE32 50++#define R_390_TLS_LE64 51++#define R_390_TLS_LDO32 52++#define R_390_TLS_LDO64 53++#define R_390_TLS_DTPMOD 54+#define R_390_TLS_DTPOFF 55+#define R_390_TLS_TPOFF 56++#define R_390_20 57+#define R_390_GOT20 58+#define R_390_GOTPLT20 59+#define R_390_TLS_GOTIE20 60+++#define R_390_NUM 61++++#define R_CRIS_NONE 0+#define R_CRIS_8 1+#define R_CRIS_16 2+#define R_CRIS_32 3+#define R_CRIS_8_PCREL 4+#define R_CRIS_16_PCREL 5+#define R_CRIS_32_PCREL 6+#define R_CRIS_GNU_VTINHERIT 7+#define R_CRIS_GNU_VTENTRY 8+#define R_CRIS_COPY 9+#define R_CRIS_GLOB_DAT 10+#define R_CRIS_JUMP_SLOT 11+#define R_CRIS_RELATIVE 12+#define R_CRIS_16_GOT 13+#define R_CRIS_32_GOT 14+#define R_CRIS_16_GOTPLT 15+#define R_CRIS_32_GOTPLT 16+#define R_CRIS_32_GOTREL 17+#define R_CRIS_32_PLT_GOTREL 18+#define R_CRIS_32_PLT_PCREL 19++#define R_CRIS_NUM 20++++#define R_X86_64_NONE 0+#define R_X86_64_64 1+#define R_X86_64_PC32 2+#define R_X86_64_GOT32 3+#define R_X86_64_PLT32 4+#define R_X86_64_COPY 5+#define R_X86_64_GLOB_DAT 6+#define R_X86_64_JUMP_SLOT 7+#define R_X86_64_RELATIVE 8+#define R_X86_64_GOTPCREL 9++#define R_X86_64_32 10+#define R_X86_64_32S 11+#define R_X86_64_16 12+#define R_X86_64_PC16 13+#define R_X86_64_8 14+#define R_X86_64_PC8 15+#define R_X86_64_DTPMOD64 16+#define R_X86_64_DTPOFF64 17+#define R_X86_64_TPOFF64 18+#define R_X86_64_TLSGD 19++#define R_X86_64_TLSLD 20++#define R_X86_64_DTPOFF32 21+#define R_X86_64_GOTTPOFF 22++#define R_X86_64_TPOFF32 23+#define R_X86_64_PC64 24+#define R_X86_64_GOTOFF64 25+#define R_X86_64_GOTPC32 26+#define R_X86_64_GOT64 27+#define R_X86_64_GOTPCREL64 28+#define R_X86_64_GOTPC64 29+#define R_X86_64_GOTPLT64 30+#define R_X86_64_PLTOFF64 31+#define R_X86_64_SIZE32 32+#define R_X86_64_SIZE64 33++#define R_X86_64_GOTPC32_TLSDESC 34+#define R_X86_64_TLSDESC_CALL 35++#define R_X86_64_TLSDESC 36+#define R_X86_64_IRELATIVE 37+#define R_X86_64_RELATIVE64 38+#define R_X86_64_GOTPCRELX 41+#define R_X86_64_REX_GOTPCRELX 42+#define R_X86_64_NUM 43++++#define R_MN10300_NONE 0+#define R_MN10300_32 1+#define R_MN10300_16 2+#define R_MN10300_8 3+#define R_MN10300_PCREL32 4+#define R_MN10300_PCREL16 5+#define R_MN10300_PCREL8 6+#define R_MN10300_GNU_VTINHERIT 7+#define R_MN10300_GNU_VTENTRY 8+#define R_MN10300_24 9+#define R_MN10300_GOTPC32 10+#define R_MN10300_GOTPC16 11+#define R_MN10300_GOTOFF32 12+#define R_MN10300_GOTOFF24 13+#define R_MN10300_GOTOFF16 14+#define R_MN10300_PLT32 15+#define R_MN10300_PLT16 16+#define R_MN10300_GOT32 17+#define R_MN10300_GOT24 18+#define R_MN10300_GOT16 19+#define R_MN10300_COPY 20+#define R_MN10300_GLOB_DAT 21+#define R_MN10300_JMP_SLOT 22+#define R_MN10300_RELATIVE 23++#define R_MN10300_NUM 24++++#define R_M32R_NONE 0+#define R_M32R_16 1+#define R_M32R_32 2+#define R_M32R_24 3+#define R_M32R_10_PCREL 4+#define R_M32R_18_PCREL 5+#define R_M32R_26_PCREL 6+#define R_M32R_HI16_ULO 7+#define R_M32R_HI16_SLO 8+#define R_M32R_LO16 9+#define R_M32R_SDA16 10+#define R_M32R_GNU_VTINHERIT 11+#define R_M32R_GNU_VTENTRY 12++#define R_M32R_16_RELA 33+#define R_M32R_32_RELA 34+#define R_M32R_24_RELA 35+#define R_M32R_10_PCREL_RELA 36+#define R_M32R_18_PCREL_RELA 37+#define R_M32R_26_PCREL_RELA 38+#define R_M32R_HI16_ULO_RELA 39+#define R_M32R_HI16_SLO_RELA 40+#define R_M32R_LO16_RELA 41+#define R_M32R_SDA16_RELA 42+#define R_M32R_RELA_GNU_VTINHERIT 43+#define R_M32R_RELA_GNU_VTENTRY 44+#define R_M32R_REL32 45++#define R_M32R_GOT24 48+#define R_M32R_26_PLTREL 49+#define R_M32R_COPY 50+#define R_M32R_GLOB_DAT 51+#define R_M32R_JMP_SLOT 52+#define R_M32R_RELATIVE 53+#define R_M32R_GOTOFF 54+#define R_M32R_GOTPC24 55+#define R_M32R_GOT16_HI_ULO 56++#define R_M32R_GOT16_HI_SLO 57++#define R_M32R_GOT16_LO 58+#define R_M32R_GOTPC_HI_ULO 59++#define R_M32R_GOTPC_HI_SLO 60++#define R_M32R_GOTPC_LO 61++#define R_M32R_GOTOFF_HI_ULO 62++#define R_M32R_GOTOFF_HI_SLO 63++#define R_M32R_GOTOFF_LO 64+#define R_M32R_NUM 256++#define R_MICROBLAZE_NONE 0+#define R_MICROBLAZE_32 1+#define R_MICROBLAZE_32_PCREL 2+#define R_MICROBLAZE_64_PCREL 3+#define R_MICROBLAZE_32_PCREL_LO 4+#define R_MICROBLAZE_64 5+#define R_MICROBLAZE_32_LO 6+#define R_MICROBLAZE_SRO32 7+#define R_MICROBLAZE_SRW32 8+#define R_MICROBLAZE_64_NONE 9+#define R_MICROBLAZE_32_SYM_OP_SYM 10+#define R_MICROBLAZE_GNU_VTINHERIT 11+#define R_MICROBLAZE_GNU_VTENTRY 12+#define R_MICROBLAZE_GOTPC_64 13+#define R_MICROBLAZE_GOT_64 14+#define R_MICROBLAZE_PLT_64 15+#define R_MICROBLAZE_REL 16+#define R_MICROBLAZE_JUMP_SLOT 17+#define R_MICROBLAZE_GLOB_DAT 18+#define R_MICROBLAZE_GOTOFF_64 19+#define R_MICROBLAZE_GOTOFF_32 20+#define R_MICROBLAZE_COPY 21+#define R_MICROBLAZE_TLS 22+#define R_MICROBLAZE_TLSGD 23+#define R_MICROBLAZE_TLSLD 24+#define R_MICROBLAZE_TLSDTPMOD32 25+#define R_MICROBLAZE_TLSDTPREL32 26+#define R_MICROBLAZE_TLSDTPREL64 27+#define R_MICROBLAZE_TLSGOTTPREL32 28+#define R_MICROBLAZE_TLSTPREL32 29++#define DT_NIOS2_GP 0x70000002++#define R_NIOS2_NONE 0+#define R_NIOS2_S16 1+#define R_NIOS2_U16 2+#define R_NIOS2_PCREL16 3+#define R_NIOS2_CALL26 4+#define R_NIOS2_IMM5 5+#define R_NIOS2_CACHE_OPX 6+#define R_NIOS2_IMM6 7+#define R_NIOS2_IMM8 8+#define R_NIOS2_HI16 9+#define R_NIOS2_LO16 10+#define R_NIOS2_HIADJ16 11+#define R_NIOS2_BFD_RELOC_32 12+#define R_NIOS2_BFD_RELOC_16 13+#define R_NIOS2_BFD_RELOC_8 14+#define R_NIOS2_GPREL 15+#define R_NIOS2_GNU_VTINHERIT 16+#define R_NIOS2_GNU_VTENTRY 17+#define R_NIOS2_UJMP 18+#define R_NIOS2_CJMP 19+#define R_NIOS2_CALLR 20+#define R_NIOS2_ALIGN 21+#define R_NIOS2_GOT16 22+#define R_NIOS2_CALL16 23+#define R_NIOS2_GOTOFF_LO 24+#define R_NIOS2_GOTOFF_HA 25+#define R_NIOS2_PCREL_LO 26+#define R_NIOS2_PCREL_HA 27+#define R_NIOS2_TLS_GD16 28+#define R_NIOS2_TLS_LDM16 29+#define R_NIOS2_TLS_LDO16 30+#define R_NIOS2_TLS_IE16 31+#define R_NIOS2_TLS_LE16 32+#define R_NIOS2_TLS_DTPMOD 33+#define R_NIOS2_TLS_DTPREL 34+#define R_NIOS2_TLS_TPREL 35+#define R_NIOS2_COPY 36+#define R_NIOS2_GLOB_DAT 37+#define R_NIOS2_JUMP_SLOT 38+#define R_NIOS2_RELATIVE 39+#define R_NIOS2_GOTOFF 40+#define R_NIOS2_CALL26_NOAT 41+#define R_NIOS2_GOT_LO 42+#define R_NIOS2_GOT_HA 43+#define R_NIOS2_CALL_LO 44+#define R_NIOS2_CALL_HA 45++#define R_OR1K_NONE 0+#define R_OR1K_32 1+#define R_OR1K_16 2+#define R_OR1K_8 3+#define R_OR1K_LO_16_IN_INSN 4+#define R_OR1K_HI_16_IN_INSN 5+#define R_OR1K_INSN_REL_26 6+#define R_OR1K_GNU_VTENTRY 7+#define R_OR1K_GNU_VTINHERIT 8+#define R_OR1K_32_PCREL 9+#define R_OR1K_16_PCREL 10+#define R_OR1K_8_PCREL 11+#define R_OR1K_GOTPC_HI16 12+#define R_OR1K_GOTPC_LO16 13+#define R_OR1K_GOT16 14+#define R_OR1K_PLT26 15+#define R_OR1K_GOTOFF_HI16 16+#define R_OR1K_GOTOFF_LO16 17+#define R_OR1K_COPY 18+#define R_OR1K_GLOB_DAT 19+#define R_OR1K_JMP_SLOT 20+#define R_OR1K_RELATIVE 21+#define R_OR1K_TLS_GD_HI16 22+#define R_OR1K_TLS_GD_LO16 23+#define R_OR1K_TLS_LDM_HI16 24+#define R_OR1K_TLS_LDM_LO16 25+#define R_OR1K_TLS_LDO_HI16 26+#define R_OR1K_TLS_LDO_LO16 27+#define R_OR1K_TLS_IE_HI16 28+#define R_OR1K_TLS_IE_LO16 29+#define R_OR1K_TLS_LE_HI16 30+#define R_OR1K_TLS_LE_LO16 31+#define R_OR1K_TLS_TPOFF 32+#define R_OR1K_TLS_DTPOFF 33+#define R_OR1K_TLS_DTPMOD 34++#define R_BPF_NONE 0+#define R_BPF_MAP_FD 1++#define R_RISCV_NONE 0+#define R_RISCV_32 1+#define R_RISCV_64 2+#define R_RISCV_RELATIVE 3+#define R_RISCV_COPY 4+#define R_RISCV_JUMP_SLOT 5+#define R_RISCV_TLS_DTPMOD32 6+#define R_RISCV_TLS_DTPMOD64 7+#define R_RISCV_TLS_DTPREL32 8+#define R_RISCV_TLS_DTPREL64 9+#define R_RISCV_TLS_TPREL32 10+#define R_RISCV_TLS_TPREL64 11+#define R_RISCV_TLSDESC 12++#define R_RISCV_BRANCH 16+#define R_RISCV_JAL 17+#define R_RISCV_CALL 18+#define R_RISCV_CALL_PLT 19+#define R_RISCV_GOT_HI20 20+#define R_RISCV_TLS_GOT_HI20 21+#define R_RISCV_TLS_GD_HI20 22+#define R_RISCV_PCREL_HI20 23+#define R_RISCV_PCREL_LO12_I 24+#define R_RISCV_PCREL_LO12_S 25+#define R_RISCV_HI20 26+#define R_RISCV_LO12_I 27+#define R_RISCV_LO12_S 28+#define R_RISCV_TPREL_HI20 29+#define R_RISCV_TPREL_LO12_I 30+#define R_RISCV_TPREL_LO12_S 31+#define R_RISCV_TPREL_ADD 32+#define R_RISCV_ADD8 33+#define R_RISCV_ADD16 34+#define R_RISCV_ADD32 35+#define R_RISCV_ADD64 36+#define R_RISCV_SUB8 37+#define R_RISCV_SUB16 38+#define R_RISCV_SUB32 39+#define R_RISCV_SUB64 40+#define R_RISCV_GOT32_PCREL 41+#define R_RISCV_ALIGN 43+#define R_RISCV_RVC_BRANCH 44+#define R_RISCV_RVC_JUMP 45+#define R_RISCV_RVC_LUI 46+#define R_RISCV_RELAX 51+#define R_RISCV_SUB6 52+#define R_RISCV_SET6 53+#define R_RISCV_SET8 54+#define R_RISCV_SET16 55+#define R_RISCV_SET32 56+#define R_RISCV_32_PCREL 57+#define R_RISCV_IRELATIVE 58+#define R_RISCV_PLT32 59+#define R_RISCV_SET_ULEB128 60+#define R_RISCV_SUB_ULEB128 61+#define R_RISCV_TLSDESC_HI20 62+#define R_RISCV_TLSDESC_LOAD_LO12 63+#define R_RISCV_TLSDESC_ADD_LO12 64+#define R_RISCV_TLSDESC_CALL 65++#define EF_LARCH_ABI_MODIFIER_MASK 0x07+#define EF_LARCH_ABI_SOFT_FLOAT 0x01+#define EF_LARCH_ABI_SINGLE_FLOAT 0x02+#define EF_LARCH_ABI_DOUBLE_FLOAT 0x03+#define EF_LARCH_OBJABI_V1 0x40++#define R_LARCH_NONE 0+#define R_LARCH_32 1+#define R_LARCH_64 2+#define R_LARCH_RELATIVE 3+#define R_LARCH_COPY 4+#define R_LARCH_JUMP_SLOT 5+#define R_LARCH_TLS_DTPMOD32 6+#define R_LARCH_TLS_DTPMOD64 7+#define R_LARCH_TLS_DTPREL32 8+#define R_LARCH_TLS_DTPREL64 9+#define R_LARCH_TLS_TPREL32 10+#define R_LARCH_TLS_TPREL64 11+#define R_LARCH_IRELATIVE 12+#define R_LARCH_MARK_LA 20+#define R_LARCH_MARK_PCREL 21+#define R_LARCH_SOP_PUSH_PCREL 22+#define R_LARCH_SOP_PUSH_ABSOLUTE 23+#define R_LARCH_SOP_PUSH_DUP 24+#define R_LARCH_SOP_PUSH_GPREL 25+#define R_LARCH_SOP_PUSH_TLS_TPREL 26+#define R_LARCH_SOP_PUSH_TLS_GOT 27+#define R_LARCH_SOP_PUSH_TLS_GD 28+#define R_LARCH_SOP_PUSH_PLT_PCREL 29+#define R_LARCH_SOP_ASSERT 30+#define R_LARCH_SOP_NOT 31+#define R_LARCH_SOP_SUB 32+#define R_LARCH_SOP_SL 33+#define R_LARCH_SOP_SR 34+#define R_LARCH_SOP_ADD 35+#define R_LARCH_SOP_AND 36+#define R_LARCH_SOP_IF_ELSE 37+#define R_LARCH_SOP_POP_32_S_10_5 38+#define R_LARCH_SOP_POP_32_U_10_12 39+#define R_LARCH_SOP_POP_32_S_10_12 40+#define R_LARCH_SOP_POP_32_S_10_16 41+#define R_LARCH_SOP_POP_32_S_10_16_S2 42+#define R_LARCH_SOP_POP_32_S_5_20 43+#define R_LARCH_SOP_POP_32_S_0_5_10_16_S2 44+#define R_LARCH_SOP_POP_32_S_0_10_10_16_S2 45+#define R_LARCH_SOP_POP_32_U 46+#define R_LARCH_ADD8 47+#define R_LARCH_ADD16 48+#define R_LARCH_ADD24 49+#define R_LARCH_ADD32 50+#define R_LARCH_ADD64 51+#define R_LARCH_SUB8 52+#define R_LARCH_SUB16 53+#define R_LARCH_SUB24 54+#define R_LARCH_SUB32 55+#define R_LARCH_SUB64 56+#define R_LARCH_GNU_VTINHERIT 57+#define R_LARCH_GNU_VTENTRY 58+#define R_LARCH_B16 64+#define R_LARCH_B21 65+#define R_LARCH_B26 66+#define R_LARCH_ABS_HI20 67+#define R_LARCH_ABS_LO12 68+#define R_LARCH_ABS64_LO20 69+#define R_LARCH_ABS64_HI12 70+#define R_LARCH_PCALA_HI20 71+#define R_LARCH_PCALA_LO12 72+#define R_LARCH_PCALA64_LO20 73+#define R_LARCH_PCALA64_HI12 74+#define R_LARCH_GOT_PC_HI20 75+#define R_LARCH_GOT_PC_LO12 76+#define R_LARCH_GOT64_PC_LO20 77+#define R_LARCH_GOT64_PC_HI12 78+#define R_LARCH_GOT_HI20 79+#define R_LARCH_GOT_LO12 80+#define R_LARCH_GOT64_LO20 81+#define R_LARCH_GOT64_HI12 82+#define R_LARCH_TLS_LE_HI20 83+#define R_LARCH_TLS_LE_LO12 84+#define R_LARCH_TLS_LE64_LO20 85+#define R_LARCH_TLS_LE64_HI12 86+#define R_LARCH_TLS_IE_PC_HI20 87+#define R_LARCH_TLS_IE_PC_LO12 88+#define R_LARCH_TLS_IE64_PC_LO20 89+#define R_LARCH_TLS_IE64_PC_HI12 90+#define R_LARCH_TLS_IE_HI20 91+#define R_LARCH_TLS_IE_LO12 92+#define R_LARCH_TLS_IE64_LO20 93+#define R_LARCH_TLS_IE64_HI12 94+#define R_LARCH_TLS_LD_PC_HI20 95+#define R_LARCH_TLS_LD_HI20 96+#define R_LARCH_TLS_GD_PC_HI20 97+#define R_LARCH_TLS_GD_HI20 98+#define R_LARCH_32_PCREL 99+#define R_LARCH_RELAX 100++#ifdef __cplusplus+}+#endif+++#endif
@@ -0,0 +1,80 @@+#ifndef _ENDIAN_H+#define _ENDIAN_H++#include <features.h>++#define __NEED_uint16_t+#define __NEED_uint32_t+#define __NEED_uint64_t++#include <bits/alltypes.h>++#define __PDP_ENDIAN 3412++#define BIG_ENDIAN __BIG_ENDIAN+#define LITTLE_ENDIAN __LITTLE_ENDIAN+#define PDP_ENDIAN __PDP_ENDIAN+#define BYTE_ORDER __BYTE_ORDER++static __inline uint16_t __bswap16(uint16_t __x)+{+ return __x<<8 | __x>>8;+}++static __inline uint32_t __bswap32(uint32_t __x)+{+ return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;+}++static __inline uint64_t __bswap64(uint64_t __x)+{+ return __bswap32(__x)+0ULL<<32 | __bswap32(__x>>32);+}++#if __BYTE_ORDER == __LITTLE_ENDIAN+#define htobe16(x) __bswap16(x)+#define be16toh(x) __bswap16(x)+#define htobe32(x) __bswap32(x)+#define be32toh(x) __bswap32(x)+#define htobe64(x) __bswap64(x)+#define be64toh(x) __bswap64(x)+#define htole16(x) (uint16_t)(x)+#define le16toh(x) (uint16_t)(x)+#define htole32(x) (uint32_t)(x)+#define le32toh(x) (uint32_t)(x)+#define htole64(x) (uint64_t)(x)+#define le64toh(x) (uint64_t)(x)+#else+#define htobe16(x) (uint16_t)(x)+#define be16toh(x) (uint16_t)(x)+#define htobe32(x) (uint32_t)(x)+#define be32toh(x) (uint32_t)(x)+#define htobe64(x) (uint64_t)(x)+#define be64toh(x) (uint64_t)(x)+#define htole16(x) __bswap16(x)+#define le16toh(x) __bswap16(x)+#define htole32(x) __bswap32(x)+#define le32toh(x) __bswap32(x)+#define htole64(x) __bswap64(x)+#define le64toh(x) __bswap64(x)+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#if __BYTE_ORDER == __LITTLE_ENDIAN+#define betoh16(x) __bswap16(x)+#define betoh32(x) __bswap32(x)+#define betoh64(x) __bswap64(x)+#define letoh16(x) (uint16_t)(x)+#define letoh32(x) (uint32_t)(x)+#define letoh64(x) (uint64_t)(x)+#else+#define betoh16(x) (uint16_t)(x)+#define betoh32(x) (uint32_t)(x)+#define betoh64(x) (uint64_t)(x)+#define letoh16(x) __bswap16(x)+#define letoh32(x) __bswap32(x)+#define letoh64(x) __bswap64(x)+#endif+#endif++#endif
@@ -0,0 +1,25 @@+#ifndef _ERR_H+#define _ERR_H++#include <features.h>+#include <stdarg.h>++#ifdef __cplusplus+extern "C" {+#endif++void warn(const char *, ...);+void vwarn(const char *, va_list);+void warnx(const char *, ...);+void vwarnx(const char *, va_list);++_Noreturn void err(int, const char *, ...);+_Noreturn void verr(int, const char *, va_list);+_Noreturn void errx(int, const char *, ...);+_Noreturn void verrx(int, const char *, va_list);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,27 @@+#ifndef _ERRNO_H+#define _ERRNO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <bits/errno.h>++#ifdef __GNUC__+__attribute__((const))+#endif+int *__errno_location(void);+#define errno (*__errno_location())++#ifdef _GNU_SOURCE+extern char *program_invocation_short_name, *program_invocation_name;+#endif++#ifdef __cplusplus+}+#endif++#endif+
@@ -0,0 +1,218 @@+#ifndef _FCNTL_H+#define _FCNTL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_off_t+#define __NEED_pid_t+#define __NEED_mode_t++#ifdef _GNU_SOURCE+#define __NEED_size_t+#define __NEED_ssize_t+#define __NEED_struct_iovec+#endif++#include <bits/alltypes.h>++#include <bits/fcntl.h>++struct flock {+ short l_type;+ short l_whence;+ off_t l_start;+ off_t l_len;+ pid_t l_pid;+};++int creat(const char *, mode_t);+int fcntl(int, int, ...);+int open(const char *, int, ...);+int openat(int, const char *, int, ...);+int posix_fadvise(int, off_t, off_t, int);+int posix_fallocate(int, off_t, off_t);++#define O_SEARCH O_PATH+#define O_EXEC O_PATH+#define O_TTY_INIT 0++#define O_ACCMODE (03|O_SEARCH)+#define O_RDONLY 00+#define O_WRONLY 01+#define O_RDWR 02++#define F_OFD_GETLK 36+#define F_OFD_SETLK 37+#define F_OFD_SETLKW 38++#define F_DUPFD_CLOEXEC 1030++#define F_RDLCK 0+#define F_WRLCK 1+#define F_UNLCK 2++#define FD_CLOEXEC 1++#define AT_FDCWD (-100)+#define AT_SYMLINK_NOFOLLOW 0x100+#define AT_REMOVEDIR 0x200+#define AT_SYMLINK_FOLLOW 0x400+#define AT_EACCESS 0x200++#define POSIX_FADV_NORMAL 0+#define POSIX_FADV_RANDOM 1+#define POSIX_FADV_SEQUENTIAL 2+#define POSIX_FADV_WILLNEED 3+#ifndef POSIX_FADV_DONTNEED+#define POSIX_FADV_DONTNEED 4+#define POSIX_FADV_NOREUSE 5+#endif++#undef SEEK_SET+#undef SEEK_CUR+#undef SEEK_END+#define SEEK_SET 0+#define SEEK_CUR 1+#define SEEK_END 2++#ifndef S_IRUSR+#define S_ISUID 04000+#define S_ISGID 02000+#define S_ISVTX 01000+#define S_IRUSR 0400+#define S_IWUSR 0200+#define S_IXUSR 0100+#define S_IRWXU 0700+#define S_IRGRP 0040+#define S_IWGRP 0020+#define S_IXGRP 0010+#define S_IRWXG 0070+#define S_IROTH 0004+#define S_IWOTH 0002+#define S_IXOTH 0001+#define S_IRWXO 0007+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define AT_NO_AUTOMOUNT 0x800+#define AT_EMPTY_PATH 0x1000+#define AT_STATX_SYNC_TYPE 0x6000+#define AT_STATX_SYNC_AS_STAT 0x0000+#define AT_STATX_FORCE_SYNC 0x2000+#define AT_STATX_DONT_SYNC 0x4000+#define AT_RECURSIVE 0x8000++#define FAPPEND O_APPEND+#define FFSYNC O_SYNC+#define FASYNC O_ASYNC+#define FNONBLOCK O_NONBLOCK+#define FNDELAY O_NDELAY++#define F_OK 0+#define R_OK 4+#define W_OK 2+#define X_OK 1+#define F_ULOCK 0+#define F_LOCK 1+#define F_TLOCK 2+#define F_TEST 3++#define F_SETLEASE 1024+#define F_GETLEASE 1025+#define F_NOTIFY 1026+#define F_CANCELLK 1029+#define F_SETPIPE_SZ 1031+#define F_GETPIPE_SZ 1032+#define F_ADD_SEALS 1033+#define F_GET_SEALS 1034++#define F_SEAL_SEAL 0x0001+#define F_SEAL_SHRINK 0x0002+#define F_SEAL_GROW 0x0004+#define F_SEAL_WRITE 0x0008+#define F_SEAL_FUTURE_WRITE 0x0010++#define F_GET_RW_HINT 1035+#define F_SET_RW_HINT 1036+#define F_GET_FILE_RW_HINT 1037+#define F_SET_FILE_RW_HINT 1038++#define RWF_WRITE_LIFE_NOT_SET 0+#define RWH_WRITE_LIFE_NONE 1+#define RWH_WRITE_LIFE_SHORT 2+#define RWH_WRITE_LIFE_MEDIUM 3+#define RWH_WRITE_LIFE_LONG 4+#define RWH_WRITE_LIFE_EXTREME 5++#define DN_ACCESS 0x00000001+#define DN_MODIFY 0x00000002+#define DN_CREATE 0x00000004+#define DN_DELETE 0x00000008+#define DN_RENAME 0x00000010+#define DN_ATTRIB 0x00000020+#define DN_MULTISHOT 0x80000000++int lockf(int, int, off_t);+#endif++#if defined(_GNU_SOURCE)+#define F_OWNER_TID 0+#define F_OWNER_PID 1+#define F_OWNER_PGRP 2+#define F_OWNER_GID 2+struct file_handle {+ unsigned handle_bytes;+ int handle_type;+ unsigned char f_handle[];+};+struct f_owner_ex {+ int type;+ pid_t pid;+};+#define FALLOC_FL_KEEP_SIZE 1+#define FALLOC_FL_PUNCH_HOLE 2+#define MAX_HANDLE_SZ 128+#define SYNC_FILE_RANGE_WAIT_BEFORE 1+#define SYNC_FILE_RANGE_WRITE 2+#define SYNC_FILE_RANGE_WAIT_AFTER 4+#define SPLICE_F_MOVE 1+#define SPLICE_F_NONBLOCK 2+#define SPLICE_F_MORE 4+#define SPLICE_F_GIFT 8+int fallocate(int, int, off_t, off_t);+int name_to_handle_at(int, const char *, struct file_handle *, int *, int);+int open_by_handle_at(int, struct file_handle *, int);+ssize_t readahead(int, off_t, size_t);+int sync_file_range(int, off_t, off_t, unsigned);+ssize_t vmsplice(int, const struct iovec *, size_t, unsigned);+ssize_t splice(int, off_t *, int, off_t *, size_t, unsigned);+ssize_t tee(int, int, size_t, unsigned);+#define loff_t off_t+#endif++#if defined(_LARGEFILE64_SOURCE)+#define F_GETLK64 F_GETLK+#define F_SETLK64 F_SETLK+#define F_SETLKW64 F_SETLKW+#define flock64 flock+#define open64 open+#define openat64 openat+#define creat64 creat+#define lockf64 lockf+#define posix_fadvise64 posix_fadvise+#define posix_fallocate64 posix_fallocate+#define off64_t off_t+#if defined(_GNU_SOURCE)+#define fallocate64 fallocate+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,40 @@+#ifndef _FEATURES_H+#define _FEATURES_H++#if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)+#define _GNU_SOURCE 1+#endif++#if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)+#define _BSD_SOURCE 1+#endif++#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \+ && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \+ && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)+#define _BSD_SOURCE 1+#define _XOPEN_SOURCE 700+#endif++#if __STDC_VERSION__ >= 199901L+#define __restrict restrict+#elif !defined(__GNUC__)+#define __restrict+#endif++#if __STDC_VERSION__ >= 199901L || defined(__cplusplus)+#define __inline inline+#elif !defined(__GNUC__)+#define __inline+#endif++#if __STDC_VERSION__ >= 201112L+#elif defined(__GNUC__)+#define _Noreturn __attribute__((__noreturn__))+#else+#define _Noreturn+#endif++#define __REDIR(x,y) __typeof__(x) x __asm__(#y)++#endif
@@ -0,0 +1,28 @@+#ifndef _FENV_H+#define _FENV_H++#ifdef __cplusplus+extern "C" {+#endif++#include <bits/fenv.h>++int feclearexcept(int);+int fegetexceptflag(fexcept_t *, int);+int feraiseexcept(int);+int fesetexceptflag(const fexcept_t *, int);+int fetestexcept(int);++int fegetround(void);+int fesetround(int);++int fegetenv(fenv_t *);+int feholdexcept(fenv_t *);+int fesetenv(const fenv_t *);+int feupdateenv(const fenv_t *);++#ifdef __cplusplus+}+#endif+#endif+
@@ -0,0 +1,52 @@+#ifndef _FLOAT_H+#define _FLOAT_H++#ifdef __cplusplus+extern "C" {+#endif++int __flt_rounds(void);+#define FLT_ROUNDS (__flt_rounds())++#define FLT_RADIX 2++#define FLT_TRUE_MIN 1.40129846432481707092e-45F+#define FLT_MIN 1.17549435082228750797e-38F+#define FLT_MAX 3.40282346638528859812e+38F+#define FLT_EPSILON 1.1920928955078125e-07F++#define FLT_MANT_DIG 24+#define FLT_MIN_EXP (-125)+#define FLT_MAX_EXP 128+#define FLT_HAS_SUBNORM 1++#define FLT_DIG 6+#define FLT_DECIMAL_DIG 9+#define FLT_MIN_10_EXP (-37)+#define FLT_MAX_10_EXP 38++#define DBL_TRUE_MIN 4.94065645841246544177e-324+#define DBL_MIN 2.22507385850720138309e-308+#define DBL_MAX 1.79769313486231570815e+308+#define DBL_EPSILON 2.22044604925031308085e-16++#define DBL_MANT_DIG 53+#define DBL_MIN_EXP (-1021)+#define DBL_MAX_EXP 1024+#define DBL_HAS_SUBNORM 1++#define DBL_DIG 15+#define DBL_DECIMAL_DIG 17+#define DBL_MIN_10_EXP (-307)+#define DBL_MAX_10_EXP 308++#define LDBL_HAS_SUBNORM 1+#define LDBL_DECIMAL_DIG DECIMAL_DIG++#include <bits/float.h>++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,47 @@+#ifndef _FMTMSG_H+#define _FMTMSG_H++#ifdef __cplusplus+extern "C" {+#endif++#define MM_HARD 1+#define MM_SOFT 2+#define MM_FIRM 4++#define MM_APPL 8+#define MM_UTIL 16+#define MM_OPSYS 32++#define MM_RECOVER 64+#define MM_NRECOV 128++#define MM_PRINT 256+#define MM_CONSOLE 512++#define MM_NULLMC 0L++#define MM_HALT 1+#define MM_ERROR 2+#define MM_WARNING 3+#define MM_INFO 4+#define MM_NOSEV 0++#define MM_OK 0+#define MM_NOTOK (-1)+#define MM_NOMSG 1+#define MM_NOCON 4++#define MM_NULLLBL ((char*)0)+#define MM_NULLTXT ((char*)0)+#define MM_NULLACT ((char*)0)+#define MM_NULLTAG ((char*)0)+#define MM_NULLSEV 0++int fmtmsg(long, const char *, int, const char *, const char *, const char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,24 @@+#ifndef _FNMATCH_H+#define _FNMATCH_H++#ifdef __cplusplus+extern "C" {+#endif++#define FNM_PATHNAME 0x1+#define FNM_NOESCAPE 0x2+#define FNM_PERIOD 0x4+#define FNM_LEADING_DIR 0x8 +#define FNM_CASEFOLD 0x10+#define FNM_FILE_NAME FNM_PATHNAME++#define FNM_NOMATCH 1+#define FNM_NOSYS (-1)++int fnmatch(const char *, const char *, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,41 @@+#ifndef _FTW_H+#define _FTW_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <sys/stat.h>++#define FTW_F 1+#define FTW_D 2+#define FTW_DNR 3+#define FTW_NS 4+#define FTW_SL 5+#define FTW_DP 6+#define FTW_SLN 7++#define FTW_PHYS 1+#define FTW_MOUNT 2+#define FTW_CHDIR 4+#define FTW_DEPTH 8++struct FTW {+ int base;+ int level;+};++int ftw(const char *, int (*)(const char *, const struct stat *, int), int);+int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *), int, int);++#if defined(_LARGEFILE64_SOURCE)+#define ftw64 ftw+#define nftw64 nftw+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,30 @@+#ifndef _GETOPT_H+#define _GETOPT_H++#ifdef __cplusplus+extern "C" {+#endif++int getopt(int, char * const [], const char *);+extern char *optarg;+extern int optind, opterr, optopt, optreset;++struct option {+ const char *name;+ int has_arg;+ int *flag;+ int val;+};++int getopt_long(int, char *const *, const char *, const struct option *, int *);+int getopt_long_only(int, char *const *, const char *, const struct option *, int *);++#define no_argument 0+#define required_argument 1+#define optional_argument 2++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,52 @@+#ifndef _GLOB_H+#define _GLOB_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t++#include <bits/alltypes.h>++typedef struct {+ size_t gl_pathc;+ char **gl_pathv;+ size_t gl_offs;+ int __dummy1;+ void *__dummy2[5];+} glob_t;++int glob(const char *__restrict, int, int (*)(const char *, int), glob_t *__restrict);+void globfree(glob_t *);++#define GLOB_ERR 0x01+#define GLOB_MARK 0x02+#define GLOB_NOSORT 0x04+#define GLOB_DOOFFS 0x08+#define GLOB_NOCHECK 0x10+#define GLOB_APPEND 0x20+#define GLOB_NOESCAPE 0x40+#define GLOB_PERIOD 0x80++#define GLOB_TILDE 0x1000+#define GLOB_TILDE_CHECK 0x4000++#define GLOB_NOSPACE 1+#define GLOB_ABORTED 2+#define GLOB_NOMATCH 3+#define GLOB_NOSYS 4++#if defined(_LARGEFILE64_SOURCE)+#define glob64 glob+#define globfree64 globfree+#define glob64_t glob_t+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,53 @@+#ifndef _GRP_H+#define _GRP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_gid_t++#ifdef _GNU_SOURCE+#define __NEED_FILE+#endif++#include <bits/alltypes.h>++struct group {+ char *gr_name;+ char *gr_passwd;+ gid_t gr_gid;+ char **gr_mem;+};++struct group *getgrgid(gid_t);+struct group *getgrnam(const char *);++int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);+int getgrnam_r(const char *, struct group *, char *, size_t, struct group **);++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+struct group *getgrent(void);+void endgrent(void);+void setgrent(void);+#endif++#ifdef _GNU_SOURCE+struct group *fgetgrent(FILE *);+int putgrent(const struct group *, FILE *);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int getgrouplist(const char *, gid_t, gid_t *, int *);+int setgroups(size_t, const gid_t *);+int initgroups(const char *, gid_t);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,24 @@+#ifndef _ICONV_H+#define _ICONV_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t++#include <bits/alltypes.h>++typedef void *iconv_t;++iconv_t iconv_open(const char *, const char *);+size_t iconv(iconv_t, char **__restrict, size_t *__restrict, char **__restrict, size_t *__restrict);+int iconv_close(iconv_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,35 @@+#ifndef _IFADDRS_H+#define _IFADDRS_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <netinet/in.h>+#include <sys/socket.h>++struct ifaddrs {+ struct ifaddrs *ifa_next;+ char *ifa_name;+ unsigned ifa_flags;+ struct sockaddr *ifa_addr;+ struct sockaddr *ifa_netmask;+ union {+ struct sockaddr *ifu_broadaddr;+ struct sockaddr *ifu_dstaddr;+ } ifa_ifu;+ void *ifa_data;+};+#define ifa_broadaddr ifa_ifu.ifu_broadaddr+#define ifa_dstaddr ifa_ifu.ifu_dstaddr++void freeifaddrs(struct ifaddrs *);+int getifaddrs(struct ifaddrs **);++#ifdef __cplusplus+}+#endif++#endif+
@@ -0,0 +1,229 @@+#ifndef _INTTYPES_H+#define _INTTYPES_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <stdint.h>++#define __NEED_wchar_t+#include <bits/alltypes.h>++typedef struct { intmax_t quot, rem; } imaxdiv_t;++intmax_t imaxabs(intmax_t);+imaxdiv_t imaxdiv(intmax_t, intmax_t);++intmax_t strtoimax(const char *__restrict, char **__restrict, int);+uintmax_t strtoumax(const char *__restrict, char **__restrict, int);++intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);+uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);++#if UINTPTR_MAX == UINT64_MAX+#define __PRI64 "l"+#define __PRIPTR "l"+#else+#define __PRI64 "ll"+#define __PRIPTR ""+#endif++#define PRId8 "d"+#define PRId16 "d"+#define PRId32 "d"+#define PRId64 __PRI64 "d"++#define PRIdLEAST8 "d"+#define PRIdLEAST16 "d"+#define PRIdLEAST32 "d"+#define PRIdLEAST64 __PRI64 "d"++#define PRIdFAST8 "d"+#define PRIdFAST16 "d"+#define PRIdFAST32 "d"+#define PRIdFAST64 __PRI64 "d"++#define PRIi8 "i"+#define PRIi16 "i"+#define PRIi32 "i"+#define PRIi64 __PRI64 "i"++#define PRIiLEAST8 "i"+#define PRIiLEAST16 "i"+#define PRIiLEAST32 "i"+#define PRIiLEAST64 __PRI64 "i"++#define PRIiFAST8 "i"+#define PRIiFAST16 "i"+#define PRIiFAST32 "i"+#define PRIiFAST64 __PRI64 "i"++#define PRIo8 "o"+#define PRIo16 "o"+#define PRIo32 "o"+#define PRIo64 __PRI64 "o"++#define PRIoLEAST8 "o"+#define PRIoLEAST16 "o"+#define PRIoLEAST32 "o"+#define PRIoLEAST64 __PRI64 "o"++#define PRIoFAST8 "o"+#define PRIoFAST16 "o"+#define PRIoFAST32 "o"+#define PRIoFAST64 __PRI64 "o"++#define PRIu8 "u"+#define PRIu16 "u"+#define PRIu32 "u"+#define PRIu64 __PRI64 "u"++#define PRIuLEAST8 "u"+#define PRIuLEAST16 "u"+#define PRIuLEAST32 "u"+#define PRIuLEAST64 __PRI64 "u"++#define PRIuFAST8 "u"+#define PRIuFAST16 "u"+#define PRIuFAST32 "u"+#define PRIuFAST64 __PRI64 "u"++#define PRIx8 "x"+#define PRIx16 "x"+#define PRIx32 "x"+#define PRIx64 __PRI64 "x"++#define PRIxLEAST8 "x"+#define PRIxLEAST16 "x"+#define PRIxLEAST32 "x"+#define PRIxLEAST64 __PRI64 "x"++#define PRIxFAST8 "x"+#define PRIxFAST16 "x"+#define PRIxFAST32 "x"+#define PRIxFAST64 __PRI64 "x"++#define PRIX8 "X"+#define PRIX16 "X"+#define PRIX32 "X"+#define PRIX64 __PRI64 "X"++#define PRIXLEAST8 "X"+#define PRIXLEAST16 "X"+#define PRIXLEAST32 "X"+#define PRIXLEAST64 __PRI64 "X"++#define PRIXFAST8 "X"+#define PRIXFAST16 "X"+#define PRIXFAST32 "X"+#define PRIXFAST64 __PRI64 "X"++#define PRIdMAX __PRI64 "d"+#define PRIiMAX __PRI64 "i"+#define PRIoMAX __PRI64 "o"+#define PRIuMAX __PRI64 "u"+#define PRIxMAX __PRI64 "x"+#define PRIXMAX __PRI64 "X"++#define PRIdPTR __PRIPTR "d"+#define PRIiPTR __PRIPTR "i"+#define PRIoPTR __PRIPTR "o"+#define PRIuPTR __PRIPTR "u"+#define PRIxPTR __PRIPTR "x"+#define PRIXPTR __PRIPTR "X"++#define SCNd8 "hhd"+#define SCNd16 "hd"+#define SCNd32 "d"+#define SCNd64 __PRI64 "d"++#define SCNdLEAST8 "hhd"+#define SCNdLEAST16 "hd"+#define SCNdLEAST32 "d"+#define SCNdLEAST64 __PRI64 "d"++#define SCNdFAST8 "hhd"+#define SCNdFAST16 "d"+#define SCNdFAST32 "d"+#define SCNdFAST64 __PRI64 "d"++#define SCNi8 "hhi"+#define SCNi16 "hi"+#define SCNi32 "i"+#define SCNi64 __PRI64 "i"++#define SCNiLEAST8 "hhi"+#define SCNiLEAST16 "hi"+#define SCNiLEAST32 "i"+#define SCNiLEAST64 __PRI64 "i"++#define SCNiFAST8 "hhi"+#define SCNiFAST16 "i"+#define SCNiFAST32 "i"+#define SCNiFAST64 __PRI64 "i"++#define SCNu8 "hhu"+#define SCNu16 "hu"+#define SCNu32 "u"+#define SCNu64 __PRI64 "u"++#define SCNuLEAST8 "hhu"+#define SCNuLEAST16 "hu"+#define SCNuLEAST32 "u"+#define SCNuLEAST64 __PRI64 "u"++#define SCNuFAST8 "hhu"+#define SCNuFAST16 "u"+#define SCNuFAST32 "u"+#define SCNuFAST64 __PRI64 "u"++#define SCNo8 "hho"+#define SCNo16 "ho"+#define SCNo32 "o"+#define SCNo64 __PRI64 "o"++#define SCNoLEAST8 "hho"+#define SCNoLEAST16 "ho"+#define SCNoLEAST32 "o"+#define SCNoLEAST64 __PRI64 "o"++#define SCNoFAST8 "hho"+#define SCNoFAST16 "o"+#define SCNoFAST32 "o"+#define SCNoFAST64 __PRI64 "o"++#define SCNx8 "hhx"+#define SCNx16 "hx"+#define SCNx32 "x"+#define SCNx64 __PRI64 "x"++#define SCNxLEAST8 "hhx"+#define SCNxLEAST16 "hx"+#define SCNxLEAST32 "x"+#define SCNxLEAST64 __PRI64 "x"++#define SCNxFAST8 "hhx"+#define SCNxFAST16 "x"+#define SCNxFAST32 "x"+#define SCNxFAST64 __PRI64 "x"++#define SCNdMAX __PRI64 "d"+#define SCNiMAX __PRI64 "i"+#define SCNoMAX __PRI64 "o"+#define SCNuMAX __PRI64 "u"+#define SCNxMAX __PRI64 "x"++#define SCNdPTR __PRIPTR "d"+#define SCNiPTR __PRIPTR "i"+#define SCNoPTR __PRIPTR "o"+#define SCNuPTR __PRIPTR "u"+#define SCNxPTR __PRIPTR "x"++#ifdef __cplusplus+}+#endif++#endif+
@@ -0,0 +1,20 @@+#ifndef _ISO646_H+#define _ISO646_H++#ifndef __cplusplus++#define and &&+#define and_eq &=+#define bitand &+#define bitor |+#define compl ~+#define not !+#define not_eq !=+#define or ||+#define or_eq |=+#define xor ^+#define xor_eq ^=++#endif++#endif
@@ -0,0 +1,98 @@+#ifndef _LANGINFO_H+#define _LANGINFO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <nl_types.h>++#define __NEED_locale_t++#include <bits/alltypes.h>++#define ABDAY_1 0x20000+#define ABDAY_2 0x20001+#define ABDAY_3 0x20002+#define ABDAY_4 0x20003+#define ABDAY_5 0x20004+#define ABDAY_6 0x20005+#define ABDAY_7 0x20006++#define DAY_1 0x20007+#define DAY_2 0x20008+#define DAY_3 0x20009+#define DAY_4 0x2000A+#define DAY_5 0x2000B+#define DAY_6 0x2000C+#define DAY_7 0x2000D++#define ABMON_1 0x2000E+#define ABMON_2 0x2000F+#define ABMON_3 0x20010+#define ABMON_4 0x20011+#define ABMON_5 0x20012+#define ABMON_6 0x20013+#define ABMON_7 0x20014+#define ABMON_8 0x20015+#define ABMON_9 0x20016+#define ABMON_10 0x20017+#define ABMON_11 0x20018+#define ABMON_12 0x20019++#define MON_1 0x2001A+#define MON_2 0x2001B+#define MON_3 0x2001C+#define MON_4 0x2001D+#define MON_5 0x2001E+#define MON_6 0x2001F+#define MON_7 0x20020+#define MON_8 0x20021+#define MON_9 0x20022+#define MON_10 0x20023+#define MON_11 0x20024+#define MON_12 0x20025++#define AM_STR 0x20026+#define PM_STR 0x20027++#define D_T_FMT 0x20028+#define D_FMT 0x20029+#define T_FMT 0x2002A+#define T_FMT_AMPM 0x2002B++#define ERA 0x2002C+#define ERA_D_FMT 0x2002E+#define ALT_DIGITS 0x2002F+#define ERA_D_T_FMT 0x20030+#define ERA_T_FMT 0x20031++#define CODESET 14++#define CRNCYSTR 0x4000F++#define RADIXCHAR 0x10000+#define THOUSEP 0x10001+#define YESEXPR 0x50000+#define NOEXPR 0x50001++#define _NL_LOCALE_NAME(cat) (((cat)<<16) | 0xffff)++#if defined(_GNU_SOURCE)+#define NL_LOCALE_NAME(cat) _NL_LOCALE_NAME(cat)+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define YESSTR 0x50002+#define NOSTR 0x50003+#endif++char *nl_langinfo(nl_item);+char *nl_langinfo_l(nl_item, locale_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,1 @@+#include <utmp.h>
@@ -0,0 +1,15 @@+#ifndef _LIBGEN_H+#define _LIBGEN_H++#ifdef __cplusplus+extern "C" {+#endif++char *dirname(char *);+char *basename(char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,33 @@+#ifndef _LIBINTL_H+#define _LIBINTL_H++#ifdef __cplusplus+extern "C" {+#endif++#define __USE_GNU_GETTEXT 1+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1)++#if __GNUC__ >= 3+#define __fa(n) __attribute__ ((__format_arg__ (n)))+#else+#define __fa(n)+#endif++char *gettext(const char *) __fa(1);+char *dgettext(const char *, const char *) __fa(2);+char *dcgettext(const char *, const char *, int) __fa(2);+char *ngettext(const char *, const char *, unsigned long) __fa(1) __fa(2);+char *dngettext(const char *, const char *, const char *, unsigned long) __fa(2) __fa(3);+char *dcngettext(const char *, const char *, const char *, unsigned long, int) __fa(2) __fa(3);+char *textdomain(const char *);+char *bindtextdomain (const char *, const char *);+char *bind_textdomain_codeset(const char *, const char *);++#undef __fa++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,166 @@+#ifndef _LIMITS_H+#define _LIMITS_H++#include <features.h>++#include <bits/alltypes.h> /* __LONG_MAX */++/* Support signed or unsigned plain-char */++#if '\xff' > 0+#define CHAR_MIN 0+#define CHAR_MAX 255+#else+#define CHAR_MIN (-128)+#define CHAR_MAX 127+#endif++#define CHAR_BIT 8+#define SCHAR_MIN (-128)+#define SCHAR_MAX 127+#define UCHAR_MAX 255+#define SHRT_MIN (-1-0x7fff)+#define SHRT_MAX 0x7fff+#define USHRT_MAX 0xffff+#define INT_MIN (-1-0x7fffffff)+#define INT_MAX 0x7fffffff+#define UINT_MAX 0xffffffffU+#define LONG_MIN (-LONG_MAX-1)+#define LONG_MAX __LONG_MAX+#define ULONG_MAX (2UL*LONG_MAX+1)+#define LLONG_MIN (-LLONG_MAX-1)+#define LLONG_MAX 0x7fffffffffffffffLL+#define ULLONG_MAX (2ULL*LLONG_MAX+1)++#define MB_LEN_MAX 4++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#include <bits/limits.h>++#define PIPE_BUF 4096+#define FILESIZEBITS 64+#ifndef NAME_MAX+#define NAME_MAX 255+#endif+#define PATH_MAX 4096+#define NGROUPS_MAX 32+#define ARG_MAX 131072+#define IOV_MAX 1024+#define SYMLOOP_MAX 40+#define WORD_BIT 32+#define SSIZE_MAX LONG_MAX+#define TZNAME_MAX 6+#define TTY_NAME_MAX 32+#define HOST_NAME_MAX 255++#if LONG_MAX == 0x7fffffffL+#define LONG_BIT 32+#else+#define LONG_BIT 64+#endif++/* Implementation choices... */++#define PTHREAD_KEYS_MAX 128+#define PTHREAD_STACK_MIN 2048+#define PTHREAD_DESTRUCTOR_ITERATIONS 4+#define SEM_VALUE_MAX 0x7fffffff+#define SEM_NSEMS_MAX 256+#define DELAYTIMER_MAX 0x7fffffff+#define MQ_PRIO_MAX 32768+#define LOGIN_NAME_MAX 256++/* Arbitrary numbers... */++#define BC_BASE_MAX 99+#define BC_DIM_MAX 2048+#define BC_SCALE_MAX 99+#define BC_STRING_MAX 1000+#define CHARCLASS_NAME_MAX 14+#define COLL_WEIGHTS_MAX 2+#define EXPR_NEST_MAX 32+#define LINE_MAX 4096+#define RE_DUP_MAX 255++#define NL_ARGMAX 9+#define NL_MSGMAX 32767+#define NL_SETMAX 255+#define NL_TEXTMAX 2048++#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)++#ifdef PAGESIZE+#define PAGE_SIZE PAGESIZE+#endif+#define NZERO 20+#define NL_LANGMAX 32++#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)++#define NL_NMAX 16++#endif++/* POSIX/SUS requirements follow. These numbers come directly+ * from SUS and have nothing to do with the host system. */++#define _POSIX_AIO_LISTIO_MAX 2+#define _POSIX_AIO_MAX 1+#define _POSIX_ARG_MAX 4096+#define _POSIX_CHILD_MAX 25+#define _POSIX_CLOCKRES_MIN 20000000+#define _POSIX_DELAYTIMER_MAX 32+#define _POSIX_HOST_NAME_MAX 255+#define _POSIX_LINK_MAX 8+#define _POSIX_LOGIN_NAME_MAX 9+#define _POSIX_MAX_CANON 255+#define _POSIX_MAX_INPUT 255+#define _POSIX_MQ_OPEN_MAX 8+#define _POSIX_MQ_PRIO_MAX 32+#define _POSIX_NAME_MAX 14+#define _POSIX_NGROUPS_MAX 8+#define _POSIX_OPEN_MAX 20+#define _POSIX_PATH_MAX 256+#define _POSIX_PIPE_BUF 512+#define _POSIX_RE_DUP_MAX 255+#define _POSIX_RTSIG_MAX 8+#define _POSIX_SEM_NSEMS_MAX 256+#define _POSIX_SEM_VALUE_MAX 32767+#define _POSIX_SIGQUEUE_MAX 32+#define _POSIX_SSIZE_MAX 32767+#define _POSIX_STREAM_MAX 8+#define _POSIX_SS_REPL_MAX 4+#define _POSIX_SYMLINK_MAX 255+#define _POSIX_SYMLOOP_MAX 8+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4+#define _POSIX_THREAD_KEYS_MAX 128+#define _POSIX_THREAD_THREADS_MAX 64+#define _POSIX_TIMER_MAX 32+#define _POSIX_TRACE_EVENT_NAME_MAX 30+#define _POSIX_TRACE_NAME_MAX 8+#define _POSIX_TRACE_SYS_MAX 8+#define _POSIX_TRACE_USER_EVENT_MAX 32+#define _POSIX_TTY_NAME_MAX 9+#define _POSIX_TZNAME_MAX 6+#define _POSIX2_BC_BASE_MAX 99+#define _POSIX2_BC_DIM_MAX 2048+#define _POSIX2_BC_SCALE_MAX 99+#define _POSIX2_BC_STRING_MAX 1000+#define _POSIX2_CHARCLASS_NAME_MAX 14+#define _POSIX2_COLL_WEIGHTS_MAX 2+#define _POSIX2_EXPR_NEST_MAX 32+#define _POSIX2_LINE_MAX 2048+#define _POSIX2_RE_DUP_MAX 255++#define _XOPEN_IOV_MAX 16+#define _XOPEN_NAME_MAX 255+#define _XOPEN_PATH_MAX 1024++#endif
@@ -0,0 +1,53 @@+#ifndef _LINK_H+#define _LINK_H++#ifdef __cplusplus+extern "C" {+#endif++#include <elf.h>+#define __NEED_size_t+#define __NEED_uint32_t+#include <bits/alltypes.h>++#if UINTPTR_MAX > 0xffffffff+#define ElfW(type) Elf64_ ## type+#else+#define ElfW(type) Elf32_ ## type+#endif++#include <bits/link.h>++struct dl_phdr_info {+ ElfW(Addr) dlpi_addr;+ const char *dlpi_name;+ const ElfW(Phdr) *dlpi_phdr;+ ElfW(Half) dlpi_phnum;+ unsigned long long int dlpi_adds;+ unsigned long long int dlpi_subs;+ size_t dlpi_tls_modid;+ void *dlpi_tls_data;+};++struct link_map {+ ElfW(Addr) l_addr;+ char *l_name;+ ElfW(Dyn) *l_ld;+ struct link_map *l_next, *l_prev;+};++struct r_debug {+ int r_version;+ struct link_map *r_map;+ ElfW(Addr) r_brk;+ enum { RT_CONSISTENT, RT_ADD, RT_DELETE } r_state;+ ElfW(Addr) r_ldbase;+};++int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *), void *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,88 @@+#ifndef _LOCALE_H+#define _LOCALE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define LC_CTYPE 0+#define LC_NUMERIC 1+#define LC_TIME 2+#define LC_COLLATE 3+#define LC_MONETARY 4+#define LC_MESSAGES 5+#define LC_ALL 6++struct lconv {+ char *decimal_point;+ char *thousands_sep;+ char *grouping;++ char *int_curr_symbol;+ char *currency_symbol;+ char *mon_decimal_point;+ char *mon_thousands_sep;+ char *mon_grouping;+ char *positive_sign;+ char *negative_sign;+ char int_frac_digits;+ char frac_digits;+ char p_cs_precedes;+ char p_sep_by_space;+ char n_cs_precedes;+ char n_sep_by_space;+ char p_sign_posn;+ char n_sign_posn;+ char int_p_cs_precedes;+ char int_p_sep_by_space;+ char int_n_cs_precedes;+ char int_n_sep_by_space;+ char int_p_sign_posn;+ char int_n_sign_posn;+};+++char *setlocale (int, const char *);+struct lconv *localeconv(void);+++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#define __NEED_locale_t++#include <bits/alltypes.h>++#define LC_GLOBAL_LOCALE ((locale_t)-1)++#define LC_CTYPE_MASK (1<<LC_CTYPE)+#define LC_NUMERIC_MASK (1<<LC_NUMERIC)+#define LC_TIME_MASK (1<<LC_TIME)+#define LC_COLLATE_MASK (1<<LC_COLLATE)+#define LC_MONETARY_MASK (1<<LC_MONETARY)+#define LC_MESSAGES_MASK (1<<LC_MESSAGES)+#define LC_ALL_MASK 0x7fffffff++locale_t duplocale(locale_t);+void freelocale(locale_t);+locale_t newlocale(int, const char *, locale_t);+locale_t uselocale(locale_t);++#endif+++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,25 @@+#ifndef _MALLOC_H+#define _MALLOC_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_size_t++#include <bits/alltypes.h>++void *malloc (size_t);+void *calloc (size_t, size_t);+void *realloc (void *, size_t);+void free (void *);+void *valloc (size_t);+void *memalign(size_t, size_t);++size_t malloc_usable_size(void *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,442 @@+#ifndef _MATH_H+#define _MATH_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_float_t+#define __NEED_double_t+#include <bits/alltypes.h>++#if 100*__GNUC__+__GNUC_MINOR__ >= 303+#define NAN __builtin_nanf("")+#define INFINITY __builtin_inff()+#else+#define NAN (0.0f/0.0f)+#define INFINITY 1e5000f+#endif++#define HUGE_VALF INFINITY+#define HUGE_VAL ((double)INFINITY)+#define HUGE_VALL ((long double)INFINITY)++#define MATH_ERRNO 1+#define MATH_ERREXCEPT 2+#define math_errhandling 2++#define FP_ILOGBNAN (-1-0x7fffffff)+#define FP_ILOGB0 FP_ILOGBNAN++#define FP_NAN 0+#define FP_INFINITE 1+#define FP_ZERO 2+#define FP_SUBNORMAL 3+#define FP_NORMAL 4++#ifdef __FP_FAST_FMA+#define FP_FAST_FMA 1+#endif++#ifdef __FP_FAST_FMAF+#define FP_FAST_FMAF 1+#endif++#ifdef __FP_FAST_FMAL+#define FP_FAST_FMAL 1+#endif++int __fpclassify(double);+int __fpclassifyf(float);+int __fpclassifyl(long double);++static __inline unsigned __FLOAT_BITS(float __f)+{+ union {float __f; unsigned __i;} __u;+ __u.__f = __f;+ return __u.__i;+}+static __inline unsigned long long __DOUBLE_BITS(double __f)+{+ union {double __f; unsigned long long __i;} __u;+ __u.__f = __f;+ return __u.__i;+}++#define fpclassify(x) ( \+ sizeof(x) == sizeof(float) ? __fpclassifyf(x) : \+ sizeof(x) == sizeof(double) ? __fpclassify(x) : \+ __fpclassifyl(x) )++#define isinf(x) ( \+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) == 0x7f800000 : \+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) == 0x7ffULL<<52 : \+ __fpclassifyl(x) == FP_INFINITE)++#define isnan(x) ( \+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) > 0x7f800000 : \+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) > 0x7ffULL<<52 : \+ __fpclassifyl(x) == FP_NAN)++#define isnormal(x) ( \+ sizeof(x) == sizeof(float) ? ((__FLOAT_BITS(x)+0x00800000) & 0x7fffffff) >= 0x01000000 : \+ sizeof(x) == sizeof(double) ? ((__DOUBLE_BITS(x)+(1ULL<<52)) & -1ULL>>1) >= 1ULL<<53 : \+ __fpclassifyl(x) == FP_NORMAL)++#define isfinite(x) ( \+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) < 0x7f800000 : \+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) < 0x7ffULL<<52 : \+ __fpclassifyl(x) > FP_INFINITE)++int __signbit(double);+int __signbitf(float);+int __signbitl(long double);++#define signbit(x) ( \+ sizeof(x) == sizeof(float) ? (int)(__FLOAT_BITS(x)>>31) : \+ sizeof(x) == sizeof(double) ? (int)(__DOUBLE_BITS(x)>>63) : \+ __signbitl(x) )++#define isunordered(x,y) (isnan((x)) ? ((void)(y),1) : isnan((y)))++#define __ISREL_DEF(rel, op, type) \+static __inline int __is##rel(type __x, type __y) \+{ return !isunordered(__x,__y) && __x op __y; }++__ISREL_DEF(lessf, <, float_t)+__ISREL_DEF(less, <, double_t)+__ISREL_DEF(lessl, <, long double)+__ISREL_DEF(lessequalf, <=, float_t)+__ISREL_DEF(lessequal, <=, double_t)+__ISREL_DEF(lessequall, <=, long double)+__ISREL_DEF(lessgreaterf, !=, float_t)+__ISREL_DEF(lessgreater, !=, double_t)+__ISREL_DEF(lessgreaterl, !=, long double)+__ISREL_DEF(greaterf, >, float_t)+__ISREL_DEF(greater, >, double_t)+__ISREL_DEF(greaterl, >, long double)+__ISREL_DEF(greaterequalf, >=, float_t)+__ISREL_DEF(greaterequal, >=, double_t)+__ISREL_DEF(greaterequall, >=, long double)++#define __tg_pred_2(x, y, p) ( \+ sizeof((x)+(y)) == sizeof(float) ? p##f(x, y) : \+ sizeof((x)+(y)) == sizeof(double) ? p(x, y) : \+ p##l(x, y) )++#define isless(x, y) __tg_pred_2(x, y, __isless)+#define islessequal(x, y) __tg_pred_2(x, y, __islessequal)+#define islessgreater(x, y) __tg_pred_2(x, y, __islessgreater)+#define isgreater(x, y) __tg_pred_2(x, y, __isgreater)+#define isgreaterequal(x, y) __tg_pred_2(x, y, __isgreaterequal)++double acos(double);+float acosf(float);+long double acosl(long double);++double acosh(double);+float acoshf(float);+long double acoshl(long double);++double asin(double);+float asinf(float);+long double asinl(long double);++double asinh(double);+float asinhf(float);+long double asinhl(long double);++double atan(double);+float atanf(float);+long double atanl(long double);++double atan2(double, double);+float atan2f(float, float);+long double atan2l(long double, long double);++double atanh(double);+float atanhf(float);+long double atanhl(long double);++double cbrt(double);+float cbrtf(float);+long double cbrtl(long double);++double ceil(double);+float ceilf(float);+long double ceill(long double);++double copysign(double, double);+float copysignf(float, float);+long double copysignl(long double, long double);++double cos(double);+float cosf(float);+long double cosl(long double);++double cosh(double);+float coshf(float);+long double coshl(long double);++double erf(double);+float erff(float);+long double erfl(long double);++double erfc(double);+float erfcf(float);+long double erfcl(long double);++double exp(double);+float expf(float);+long double expl(long double);++double exp2(double);+float exp2f(float);+long double exp2l(long double);++double expm1(double);+float expm1f(float);+long double expm1l(long double);++double fabs(double);+float fabsf(float);+long double fabsl(long double);++double fdim(double, double);+float fdimf(float, float);+long double fdiml(long double, long double);++double floor(double);+float floorf(float);+long double floorl(long double);++double fma(double, double, double);+float fmaf(float, float, float);+long double fmal(long double, long double, long double);++double fmax(double, double);+float fmaxf(float, float);+long double fmaxl(long double, long double);++double fmin(double, double);+float fminf(float, float);+long double fminl(long double, long double);++double fmod(double, double);+float fmodf(float, float);+long double fmodl(long double, long double);++double frexp(double, int *);+float frexpf(float, int *);+long double frexpl(long double, int *);++double hypot(double, double);+float hypotf(float, float);+long double hypotl(long double, long double);++int ilogb(double);+int ilogbf(float);+int ilogbl(long double);++double ldexp(double, int);+float ldexpf(float, int);+long double ldexpl(long double, int);++double lgamma(double);+float lgammaf(float);+long double lgammal(long double);++long long llrint(double);+long long llrintf(float);+long long llrintl(long double);++long long llround(double);+long long llroundf(float);+long long llroundl(long double);++double log(double);+float logf(float);+long double logl(long double);++double log10(double);+float log10f(float);+long double log10l(long double);++double log1p(double);+float log1pf(float);+long double log1pl(long double);++double log2(double);+float log2f(float);+long double log2l(long double);++double logb(double);+float logbf(float);+long double logbl(long double);++long lrint(double);+long lrintf(float);+long lrintl(long double);++long lround(double);+long lroundf(float);+long lroundl(long double);++double modf(double, double *);+float modff(float, float *);+long double modfl(long double, long double *);++double nan(const char *);+float nanf(const char *);+long double nanl(const char *);++double nearbyint(double);+float nearbyintf(float);+long double nearbyintl(long double);++double nextafter(double, double);+float nextafterf(float, float);+long double nextafterl(long double, long double);++double nexttoward(double, long double);+float nexttowardf(float, long double);+long double nexttowardl(long double, long double);++double pow(double, double);+float powf(float, float);+long double powl(long double, long double);++double remainder(double, double);+float remainderf(float, float);+long double remainderl(long double, long double);++double remquo(double, double, int *);+float remquof(float, float, int *);+long double remquol(long double, long double, int *);++double rint(double);+float rintf(float);+long double rintl(long double);++double round(double);+float roundf(float);+long double roundl(long double);++double scalbln(double, long);+float scalblnf(float, long);+long double scalblnl(long double, long);++double scalbn(double, int);+float scalbnf(float, int);+long double scalbnl(long double, int);++double sin(double);+float sinf(float);+long double sinl(long double);++double sinh(double);+float sinhf(float);+long double sinhl(long double);++double sqrt(double);+float sqrtf(float);+long double sqrtl(long double);++double tan(double);+float tanf(float);+long double tanl(long double);++double tanh(double);+float tanhf(float);+long double tanhl(long double);++double tgamma(double);+float tgammaf(float);+long double tgammal(long double);++double trunc(double);+float truncf(float);+long double truncl(long double);+++#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE)+#undef MAXFLOAT+#define MAXFLOAT 3.40282346638528859812e+38F+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define M_E 2.7182818284590452354 /* e */+#define M_LOG2E 1.4426950408889634074 /* log_2 e */+#define M_LOG10E 0.43429448190325182765 /* log_10 e */+#define M_LN2 0.69314718055994530942 /* log_e 2 */+#define M_LN10 2.30258509299404568402 /* log_e 10 */+#define M_PI 3.14159265358979323846 /* pi */+#define M_PI_2 1.57079632679489661923 /* pi/2 */+#define M_PI_4 0.78539816339744830962 /* pi/4 */+#define M_1_PI 0.31830988618379067154 /* 1/pi */+#define M_2_PI 0.63661977236758134308 /* 2/pi */+#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */+#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */+#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */++extern int signgam;++double j0(double);+double j1(double);+double jn(int, double);++double y0(double);+double y1(double);+double yn(int, double);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define HUGE 3.40282346638528859812e+38F++double drem(double, double);+float dremf(float, float);++int finite(double);+int finitef(float);++double scalb(double, double);+float scalbf(float, float);++double significand(double);+float significandf(float);++double lgamma_r(double, int*);+float lgammaf_r(float, int*);++float j0f(float);+float j1f(float);+float jnf(int, float);++float y0f(float);+float y1f(float);+float ynf(int, float);+#endif++#ifdef _GNU_SOURCE+long double lgammal_r(long double, int*);++void sincos(double, double*, double*);+void sincosf(float, float*, float*);+void sincosl(long double, long double*, long double*);++double exp10(double);+float exp10f(float);+long double exp10l(long double);++double pow10(double);+float pow10f(float);+long double pow10l(long double);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,1 @@+#include <string.h>
@@ -0,0 +1,43 @@+#ifndef _MNTENT_H+#define _MNTENT_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_FILE+#include <bits/alltypes.h>++#define MOUNTED "/etc/mtab"++#define MNTTYPE_IGNORE "ignore"+#define MNTTYPE_NFS "nfs"+#define MNTTYPE_SWAP "swap"+#define MNTOPT_DEFAULTS "defaults"+#define MNTOPT_RO "ro"+#define MNTOPT_RW "rw"+#define MNTOPT_SUID "suid"+#define MNTOPT_NOSUID "nosuid"+#define MNTOPT_NOAUTO "noauto"++struct mntent {+ char *mnt_fsname;+ char *mnt_dir;+ char *mnt_type;+ char *mnt_opts;+ int mnt_freq;+ int mnt_passno;+};++FILE *setmntent(const char *, const char *);+int endmntent(FILE *);+struct mntent *getmntent(FILE *);+struct mntent *getmntent_r(FILE *, struct mntent *, char *, int);+int addmntent(FILE *, const struct mntent *);+char *hasmntopt(const struct mntent *, const char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,23 @@+#ifndef _MONETARY_H+#define _MONETARY_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_ssize_t+#define __NEED_size_t+#define __NEED_locale_t++#include <bits/alltypes.h>++ssize_t strfmon(char *__restrict, size_t, const char *__restrict, ...);+ssize_t strfmon_l(char *__restrict, size_t, locale_t, const char *__restrict, ...);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,41 @@+#ifndef _MQUEUE_H+#define _MQUEUE_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_ssize_t+#define __NEED_pthread_attr_t+#define __NEED_time_t+#define __NEED_struct_timespec+#include <bits/alltypes.h>++typedef int mqd_t;+struct mq_attr {+ long mq_flags, mq_maxmsg, mq_msgsize, mq_curmsgs, __unused[4];+};+struct sigevent;++int mq_close(mqd_t);+int mq_getattr(mqd_t, struct mq_attr *);+int mq_notify(mqd_t, const struct sigevent *);+mqd_t mq_open(const char *, int, ...);+ssize_t mq_receive(mqd_t, char *, size_t, unsigned *);+int mq_send(mqd_t, const char *, size_t, unsigned);+int mq_setattr(mqd_t, const struct mq_attr *__restrict, struct mq_attr *__restrict);+ssize_t mq_timedreceive(mqd_t, char *__restrict, size_t, unsigned *__restrict, const struct timespec *__restrict);+int mq_timedsend(mqd_t, const char *, size_t, unsigned, const struct timespec *);+int mq_unlink(const char *);++#if _REDIR_TIME64+__REDIR(mq_timedreceive, __mq_timedreceive_time64);+__REDIR(mq_timedsend, __mq_timedsend_time64);+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,55 @@+#ifndef _NET_ETHERNET_H+#define _NET_ETHERNET_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <sys/types.h>+#include <netinet/if_ether.h>++struct ether_addr {+ uint8_t ether_addr_octet[ETH_ALEN];+};++struct ether_header {+ uint8_t ether_dhost[ETH_ALEN];+ uint8_t ether_shost[ETH_ALEN];+ uint16_t ether_type;+};++#define ETHERTYPE_PUP 0x0200+#define ETHERTYPE_SPRITE 0x0500+#define ETHERTYPE_IP 0x0800+#define ETHERTYPE_ARP 0x0806+#define ETHERTYPE_REVARP 0x8035+#define ETHERTYPE_AT 0x809B+#define ETHERTYPE_AARP 0x80F3+#define ETHERTYPE_VLAN 0x8100+#define ETHERTYPE_IPX 0x8137+#define ETHERTYPE_IPV6 0x86dd+#define ETHERTYPE_LOOPBACK 0x9000+++#define ETHER_ADDR_LEN ETH_ALEN+#define ETHER_TYPE_LEN 2+#define ETHER_CRC_LEN 4+#define ETHER_HDR_LEN ETH_HLEN+#define ETHER_MIN_LEN (ETH_ZLEN + ETHER_CRC_LEN)+#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETHER_CRC_LEN)++#define ETHER_IS_VALID_LEN(foo) \+ ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN)++#define ETHERTYPE_TRAIL 0x1000+#define ETHERTYPE_NTRAILER 16++#define ETHERMTU ETH_DATA_LEN+#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN)++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,141 @@+#ifndef _NET_IF_H+#define _NET_IF_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define IF_NAMESIZE 16++struct if_nameindex {+ unsigned int if_index;+ char *if_name;+};++unsigned int if_nametoindex (const char *);+char *if_indextoname (unsigned int, char *);+struct if_nameindex *if_nameindex (void);+void if_freenameindex (struct if_nameindex *);+++++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#include <sys/socket.h>++#define IFF_UP 0x1+#define IFF_BROADCAST 0x2+#define IFF_DEBUG 0x4+#define IFF_LOOPBACK 0x8+#define IFF_POINTOPOINT 0x10+#define IFF_NOTRAILERS 0x20+#define IFF_RUNNING 0x40+#define IFF_NOARP 0x80+#define IFF_PROMISC 0x100+#define IFF_ALLMULTI 0x200+#define IFF_MASTER 0x400+#define IFF_SLAVE 0x800+#define IFF_MULTICAST 0x1000+#define IFF_PORTSEL 0x2000+#define IFF_AUTOMEDIA 0x4000+#define IFF_DYNAMIC 0x8000+#define IFF_LOWER_UP 0x10000+#define IFF_DORMANT 0x20000+#define IFF_ECHO 0x40000+#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST| \+ IFF_ECHO|IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)++struct ifaddr {+ struct sockaddr ifa_addr;+ union {+ struct sockaddr ifu_broadaddr;+ struct sockaddr ifu_dstaddr;+ } ifa_ifu;+ struct iface *ifa_ifp;+ struct ifaddr *ifa_next;+};++#define ifa_broadaddr ifa_ifu.ifu_broadaddr+#define ifa_dstaddr ifa_ifu.ifu_dstaddr++struct ifmap {+ unsigned long int mem_start;+ unsigned long int mem_end;+ unsigned short int base_addr;+ unsigned char irq;+ unsigned char dma;+ unsigned char port;+};++#define IFHWADDRLEN 6+#define IFNAMSIZ IF_NAMESIZE++struct ifreq {+ union {+ char ifrn_name[IFNAMSIZ];+ } ifr_ifrn;+ union {+ struct sockaddr ifru_addr;+ struct sockaddr ifru_dstaddr;+ struct sockaddr ifru_broadaddr;+ struct sockaddr ifru_netmask;+ struct sockaddr ifru_hwaddr;+ short int ifru_flags;+ int ifru_ivalue;+ int ifru_mtu;+ struct ifmap ifru_map;+ char ifru_slave[IFNAMSIZ];+ char ifru_newname[IFNAMSIZ];+ char *ifru_data;+ } ifr_ifru;+};++#define ifr_name ifr_ifrn.ifrn_name+#define ifr_hwaddr ifr_ifru.ifru_hwaddr+#define ifr_addr ifr_ifru.ifru_addr+#define ifr_dstaddr ifr_ifru.ifru_dstaddr+#define ifr_broadaddr ifr_ifru.ifru_broadaddr+#define ifr_netmask ifr_ifru.ifru_netmask+#define ifr_flags ifr_ifru.ifru_flags+#define ifr_metric ifr_ifru.ifru_ivalue+#define ifr_mtu ifr_ifru.ifru_mtu+#define ifr_map ifr_ifru.ifru_map+#define ifr_slave ifr_ifru.ifru_slave+#define ifr_data ifr_ifru.ifru_data+#define ifr_ifindex ifr_ifru.ifru_ivalue+#define ifr_bandwidth ifr_ifru.ifru_ivalue+#define ifr_qlen ifr_ifru.ifru_ivalue+#define ifr_newname ifr_ifru.ifru_newname+#define _IOT_ifreq _IOT(_IOTS(char),IFNAMSIZ,_IOTS(char),16,0,0)+#define _IOT_ifreq_short _IOT(_IOTS(char),IFNAMSIZ,_IOTS(short),1,0,0)+#define _IOT_ifreq_int _IOT(_IOTS(char),IFNAMSIZ,_IOTS(int),1,0,0)++struct ifconf {+ int ifc_len; + union {+ char *ifcu_buf;+ struct ifreq *ifcu_req;+ } ifc_ifcu;+};++#define ifc_buf ifc_ifcu.ifcu_buf+#define ifc_req ifc_ifcu.ifcu_req+#define _IOT_ifconf _IOT(_IOTS(struct ifconf),1,0,0,0,0)++#define __UAPI_DEF_IF_IFCONF 0+#define __UAPI_DEF_IF_IFMAP 0+#define __UAPI_DEF_IF_IFNAMSIZ 0+#define __UAPI_DEF_IF_IFREQ 0+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0++#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,142 @@+/* Nonstandard header */+#ifndef _NET_IF_ARP_H+#define _NET_IF_ARP_H+#ifdef __cplusplus+extern "C" {+#endif++#include <inttypes.h>+#include <sys/types.h>+#include <sys/socket.h>++#define MAX_ADDR_LEN 7++#define ARPOP_REQUEST 1+#define ARPOP_REPLY 2+#define ARPOP_RREQUEST 3+#define ARPOP_RREPLY 4+#define ARPOP_InREQUEST 8+#define ARPOP_InREPLY 9+#define ARPOP_NAK 10++struct arphdr {+ uint16_t ar_hrd;+ uint16_t ar_pro;+ uint8_t ar_hln;+ uint8_t ar_pln;+ uint16_t ar_op;+};+++#define ARPHRD_NETROM 0+#define ARPHRD_ETHER 1+#define ARPHRD_EETHER 2+#define ARPHRD_AX25 3+#define ARPHRD_PRONET 4+#define ARPHRD_CHAOS 5+#define ARPHRD_IEEE802 6+#define ARPHRD_ARCNET 7+#define ARPHRD_APPLETLK 8+#define ARPHRD_DLCI 15+#define ARPHRD_ATM 19+#define ARPHRD_METRICOM 23+#define ARPHRD_IEEE1394 24+#define ARPHRD_EUI64 27+#define ARPHRD_INFINIBAND 32+#define ARPHRD_SLIP 256+#define ARPHRD_CSLIP 257+#define ARPHRD_SLIP6 258+#define ARPHRD_CSLIP6 259+#define ARPHRD_RSRVD 260+#define ARPHRD_ADAPT 264+#define ARPHRD_ROSE 270+#define ARPHRD_X25 271+#define ARPHRD_HWX25 272+#define ARPHRD_CAN 280+#define ARPHRD_PPP 512+#define ARPHRD_CISCO 513+#define ARPHRD_HDLC ARPHRD_CISCO+#define ARPHRD_LAPB 516+#define ARPHRD_DDCMP 517+#define ARPHRD_RAWHDLC 518+#define ARPHRD_RAWIP 519++#define ARPHRD_TUNNEL 768+#define ARPHRD_TUNNEL6 769+#define ARPHRD_FRAD 770+#define ARPHRD_SKIP 771+#define ARPHRD_LOOPBACK 772+#define ARPHRD_LOCALTLK 773+#define ARPHRD_FDDI 774+#define ARPHRD_BIF 775+#define ARPHRD_SIT 776+#define ARPHRD_IPDDP 777+#define ARPHRD_IPGRE 778+#define ARPHRD_PIMREG 779+#define ARPHRD_HIPPI 780+#define ARPHRD_ASH 781+#define ARPHRD_ECONET 782+#define ARPHRD_IRDA 783+#define ARPHRD_FCPP 784+#define ARPHRD_FCAL 785+#define ARPHRD_FCPL 786+#define ARPHRD_FCFABRIC 787+#define ARPHRD_IEEE802_TR 800+#define ARPHRD_IEEE80211 801+#define ARPHRD_IEEE80211_PRISM 802+#define ARPHRD_IEEE80211_RADIOTAP 803+#define ARPHRD_IEEE802154 804+#define ARPHRD_IEEE802154_MONITOR 805+#define ARPHRD_PHONET 820+#define ARPHRD_PHONET_PIPE 821+#define ARPHRD_CAIF 822+#define ARPHRD_IP6GRE 823+#define ARPHRD_NETLINK 824+#define ARPHRD_6LOWPAN 825+#define ARPHRD_VSOCKMON 826++#define ARPHRD_VOID 0xFFFF+#define ARPHRD_NONE 0xFFFE++struct arpreq {+ struct sockaddr arp_pa;+ struct sockaddr arp_ha;+ int arp_flags;+ struct sockaddr arp_netmask;+ char arp_dev[16];+};++struct arpreq_old {+ struct sockaddr arp_pa;+ struct sockaddr arp_ha;+ int arp_flags;+ struct sockaddr arp_netmask;+};++#define ATF_COM 0x02+#define ATF_PERM 0x04+#define ATF_PUBL 0x08+#define ATF_USETRAILERS 0x10+#define ATF_NETMASK 0x20+#define ATF_DONTPUB 0x40+#define ATF_MAGIC 0x80++#define ARPD_UPDATE 0x01+#define ARPD_LOOKUP 0x02+#define ARPD_FLUSH 0x03++struct arpd_request {+ unsigned short req;+ uint32_t ip;+ unsigned long dev;+ unsigned long stamp;+ unsigned long updated;+ unsigned char ha[MAX_ADDR_LEN];+};++++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,124 @@+#ifndef _NET_ROUTE_H+#define _NET_ROUTE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <sys/socket.h>+#include <sys/types.h>+#include <netinet/in.h>+++struct rtentry {+ unsigned long int rt_pad1;+ struct sockaddr rt_dst;+ struct sockaddr rt_gateway;+ struct sockaddr rt_genmask;+ unsigned short int rt_flags;+ short int rt_pad2;+ unsigned long int rt_pad3;+ unsigned char rt_tos;+ unsigned char rt_class;+ short int rt_pad4[sizeof(long)/2-1];+ short int rt_metric;+ char *rt_dev;+ unsigned long int rt_mtu;+ unsigned long int rt_window;+ unsigned short int rt_irtt;+};++#define rt_mss rt_mtu+++struct in6_rtmsg {+ struct in6_addr rtmsg_dst;+ struct in6_addr rtmsg_src;+ struct in6_addr rtmsg_gateway;+ uint32_t rtmsg_type;+ uint16_t rtmsg_dst_len;+ uint16_t rtmsg_src_len;+ uint32_t rtmsg_metric;+ unsigned long int rtmsg_info;+ uint32_t rtmsg_flags;+ int rtmsg_ifindex;+};+++#define RTF_UP 0x0001+#define RTF_GATEWAY 0x0002++#define RTF_HOST 0x0004+#define RTF_REINSTATE 0x0008+#define RTF_DYNAMIC 0x0010+#define RTF_MODIFIED 0x0020+#define RTF_MTU 0x0040+#define RTF_MSS RTF_MTU+#define RTF_WINDOW 0x0080+#define RTF_IRTT 0x0100+#define RTF_REJECT 0x0200+#define RTF_STATIC 0x0400+#define RTF_XRESOLVE 0x0800+#define RTF_NOFORWARD 0x1000+#define RTF_THROW 0x2000+#define RTF_NOPMTUDISC 0x4000++#define RTF_DEFAULT 0x00010000+#define RTF_ALLONLINK 0x00020000+#define RTF_ADDRCONF 0x00040000++#define RTF_LINKRT 0x00100000+#define RTF_NONEXTHOP 0x00200000++#define RTF_CACHE 0x01000000+#define RTF_FLOW 0x02000000+#define RTF_POLICY 0x04000000++#define RTCF_VALVE 0x00200000+#define RTCF_MASQ 0x00400000+#define RTCF_NAT 0x00800000+#define RTCF_DOREDIRECT 0x01000000+#define RTCF_LOG 0x02000000+#define RTCF_DIRECTSRC 0x04000000++#define RTF_LOCAL 0x80000000+#define RTF_INTERFACE 0x40000000+#define RTF_MULTICAST 0x20000000+#define RTF_BROADCAST 0x10000000+#define RTF_NAT 0x08000000++#define RTF_ADDRCLASSMASK 0xF8000000+#define RT_ADDRCLASS(flags) ((uint32_t) flags >> 23)++#define RT_TOS(tos) ((tos) & IPTOS_TOS_MASK)++#define RT_LOCALADDR(flags) ((flags & RTF_ADDRCLASSMASK) \+ == (RTF_LOCAL|RTF_INTERFACE))++#define RT_CLASS_UNSPEC 0+#define RT_CLASS_DEFAULT 253++#define RT_CLASS_MAIN 254+#define RT_CLASS_LOCAL 255+#define RT_CLASS_MAX 255+++#define RTMSG_ACK NLMSG_ACK+#define RTMSG_OVERRUN NLMSG_OVERRUN++#define RTMSG_NEWDEVICE 0x11+#define RTMSG_DELDEVICE 0x12+#define RTMSG_NEWROUTE 0x21+#define RTMSG_DELROUTE 0x22+#define RTMSG_NEWRULE 0x31+#define RTMSG_DELRULE 0x32+#define RTMSG_CONTROL 0x40++#define RTMSG_AR_FAILED 0x51++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,157 @@+#ifndef _NETDB_H+#define _NETDB_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <netinet/in.h>++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_size_t+#include <bits/alltypes.h>+#endif++struct addrinfo {+ int ai_flags;+ int ai_family;+ int ai_socktype;+ int ai_protocol;+ socklen_t ai_addrlen;+ struct sockaddr *ai_addr;+ char *ai_canonname;+ struct addrinfo *ai_next;+};++#define AI_PASSIVE 0x01+#define AI_CANONNAME 0x02+#define AI_NUMERICHOST 0x04+#define AI_V4MAPPED 0x08+#define AI_ALL 0x10+#define AI_ADDRCONFIG 0x20+#define AI_NUMERICSERV 0x400+++#define NI_NUMERICHOST 0x01+#define NI_NUMERICSERV 0x02+#define NI_NOFQDN 0x04+#define NI_NAMEREQD 0x08+#define NI_DGRAM 0x10+#define NI_NUMERICSCOPE 0x100++#define EAI_BADFLAGS -1+#define EAI_NONAME -2+#define EAI_AGAIN -3+#define EAI_FAIL -4+#define EAI_NODATA -5+#define EAI_FAMILY -6+#define EAI_SOCKTYPE -7+#define EAI_SERVICE -8+#define EAI_MEMORY -10+#define EAI_SYSTEM -11+#define EAI_OVERFLOW -12++int getaddrinfo (const char *__restrict, const char *__restrict, const struct addrinfo *__restrict, struct addrinfo **__restrict);+void freeaddrinfo (struct addrinfo *);+int getnameinfo (const struct sockaddr *__restrict, socklen_t, char *__restrict, socklen_t, char *__restrict, socklen_t, int);+const char *gai_strerror(int);+++/* Legacy functions follow (marked OBsolete in SUS) */++struct netent {+ char *n_name;+ char **n_aliases;+ int n_addrtype;+ uint32_t n_net;+};++struct hostent {+ char *h_name;+ char **h_aliases;+ int h_addrtype;+ int h_length;+ char **h_addr_list;+};+#define h_addr h_addr_list[0]++struct servent {+ char *s_name;+ char **s_aliases;+ int s_port;+ char *s_proto;+};++struct protoent {+ char *p_name;+ char **p_aliases;+ int p_proto;+};++void sethostent (int);+void endhostent (void);+struct hostent *gethostent (void);++void setnetent (int);+void endnetent (void);+struct netent *getnetent (void);+struct netent *getnetbyaddr (uint32_t, int);+struct netent *getnetbyname (const char *);++void setservent (int);+void endservent (void);+struct servent *getservent (void);+struct servent *getservbyname (const char *, const char *);+struct servent *getservbyport (int, const char *);++void setprotoent (int);+void endprotoent (void);+struct protoent *getprotoent (void);+struct protoent *getprotobyname (const char *);+struct protoent *getprotobynumber (int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \+ || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)+struct hostent *gethostbyname (const char *);+struct hostent *gethostbyaddr (const void *, socklen_t, int);+#ifdef __GNUC__+__attribute__((const))+#endif+int *__h_errno_location(void);+#define h_errno (*__h_errno_location())+#define HOST_NOT_FOUND 1+#define TRY_AGAIN 2+#define NO_RECOVERY 3+#define NO_DATA 4+#define NO_ADDRESS NO_DATA+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+void herror(const char *);+const char *hstrerror(int);+int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *);+int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *);+struct hostent *gethostbyname2(const char *, int);+int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *, char *, size_t, struct hostent **, int *);+int getservbyport_r(int, const char *, struct servent *, char *, size_t, struct servent **);+int getservbyname_r(const char *, const char *, struct servent *, char *, size_t, struct servent **);+#define EAI_NODATA -5+#define EAI_ADDRFAMILY -9+#define EAI_INPROGRESS -100+#define EAI_CANCELED -101+#define EAI_NOTCANCELED -102+#define EAI_ALLDONE -103+#define EAI_INTR -104+#define EAI_IDN_ENCODE -105+#define NI_MAXHOST 255+#define NI_MAXSERV 32+#endif+++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,22 @@+#ifndef _NETINET_ETHER_H+#define _NETINET_ETHER_H++#ifdef __cplusplus+extern "C" {+#endif++#include <netinet/if_ether.h>++char *ether_ntoa (const struct ether_addr *);+struct ether_addr *ether_aton (const char *);+char *ether_ntoa_r (const struct ether_addr *, char *);+struct ether_addr *ether_aton_r (const char *, struct ether_addr *);+int ether_line(const char *, struct ether_addr *, char *);+int ether_ntohost(char *, const struct ether_addr *);+int ether_hostton(const char *, struct ether_addr *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,305 @@+#ifndef _NETINET_ICMP6_H+#define _NETINET_ICMP6_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <string.h>+#include <sys/types.h>+#include <netinet/in.h>++#define ICMP6_FILTER 1++#define ICMP6_FILTER_BLOCK 1+#define ICMP6_FILTER_PASS 2+#define ICMP6_FILTER_BLOCKOTHERS 3+#define ICMP6_FILTER_PASSONLY 4++struct icmp6_filter {+ uint32_t icmp6_filt[8];+};++struct icmp6_hdr {+ uint8_t icmp6_type;+ uint8_t icmp6_code;+ uint16_t icmp6_cksum;+ union {+ uint32_t icmp6_un_data32[1];+ uint16_t icmp6_un_data16[2];+ uint8_t icmp6_un_data8[4];+ } icmp6_dataun;+};++#define icmp6_data32 icmp6_dataun.icmp6_un_data32+#define icmp6_data16 icmp6_dataun.icmp6_un_data16+#define icmp6_data8 icmp6_dataun.icmp6_un_data8+#define icmp6_pptr icmp6_data32[0]+#define icmp6_mtu icmp6_data32[0]+#define icmp6_id icmp6_data16[0]+#define icmp6_seq icmp6_data16[1]+#define icmp6_maxdelay icmp6_data16[0]++#define ICMP6_DST_UNREACH 1+#define ICMP6_PACKET_TOO_BIG 2+#define ICMP6_TIME_EXCEEDED 3+#define ICMP6_PARAM_PROB 4++#define ICMP6_INFOMSG_MASK 0x80++#define ICMP6_ECHO_REQUEST 128+#define ICMP6_ECHO_REPLY 129+#define MLD_LISTENER_QUERY 130+#define MLD_LISTENER_REPORT 131+#define MLD_LISTENER_REDUCTION 132++#define ICMP6_DST_UNREACH_NOROUTE 0+#define ICMP6_DST_UNREACH_ADMIN 1+#define ICMP6_DST_UNREACH_BEYONDSCOPE 2+#define ICMP6_DST_UNREACH_ADDR 3+#define ICMP6_DST_UNREACH_NOPORT 4++#define ICMP6_TIME_EXCEED_TRANSIT 0+#define ICMP6_TIME_EXCEED_REASSEMBLY 1++#define ICMP6_PARAMPROB_HEADER 0+#define ICMP6_PARAMPROB_NEXTHEADER 1+#define ICMP6_PARAMPROB_OPTION 2++#define ICMP6_FILTER_WILLPASS(type, filterp) \+ ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)++#define ICMP6_FILTER_WILLBLOCK(type, filterp) \+ ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0)++#define ICMP6_FILTER_SETPASS(type, filterp) \+ ((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31))))++#define ICMP6_FILTER_SETBLOCK(type, filterp) \+ ((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31))))++#define ICMP6_FILTER_SETPASSALL(filterp) \+ memset (filterp, 0, sizeof (struct icmp6_filter));++#define ICMP6_FILTER_SETBLOCKALL(filterp) \+ memset (filterp, 0xFF, sizeof (struct icmp6_filter));++#define ND_ROUTER_SOLICIT 133+#define ND_ROUTER_ADVERT 134+#define ND_NEIGHBOR_SOLICIT 135+#define ND_NEIGHBOR_ADVERT 136+#define ND_REDIRECT 137++struct nd_router_solicit {+ struct icmp6_hdr nd_rs_hdr;+};++#define nd_rs_type nd_rs_hdr.icmp6_type+#define nd_rs_code nd_rs_hdr.icmp6_code+#define nd_rs_cksum nd_rs_hdr.icmp6_cksum+#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0]++struct nd_router_advert {+ struct icmp6_hdr nd_ra_hdr;+ uint32_t nd_ra_reachable;+ uint32_t nd_ra_retransmit;+};++#define nd_ra_type nd_ra_hdr.icmp6_type+#define nd_ra_code nd_ra_hdr.icmp6_code+#define nd_ra_cksum nd_ra_hdr.icmp6_cksum+#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0]+#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1]+#define ND_RA_FLAG_MANAGED 0x80+#define ND_RA_FLAG_OTHER 0x40+#define ND_RA_FLAG_HOME_AGENT 0x20+#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1]++struct nd_neighbor_solicit {+ struct icmp6_hdr nd_ns_hdr;+ struct in6_addr nd_ns_target;+};++#define nd_ns_type nd_ns_hdr.icmp6_type+#define nd_ns_code nd_ns_hdr.icmp6_code+#define nd_ns_cksum nd_ns_hdr.icmp6_cksum+#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0]++struct nd_neighbor_advert {+ struct icmp6_hdr nd_na_hdr;+ struct in6_addr nd_na_target;+};++#define nd_na_type nd_na_hdr.icmp6_type+#define nd_na_code nd_na_hdr.icmp6_code+#define nd_na_cksum nd_na_hdr.icmp6_cksum+#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0]+#if __BYTE_ORDER == __BIG_ENDIAN+#define ND_NA_FLAG_ROUTER 0x80000000+#define ND_NA_FLAG_SOLICITED 0x40000000+#define ND_NA_FLAG_OVERRIDE 0x20000000+#else+#define ND_NA_FLAG_ROUTER 0x00000080+#define ND_NA_FLAG_SOLICITED 0x00000040+#define ND_NA_FLAG_OVERRIDE 0x00000020+#endif++struct nd_redirect {+ struct icmp6_hdr nd_rd_hdr;+ struct in6_addr nd_rd_target;+ struct in6_addr nd_rd_dst;+};++#define nd_rd_type nd_rd_hdr.icmp6_type+#define nd_rd_code nd_rd_hdr.icmp6_code+#define nd_rd_cksum nd_rd_hdr.icmp6_cksum+#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]++struct nd_opt_hdr {+ uint8_t nd_opt_type;+ uint8_t nd_opt_len;+};++#define ND_OPT_SOURCE_LINKADDR 1+#define ND_OPT_TARGET_LINKADDR 2+#define ND_OPT_PREFIX_INFORMATION 3+#define ND_OPT_REDIRECTED_HEADER 4+#define ND_OPT_MTU 5+#define ND_OPT_RTR_ADV_INTERVAL 7+#define ND_OPT_HOME_AGENT_INFO 8++struct nd_opt_prefix_info {+ uint8_t nd_opt_pi_type;+ uint8_t nd_opt_pi_len;+ uint8_t nd_opt_pi_prefix_len;+ uint8_t nd_opt_pi_flags_reserved;+ uint32_t nd_opt_pi_valid_time;+ uint32_t nd_opt_pi_preferred_time;+ uint32_t nd_opt_pi_reserved2;+ struct in6_addr nd_opt_pi_prefix;+};++#define ND_OPT_PI_FLAG_ONLINK 0x80+#define ND_OPT_PI_FLAG_AUTO 0x40+#define ND_OPT_PI_FLAG_RADDR 0x20++struct nd_opt_rd_hdr {+ uint8_t nd_opt_rh_type;+ uint8_t nd_opt_rh_len;+ uint16_t nd_opt_rh_reserved1;+ uint32_t nd_opt_rh_reserved2;+};++struct nd_opt_mtu {+ uint8_t nd_opt_mtu_type;+ uint8_t nd_opt_mtu_len;+ uint16_t nd_opt_mtu_reserved;+ uint32_t nd_opt_mtu_mtu;+};++struct mld_hdr {+ struct icmp6_hdr mld_icmp6_hdr;+ struct in6_addr mld_addr;+};++#define mld_type mld_icmp6_hdr.icmp6_type+#define mld_code mld_icmp6_hdr.icmp6_code+#define mld_cksum mld_icmp6_hdr.icmp6_cksum+#define mld_maxdelay mld_icmp6_hdr.icmp6_data16[0]+#define mld_reserved mld_icmp6_hdr.icmp6_data16[1]++#define ICMP6_ROUTER_RENUMBERING 138++struct icmp6_router_renum {+ struct icmp6_hdr rr_hdr;+ uint8_t rr_segnum;+ uint8_t rr_flags;+ uint16_t rr_maxdelay;+ uint32_t rr_reserved;+};++#define rr_type rr_hdr.icmp6_type+#define rr_code rr_hdr.icmp6_code+#define rr_cksum rr_hdr.icmp6_cksum+#define rr_seqnum rr_hdr.icmp6_data32[0]++#define ICMP6_RR_FLAGS_TEST 0x80+#define ICMP6_RR_FLAGS_REQRESULT 0x40+#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20+#define ICMP6_RR_FLAGS_SPECSITE 0x10+#define ICMP6_RR_FLAGS_PREVDONE 0x08++struct rr_pco_match {+ uint8_t rpm_code;+ uint8_t rpm_len;+ uint8_t rpm_ordinal;+ uint8_t rpm_matchlen;+ uint8_t rpm_minlen;+ uint8_t rpm_maxlen;+ uint16_t rpm_reserved;+ struct in6_addr rpm_prefix;+};++#define RPM_PCO_ADD 1+#define RPM_PCO_CHANGE 2+#define RPM_PCO_SETGLOBAL 3++struct rr_pco_use {+ uint8_t rpu_uselen;+ uint8_t rpu_keeplen;+ uint8_t rpu_ramask;+ uint8_t rpu_raflags;+ uint32_t rpu_vltime;+ uint32_t rpu_pltime;+ uint32_t rpu_flags;+ struct in6_addr rpu_prefix;+};++#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x20+#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x10++#if __BYTE_ORDER == __BIG_ENDIAN+#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000+#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000+#else+#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80+#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40+#endif++struct rr_result {+ uint16_t rrr_flags;+ uint8_t rrr_ordinal;+ uint8_t rrr_matchedlen;+ uint32_t rrr_ifid;+ struct in6_addr rrr_prefix;+};++#if __BYTE_ORDER == __BIG_ENDIAN+#define ICMP6_RR_RESULT_FLAGS_OOB 0x0002+#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001+#else+#define ICMP6_RR_RESULT_FLAGS_OOB 0x0200+#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100+#endif++struct nd_opt_adv_interval {+ uint8_t nd_opt_adv_interval_type;+ uint8_t nd_opt_adv_interval_len;+ uint16_t nd_opt_adv_interval_reserved;+ uint32_t nd_opt_adv_interval_ival;+};++struct nd_opt_home_agent_info {+ uint8_t nd_opt_home_agent_info_type;+ uint8_t nd_opt_home_agent_info_len;+ uint16_t nd_opt_home_agent_info_reserved;+ uint16_t nd_opt_home_agent_info_preference;+ uint16_t nd_opt_home_agent_info_lifetime;+};++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,149 @@+#ifndef _NETINET_IF_ETHER_H+#define _NETINET_IF_ETHER_H++#include <stdint.h>+#include <sys/types.h>++#define ETH_ALEN 6+#define ETH_TLEN 2+#define ETH_HLEN 14+#define ETH_ZLEN 60+#define ETH_DATA_LEN 1500+#define ETH_FRAME_LEN 1514+#define ETH_FCS_LEN 4+#define ETH_MIN_MTU 68+#define ETH_MAX_MTU 0xFFFFU++#define ETH_P_LOOP 0x0060+#define ETH_P_PUP 0x0200+#define ETH_P_PUPAT 0x0201+#define ETH_P_TSN 0x22F0+#define ETH_P_ERSPAN2 0x22EB+#define ETH_P_IP 0x0800+#define ETH_P_X25 0x0805+#define ETH_P_ARP 0x0806+#define ETH_P_BPQ 0x08FF+#define ETH_P_IEEEPUP 0x0a00+#define ETH_P_IEEEPUPAT 0x0a01+#define ETH_P_BATMAN 0x4305+#define ETH_P_DEC 0x6000+#define ETH_P_DNA_DL 0x6001+#define ETH_P_DNA_RC 0x6002+#define ETH_P_DNA_RT 0x6003+#define ETH_P_LAT 0x6004+#define ETH_P_DIAG 0x6005+#define ETH_P_CUST 0x6006+#define ETH_P_SCA 0x6007+#define ETH_P_TEB 0x6558+#define ETH_P_RARP 0x8035+#define ETH_P_ATALK 0x809B+#define ETH_P_AARP 0x80F3+#define ETH_P_8021Q 0x8100+#define ETH_P_IPX 0x8137+#define ETH_P_IPV6 0x86DD+#define ETH_P_PAUSE 0x8808+#define ETH_P_SLOW 0x8809+#define ETH_P_WCCP 0x883E+#define ETH_P_MPLS_UC 0x8847+#define ETH_P_MPLS_MC 0x8848+#define ETH_P_ATMMPOA 0x884c+#define ETH_P_PPP_DISC 0x8863+#define ETH_P_PPP_SES 0x8864+#define ETH_P_LINK_CTL 0x886c+#define ETH_P_ATMFATE 0x8884+#define ETH_P_PAE 0x888E+#define ETH_P_AOE 0x88A2+#define ETH_P_8021AD 0x88A8+#define ETH_P_802_EX1 0x88B5+#define ETH_P_ERSPAN 0x88BE+#define ETH_P_PREAUTH 0x88C7+#define ETH_P_TIPC 0x88CA+#define ETH_P_LLDP 0x88CC+#define ETH_P_MRP 0x88E3+#define ETH_P_MACSEC 0x88E5+#define ETH_P_8021AH 0x88E7+#define ETH_P_MVRP 0x88F5+#define ETH_P_1588 0x88F7+#define ETH_P_NCSI 0x88F8+#define ETH_P_PRP 0x88FB+#define ETH_P_CFM 0x8902+#define ETH_P_FCOE 0x8906+#define ETH_P_TDLS 0x890D+#define ETH_P_FIP 0x8914+#define ETH_P_IBOE 0x8915+#define ETH_P_80221 0x8917+#define ETH_P_HSR 0x892F+#define ETH_P_NSH 0x894F+#define ETH_P_LOOPBACK 0x9000+#define ETH_P_QINQ1 0x9100+#define ETH_P_QINQ2 0x9200+#define ETH_P_QINQ3 0x9300+#define ETH_P_EDSA 0xDADA+#define ETH_P_DSA_8021Q 0xDADB+#define ETH_P_IFE 0xED3E+#define ETH_P_AF_IUCV 0xFBFB++#define ETH_P_802_3_MIN 0x0600++#define ETH_P_802_3 0x0001+#define ETH_P_AX25 0x0002+#define ETH_P_ALL 0x0003+#define ETH_P_802_2 0x0004+#define ETH_P_SNAP 0x0005+#define ETH_P_DDCMP 0x0006+#define ETH_P_WAN_PPP 0x0007+#define ETH_P_PPP_MP 0x0008+#define ETH_P_LOCALTALK 0x0009+#define ETH_P_CAN 0x000C+#define ETH_P_CANFD 0x000D+#define ETH_P_PPPTALK 0x0010+#define ETH_P_TR_802_2 0x0011+#define ETH_P_MOBITEX 0x0015+#define ETH_P_CONTROL 0x0016+#define ETH_P_IRDA 0x0017+#define ETH_P_ECONET 0x0018+#define ETH_P_HDLC 0x0019+#define ETH_P_ARCNET 0x001A+#define ETH_P_DSA 0x001B+#define ETH_P_TRAILER 0x001C+#define ETH_P_PHONET 0x00F5+#define ETH_P_IEEE802154 0x00F6+#define ETH_P_CAIF 0x00F7+#define ETH_P_XDSA 0x00F8+#define ETH_P_MAP 0x00F9++struct ethhdr {+ uint8_t h_dest[ETH_ALEN];+ uint8_t h_source[ETH_ALEN];+ uint16_t h_proto;+};++#include <net/ethernet.h>+#include <net/if_arp.h>++struct ether_arp {+ struct arphdr ea_hdr;+ uint8_t arp_sha[ETH_ALEN];+ uint8_t arp_spa[4];+ uint8_t arp_tha[ETH_ALEN];+ uint8_t arp_tpa[4];+};+#define arp_hrd ea_hdr.ar_hrd+#define arp_pro ea_hdr.ar_pro+#define arp_hln ea_hdr.ar_hln+#define arp_pln ea_hdr.ar_pln+#define arp_op ea_hdr.ar_op++#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \+do { \+ (enaddr)[0] = 0x01; \+ (enaddr)[1] = 0x00; \+ (enaddr)[2] = 0x5e; \+ (enaddr)[3] = ((uint8_t *)ipaddr)[1] & 0x7f; \+ (enaddr)[4] = ((uint8_t *)ipaddr)[2]; \+ (enaddr)[5] = ((uint8_t *)ipaddr)[3]; \+} while(0)++#define __UAPI_DEF_ETHHDR 0++#endif
@@ -0,0 +1,45 @@+#ifndef _NETINET_IGMP_H+#define _NETINET_IGMP_H++#include <stdint.h>+#include <netinet/in.h>++struct igmp {+ uint8_t igmp_type;+ uint8_t igmp_code;+ uint16_t igmp_cksum;+ struct in_addr igmp_group;+};++#define IGMP_MINLEN 8++#define IGMP_MEMBERSHIP_QUERY 0x11+#define IGMP_V1_MEMBERSHIP_REPORT 0x12+#define IGMP_V2_MEMBERSHIP_REPORT 0x16+#define IGMP_V2_LEAVE_GROUP 0x17++#define IGMP_DVMRP 0x13+#define IGMP_PIM 0x14+#define IGMP_TRACE 0x15++#define IGMP_MTRACE_RESP 0x1e+#define IGMP_MTRACE 0x1f++#define IGMP_MAX_HOST_REPORT_DELAY 10+#define IGMP_TIMER_SCALE 10++#define IGMP_DELAYING_MEMBER 1+#define IGMP_IDLE_MEMBER 2+#define IGMP_LAZY_MEMBER 3+#define IGMP_SLEEPING_MEMBER 4+#define IGMP_AWAKENING_MEMBER 5++#define IGMP_v1_ROUTER 1+#define IGMP_v2_ROUTER 2++#define IGMP_HOST_MEMBERSHIP_QUERY IGMP_MEMBERSHIP_QUERY+#define IGMP_HOST_MEMBERSHIP_REPORT IGMP_V1_MEMBERSHIP_REPORT+#define IGMP_HOST_NEW_MEMBERSHIP_REPORT IGMP_V2_MEMBERSHIP_REPORT+#define IGMP_HOST_LEAVE_MESSAGE IGMP_V2_LEAVE_GROUP++#endif
@@ -0,0 +1,417 @@+#ifndef _NETINET_IN_H+#define _NETINET_IN_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <inttypes.h>+#include <sys/socket.h>++typedef uint16_t in_port_t;+typedef uint32_t in_addr_t;+struct in_addr { in_addr_t s_addr; };++struct sockaddr_in {+ sa_family_t sin_family;+ in_port_t sin_port;+ struct in_addr sin_addr;+ uint8_t sin_zero[8];+};++struct in6_addr {+ union {+ uint8_t __s6_addr[16];+ uint16_t __s6_addr16[8];+ uint32_t __s6_addr32[4];+ } __in6_union;+};+#define s6_addr __in6_union.__s6_addr+#define s6_addr16 __in6_union.__s6_addr16+#define s6_addr32 __in6_union.__s6_addr32++struct sockaddr_in6 {+ sa_family_t sin6_family;+ in_port_t sin6_port;+ uint32_t sin6_flowinfo;+ struct in6_addr sin6_addr;+ uint32_t sin6_scope_id;+};++struct ipv6_mreq {+ struct in6_addr ipv6mr_multiaddr;+ unsigned ipv6mr_interface;+};++#define INADDR_ANY ((in_addr_t) 0x00000000)+#define INADDR_BROADCAST ((in_addr_t) 0xffffffff)+#define INADDR_NONE ((in_addr_t) 0xffffffff)+#define INADDR_LOOPBACK ((in_addr_t) 0x7f000001)+#define INADDR_DUMMY ((in_addr_t) 0xc0000008)++#define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000)+#define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001)+#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002)+#define INADDR_ALLSNOOPERS_GROUP ((in_addr_t) 0xe000006a)+#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff)++#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }+#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }++extern const struct in6_addr in6addr_any, in6addr_loopback;++#define INET_ADDRSTRLEN 16+#define INET6_ADDRSTRLEN 46++uint32_t htonl(uint32_t);+uint16_t htons(uint16_t);+uint32_t ntohl(uint32_t);+uint16_t ntohs(uint16_t);++#define IPPORT_RESERVED 1024++#define IPPROTO_IP 0+#define IPPROTO_HOPOPTS 0+#define IPPROTO_ICMP 1+#define IPPROTO_IGMP 2+#define IPPROTO_IPIP 4+#define IPPROTO_TCP 6+#define IPPROTO_EGP 8+#define IPPROTO_PUP 12+#define IPPROTO_UDP 17+#define IPPROTO_IDP 22+#define IPPROTO_TP 29+#define IPPROTO_DCCP 33+#define IPPROTO_IPV6 41+#define IPPROTO_ROUTING 43+#define IPPROTO_FRAGMENT 44+#define IPPROTO_RSVP 46+#define IPPROTO_GRE 47+#define IPPROTO_ESP 50+#define IPPROTO_AH 51+#define IPPROTO_ICMPV6 58+#define IPPROTO_NONE 59+#define IPPROTO_DSTOPTS 60+#define IPPROTO_MTP 92+#define IPPROTO_BEETPH 94+#define IPPROTO_ENCAP 98+#define IPPROTO_PIM 103+#define IPPROTO_COMP 108+#define IPPROTO_SCTP 132+#define IPPROTO_MH 135+#define IPPROTO_UDPLITE 136+#define IPPROTO_MPLS 137+#define IPPROTO_ETHERNET 143+#define IPPROTO_RAW 255+#define IPPROTO_MPTCP 262+#define IPPROTO_MAX 263++#define IN6_IS_ADDR_UNSPECIFIED(a) \+ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \+ ((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == 0)++#define IN6_IS_ADDR_LOOPBACK(a) \+ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \+ ((uint32_t *) (a))[2] == 0 && \+ ((uint8_t *) (a))[12] == 0 && ((uint8_t *) (a))[13] == 0 && \+ ((uint8_t *) (a))[14] == 0 && ((uint8_t *) (a))[15] == 1 )++#define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff)++#define IN6_IS_ADDR_LINKLOCAL(a) \+ ((((uint8_t *) (a))[0]) == 0xfe && (((uint8_t *) (a))[1] & 0xc0) == 0x80)++#define IN6_IS_ADDR_SITELOCAL(a) \+ ((((uint8_t *) (a))[0]) == 0xfe && (((uint8_t *) (a))[1] & 0xc0) == 0xc0)++#define IN6_IS_ADDR_V4MAPPED(a) \+ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \+ ((uint8_t *) (a))[8] == 0 && ((uint8_t *) (a))[9] == 0 && \+ ((uint8_t *) (a))[10] == 0xff && ((uint8_t *) (a))[11] == 0xff)++#define IN6_IS_ADDR_V4COMPAT(a) \+ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \+ ((uint32_t *) (a))[2] == 0 && ((uint8_t *) (a))[15] > 1)++#define IN6_IS_ADDR_MC_NODELOCAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x1))++#define IN6_IS_ADDR_MC_LINKLOCAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x2))++#define IN6_IS_ADDR_MC_SITELOCAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x5))++#define IN6_IS_ADDR_MC_ORGLOCAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x8))++#define IN6_IS_ADDR_MC_GLOBAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe))++#define __ARE_4_EQUAL(a,b) \+ (!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) ))+#define IN6_ARE_ADDR_EQUAL(a,b) \+ __ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b))++#define IN_CLASSA(a) ((((in_addr_t)(a)) & 0x80000000) == 0)+#define IN_CLASSA_NET 0xff000000+#define IN_CLASSA_NSHIFT 24+#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)+#define IN_CLASSA_MAX 128+#define IN_CLASSB(a) ((((in_addr_t)(a)) & 0xc0000000) == 0x80000000)+#define IN_CLASSB_NET 0xffff0000+#define IN_CLASSB_NSHIFT 16+#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)+#define IN_CLASSB_MAX 65536+#define IN_CLASSC(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xc0000000)+#define IN_CLASSC_NET 0xffffff00+#define IN_CLASSC_NSHIFT 8+#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)+#define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)+#define IN_MULTICAST(a) IN_CLASSD(a)+#define IN_EXPERIMENTAL(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000)+#define IN_BADCLASS(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000)++#define IN_LOOPBACKNET 127+++#define IP_TOS 1+#define IP_TTL 2+#define IP_HDRINCL 3+#define IP_OPTIONS 4+#define IP_ROUTER_ALERT 5+#define IP_RECVOPTS 6+#define IP_RETOPTS 7+#define IP_PKTINFO 8+#define IP_PKTOPTIONS 9+#define IP_PMTUDISC 10+#define IP_MTU_DISCOVER 10+#define IP_RECVERR 11+#define IP_RECVTTL 12+#define IP_RECVTOS 13+#define IP_MTU 14+#define IP_FREEBIND 15+#define IP_IPSEC_POLICY 16+#define IP_XFRM_POLICY 17+#define IP_PASSSEC 18+#define IP_TRANSPARENT 19+#define IP_ORIGDSTADDR 20+#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR+#define IP_MINTTL 21+#define IP_NODEFRAG 22+#define IP_CHECKSUM 23+#define IP_BIND_ADDRESS_NO_PORT 24+#define IP_RECVFRAGSIZE 25+#define IP_RECVERR_RFC4884 26+#define IP_MULTICAST_IF 32+#define IP_MULTICAST_TTL 33+#define IP_MULTICAST_LOOP 34+#define IP_ADD_MEMBERSHIP 35+#define IP_DROP_MEMBERSHIP 36+#define IP_UNBLOCK_SOURCE 37+#define IP_BLOCK_SOURCE 38+#define IP_ADD_SOURCE_MEMBERSHIP 39+#define IP_DROP_SOURCE_MEMBERSHIP 40+#define IP_MSFILTER 41+#define IP_MULTICAST_ALL 49+#define IP_UNICAST_IF 50++#define IP_RECVRETOPTS IP_RETOPTS++#define IP_PMTUDISC_DONT 0+#define IP_PMTUDISC_WANT 1+#define IP_PMTUDISC_DO 2+#define IP_PMTUDISC_PROBE 3+#define IP_PMTUDISC_INTERFACE 4+#define IP_PMTUDISC_OMIT 5++#define IP_DEFAULT_MULTICAST_TTL 1+#define IP_DEFAULT_MULTICAST_LOOP 1+#define IP_MAX_MEMBERSHIPS 20++struct ip_opts {+ struct in_addr ip_dst;+ char ip_opts[40];+};++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#define MCAST_JOIN_GROUP 42+#define MCAST_BLOCK_SOURCE 43+#define MCAST_UNBLOCK_SOURCE 44+#define MCAST_LEAVE_GROUP 45+#define MCAST_JOIN_SOURCE_GROUP 46+#define MCAST_LEAVE_SOURCE_GROUP 47+#define MCAST_MSFILTER 48++#define MCAST_EXCLUDE 0+#define MCAST_INCLUDE 1++struct ip_mreq {+ struct in_addr imr_multiaddr;+ struct in_addr imr_interface;+};++struct ip_mreqn {+ struct in_addr imr_multiaddr;+ struct in_addr imr_address;+ int imr_ifindex;+};++struct ip_mreq_source {+ struct in_addr imr_multiaddr;+ struct in_addr imr_interface;+ struct in_addr imr_sourceaddr;+};++struct ip_msfilter {+ struct in_addr imsf_multiaddr;+ struct in_addr imsf_interface;+ uint32_t imsf_fmode;+ uint32_t imsf_numsrc;+ struct in_addr imsf_slist[1];+};+#define IP_MSFILTER_SIZE(numsrc) \+ (sizeof(struct ip_msfilter) - sizeof(struct in_addr) \+ + (numsrc) * sizeof(struct in_addr))++struct group_req {+ uint32_t gr_interface;+ struct sockaddr_storage gr_group;+};++struct group_source_req {+ uint32_t gsr_interface;+ struct sockaddr_storage gsr_group;+ struct sockaddr_storage gsr_source;+};++struct group_filter {+ uint32_t gf_interface;+ struct sockaddr_storage gf_group;+ uint32_t gf_fmode;+ uint32_t gf_numsrc;+ struct sockaddr_storage gf_slist[1];+};+#define GROUP_FILTER_SIZE(numsrc) \+ (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) \+ + (numsrc) * sizeof(struct sockaddr_storage))++struct in_pktinfo {+ int ipi_ifindex;+ struct in_addr ipi_spec_dst;+ struct in_addr ipi_addr;+};++struct in6_pktinfo {+ struct in6_addr ipi6_addr;+ unsigned ipi6_ifindex;+};++struct ip6_mtuinfo {+ struct sockaddr_in6 ip6m_addr;+ uint32_t ip6m_mtu;+};+#endif++#define IPV6_ADDRFORM 1+#define IPV6_2292PKTINFO 2+#define IPV6_2292HOPOPTS 3+#define IPV6_2292DSTOPTS 4+#define IPV6_2292RTHDR 5+#define IPV6_2292PKTOPTIONS 6+#define IPV6_CHECKSUM 7+#define IPV6_2292HOPLIMIT 8+#define IPV6_NEXTHOP 9+#define IPV6_AUTHHDR 10+#define IPV6_UNICAST_HOPS 16+#define IPV6_MULTICAST_IF 17+#define IPV6_MULTICAST_HOPS 18+#define IPV6_MULTICAST_LOOP 19+#define IPV6_JOIN_GROUP 20+#define IPV6_LEAVE_GROUP 21+#define IPV6_ROUTER_ALERT 22+#define IPV6_MTU_DISCOVER 23+#define IPV6_MTU 24+#define IPV6_RECVERR 25+#define IPV6_V6ONLY 26+#define IPV6_JOIN_ANYCAST 27+#define IPV6_LEAVE_ANYCAST 28+#define IPV6_MULTICAST_ALL 29+#define IPV6_ROUTER_ALERT_ISOLATE 30+#define IPV6_IPSEC_POLICY 34+#define IPV6_XFRM_POLICY 35+#define IPV6_HDRINCL 36++#define IPV6_RECVPKTINFO 49+#define IPV6_PKTINFO 50+#define IPV6_RECVHOPLIMIT 51+#define IPV6_HOPLIMIT 52+#define IPV6_RECVHOPOPTS 53+#define IPV6_HOPOPTS 54+#define IPV6_RTHDRDSTOPTS 55+#define IPV6_RECVRTHDR 56+#define IPV6_RTHDR 57+#define IPV6_RECVDSTOPTS 58+#define IPV6_DSTOPTS 59+#define IPV6_RECVPATHMTU 60+#define IPV6_PATHMTU 61+#define IPV6_DONTFRAG 62+#define IPV6_RECVTCLASS 66+#define IPV6_TCLASS 67+#define IPV6_AUTOFLOWLABEL 70+#define IPV6_ADDR_PREFERENCES 72+#define IPV6_MINHOPCOUNT 73+#define IPV6_ORIGDSTADDR 74+#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR+#define IPV6_TRANSPARENT 75+#define IPV6_UNICAST_IF 76+#define IPV6_RECVFRAGSIZE 77+#define IPV6_FREEBIND 78++#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP+#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP+#define IPV6_RXHOPOPTS IPV6_HOPOPTS+#define IPV6_RXDSTOPTS IPV6_DSTOPTS++#define IPV6_PMTUDISC_DONT 0+#define IPV6_PMTUDISC_WANT 1+#define IPV6_PMTUDISC_DO 2+#define IPV6_PMTUDISC_PROBE 3+#define IPV6_PMTUDISC_INTERFACE 4+#define IPV6_PMTUDISC_OMIT 5++#define IPV6_PREFER_SRC_TMP 0x0001+#define IPV6_PREFER_SRC_PUBLIC 0x0002+#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100+#define IPV6_PREFER_SRC_COA 0x0004+#define IPV6_PREFER_SRC_HOME 0x0400+#define IPV6_PREFER_SRC_CGA 0x0008+#define IPV6_PREFER_SRC_NONCGA 0x0800++#define IPV6_RTHDR_LOOSE 0+#define IPV6_RTHDR_STRICT 1++#define IPV6_RTHDR_TYPE_0 0++#define __UAPI_DEF_IN_ADDR 0+#define __UAPI_DEF_IN_IPPROTO 0+#define __UAPI_DEF_IN_PKTINFO 0+#define __UAPI_DEF_IP_MREQ 0+#define __UAPI_DEF_SOCKADDR_IN 0+#define __UAPI_DEF_IN_CLASS 0+#define __UAPI_DEF_IN6_ADDR 0+#define __UAPI_DEF_IN6_ADDR_ALT 0+#define __UAPI_DEF_SOCKADDR_IN6 0+#define __UAPI_DEF_IPV6_MREQ 0+#define __UAPI_DEF_IPPROTO_V6 0+#define __UAPI_DEF_IPV6_OPTIONS 0+#define __UAPI_DEF_IN6_PKTINFO 0+#define __UAPI_DEF_IP6_MTUINFO 0++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,9 @@+#ifndef _NETINET_IN_SYSTM_H+#define _NETINET_IN_SYSTM_H++#include <stdint.h>++typedef uint16_t n_short;+typedef uint32_t n_long, n_time;++#endif
@@ -0,0 +1,199 @@+#ifndef _NETINET_IP_H+#define _NETINET_IP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <netinet/in.h>++struct timestamp {+ uint8_t len;+ uint8_t ptr;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned int flags:4;+ unsigned int overflow:4;+#else+ unsigned int overflow:4;+ unsigned int flags:4;+#endif+ uint32_t data[9];+ };++struct iphdr {+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned int ihl:4;+ unsigned int version:4;+#else+ unsigned int version:4;+ unsigned int ihl:4;+#endif+ uint8_t tos;+ uint16_t tot_len;+ uint16_t id;+ uint16_t frag_off;+ uint8_t ttl;+ uint8_t protocol;+ uint16_t check;+ uint32_t saddr;+ uint32_t daddr;+};++struct ip {+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned int ip_hl:4;+ unsigned int ip_v:4;+#else+ unsigned int ip_v:4;+ unsigned int ip_hl:4;+#endif+ uint8_t ip_tos;+ uint16_t ip_len;+ uint16_t ip_id;+ uint16_t ip_off;+ uint8_t ip_ttl;+ uint8_t ip_p;+ uint16_t ip_sum;+ struct in_addr ip_src, ip_dst;+};++#define IP_RF 0x8000+#define IP_DF 0x4000+#define IP_MF 0x2000+#define IP_OFFMASK 0x1fff++struct ip_timestamp {+ uint8_t ipt_code;+ uint8_t ipt_len;+ uint8_t ipt_ptr;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned int ipt_flg:4;+ unsigned int ipt_oflw:4;+#else+ unsigned int ipt_oflw:4;+ unsigned int ipt_flg:4;+#endif+ uint32_t data[9];+};++#define IPVERSION 4+#define IP_MAXPACKET 65535++#define IPTOS_ECN_MASK 0x03+#define IPTOS_ECN(x) ((x) & IPTOS_ECN_MASK)+#define IPTOS_ECN_NOT_ECT 0x00+#define IPTOS_ECN_ECT1 0x01+#define IPTOS_ECN_ECT0 0x02+#define IPTOS_ECN_CE 0x03++#define IPTOS_DSCP_MASK 0xfc+#define IPTOS_DSCP(x) ((x) & IPTOS_DSCP_MASK)+#define IPTOS_DSCP_AF11 0x28+#define IPTOS_DSCP_AF12 0x30+#define IPTOS_DSCP_AF13 0x38+#define IPTOS_DSCP_AF21 0x48+#define IPTOS_DSCP_AF22 0x50+#define IPTOS_DSCP_AF23 0x58+#define IPTOS_DSCP_AF31 0x68+#define IPTOS_DSCP_AF32 0x70+#define IPTOS_DSCP_AF33 0x78+#define IPTOS_DSCP_AF41 0x88+#define IPTOS_DSCP_AF42 0x90+#define IPTOS_DSCP_AF43 0x98+#define IPTOS_DSCP_EF 0xb8++#define IPTOS_CLASS_MASK 0xe0+#define IPTOS_CLASS(x) ((x) & IPTOS_CLASS_MASK)+#define IPTOS_CLASS_CS0 0x00+#define IPTOS_CLASS_CS1 0x20+#define IPTOS_CLASS_CS2 0x40+#define IPTOS_CLASS_CS3 0x60+#define IPTOS_CLASS_CS4 0x80+#define IPTOS_CLASS_CS5 0xa0+#define IPTOS_CLASS_CS6 0xc0+#define IPTOS_CLASS_CS7 0xe0+#define IPTOS_CLASS_DEFAULT IPTOS_CLASS_CS0++#define IPTOS_TOS_MASK 0x1E+#define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK)+#define IPTOS_LOWDELAY 0x10+#define IPTOS_THROUGHPUT 0x08+#define IPTOS_RELIABILITY 0x04+#define IPTOS_LOWCOST 0x02+#define IPTOS_MINCOST IPTOS_LOWCOST++#define IPTOS_PREC_MASK 0xe0+#define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK)+#define IPTOS_PREC_NETCONTROL 0xe0+#define IPTOS_PREC_INTERNETCONTROL 0xc0+#define IPTOS_PREC_CRITIC_ECP 0xa0+#define IPTOS_PREC_FLASHOVERRIDE 0x80+#define IPTOS_PREC_FLASH 0x60+#define IPTOS_PREC_IMMEDIATE 0x40+#define IPTOS_PREC_PRIORITY 0x20+#define IPTOS_PREC_ROUTINE 0x00++#define IPOPT_COPY 0x80+#define IPOPT_CLASS_MASK 0x60+#define IPOPT_NUMBER_MASK 0x1f++#define IPOPT_COPIED(o) ((o) & IPOPT_COPY)+#define IPOPT_CLASS(o) ((o) & IPOPT_CLASS_MASK)+#define IPOPT_NUMBER(o) ((o) & IPOPT_NUMBER_MASK)++#define IPOPT_CONTROL 0x00+#define IPOPT_RESERVED1 0x20+#define IPOPT_DEBMEAS 0x40+#define IPOPT_MEASUREMENT IPOPT_DEBMEAS+#define IPOPT_RESERVED2 0x60++#define IPOPT_EOL 0+#define IPOPT_END IPOPT_EOL+#define IPOPT_NOP 1+#define IPOPT_NOOP IPOPT_NOP++#define IPOPT_RR 7+#define IPOPT_TS 68+#define IPOPT_TIMESTAMP IPOPT_TS+#define IPOPT_SECURITY 130+#define IPOPT_SEC IPOPT_SECURITY+#define IPOPT_LSRR 131+#define IPOPT_SATID 136+#define IPOPT_SID IPOPT_SATID+#define IPOPT_SSRR 137+#define IPOPT_RA 148++#define IPOPT_OPTVAL 0+#define IPOPT_OLEN 1+#define IPOPT_OFFSET 2+#define IPOPT_MINOFF 4++#define MAX_IPOPTLEN 40++#define IPOPT_TS_TSONLY 0+#define IPOPT_TS_TSANDADDR 1+#define IPOPT_TS_PRESPEC 3++#define IPOPT_SECUR_UNCLASS 0x0000+#define IPOPT_SECUR_CONFID 0xf135+#define IPOPT_SECUR_EFTO 0x789a+#define IPOPT_SECUR_MMMM 0xbc4d+#define IPOPT_SECUR_RESTR 0xaf13+#define IPOPT_SECUR_SECRET 0xd788+#define IPOPT_SECUR_TOPSECRET 0x6bc5++#define MAXTTL 255+#define IPDEFTTL 64+#define IPFRAGTTL 60+#define IPTTLDEC 1++#define IP_MSS 576++#define __UAPI_DEF_IPHDR 0++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,141 @@+#ifndef _NETINET_IP6_H+#define _NETINET_IP6_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <netinet/in.h>++struct ip6_hdr {+ union {+ struct ip6_hdrctl {+ uint32_t ip6_un1_flow;+ uint16_t ip6_un1_plen;+ uint8_t ip6_un1_nxt;+ uint8_t ip6_un1_hlim;+ } ip6_un1;+ uint8_t ip6_un2_vfc;+ } ip6_ctlun;+ struct in6_addr ip6_src;+ struct in6_addr ip6_dst;+};++#define ip6_vfc ip6_ctlun.ip6_un2_vfc+#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow+#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen+#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt+#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim+#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim++struct ip6_ext {+ uint8_t ip6e_nxt;+ uint8_t ip6e_len;+};++struct ip6_hbh {+ uint8_t ip6h_nxt;+ uint8_t ip6h_len;+};++struct ip6_dest {+ uint8_t ip6d_nxt;+ uint8_t ip6d_len;+};++struct ip6_rthdr {+ uint8_t ip6r_nxt;+ uint8_t ip6r_len;+ uint8_t ip6r_type;+ uint8_t ip6r_segleft;+};++struct ip6_rthdr0 {+ uint8_t ip6r0_nxt;+ uint8_t ip6r0_len;+ uint8_t ip6r0_type;+ uint8_t ip6r0_segleft;+ uint8_t ip6r0_reserved;+ uint8_t ip6r0_slmap[3];+ struct in6_addr ip6r0_addr[];+};++struct ip6_frag {+ uint8_t ip6f_nxt;+ uint8_t ip6f_reserved;+ uint16_t ip6f_offlg;+ uint32_t ip6f_ident;+};++#if __BYTE_ORDER == __BIG_ENDIAN+#define IP6F_OFF_MASK 0xfff8+#define IP6F_RESERVED_MASK 0x0006+#define IP6F_MORE_FRAG 0x0001+#else+#define IP6F_OFF_MASK 0xf8ff+#define IP6F_RESERVED_MASK 0x0600+#define IP6F_MORE_FRAG 0x0100+#endif++struct ip6_opt {+ uint8_t ip6o_type;+ uint8_t ip6o_len;+};++#define IP6OPT_TYPE(o) ((o) & 0xc0)+#define IP6OPT_TYPE_SKIP 0x00+#define IP6OPT_TYPE_DISCARD 0x40+#define IP6OPT_TYPE_FORCEICMP 0x80+#define IP6OPT_TYPE_ICMP 0xc0+#define IP6OPT_TYPE_MUTABLE 0x20++#define IP6OPT_PAD1 0+#define IP6OPT_PADN 1++#define IP6OPT_JUMBO 0xc2+#define IP6OPT_NSAP_ADDR 0xc3+#define IP6OPT_TUNNEL_LIMIT 0x04+#define IP6OPT_ROUTER_ALERT 0x05++struct ip6_opt_jumbo {+ uint8_t ip6oj_type;+ uint8_t ip6oj_len;+ uint8_t ip6oj_jumbo_len[4];+};+#define IP6OPT_JUMBO_LEN 6++struct ip6_opt_nsap {+ uint8_t ip6on_type;+ uint8_t ip6on_len;+ uint8_t ip6on_src_nsap_len;+ uint8_t ip6on_dst_nsap_len;+};++struct ip6_opt_tunnel {+ uint8_t ip6ot_type;+ uint8_t ip6ot_len;+ uint8_t ip6ot_encap_limit;+};++struct ip6_opt_router {+ uint8_t ip6or_type;+ uint8_t ip6or_len;+ uint8_t ip6or_value[2];+};++#if __BYTE_ORDER == __BIG_ENDIAN+#define IP6_ALERT_MLD 0x0000+#define IP6_ALERT_RSVP 0x0001+#define IP6_ALERT_AN 0x0002+#else+#define IP6_ALERT_MLD 0x0000+#define IP6_ALERT_RSVP 0x0100+#define IP6_ALERT_AN 0x0200+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,193 @@+#ifndef _NETINET_IP_ICMP_H+#define _NETINET_IP_ICMP_H++#include <stdint.h>+#include <netinet/in.h>+#include <netinet/ip.h>++#ifdef __cplusplus+extern "C" {+#endif++struct icmphdr {+ uint8_t type;+ uint8_t code;+ uint16_t checksum;+ union {+ struct {+ uint16_t id;+ uint16_t sequence;+ } echo;+ uint32_t gateway;+ struct {+ uint16_t __unused;+ uint16_t mtu;+ } frag;+ uint8_t reserved[4];+ } un;+};++#define ICMP_ECHOREPLY 0+#define ICMP_DEST_UNREACH 3+#define ICMP_SOURCE_QUENCH 4+#define ICMP_REDIRECT 5+#define ICMP_ECHO 8+#define ICMP_TIME_EXCEEDED 11+#define ICMP_PARAMETERPROB 12+#define ICMP_TIMESTAMP 13+#define ICMP_TIMESTAMPREPLY 14+#define ICMP_INFO_REQUEST 15+#define ICMP_INFO_REPLY 16+#define ICMP_ADDRESS 17+#define ICMP_ADDRESSREPLY 18+#define NR_ICMP_TYPES 18+++#define ICMP_NET_UNREACH 0+#define ICMP_HOST_UNREACH 1+#define ICMP_PROT_UNREACH 2+#define ICMP_PORT_UNREACH 3+#define ICMP_FRAG_NEEDED 4+#define ICMP_SR_FAILED 5+#define ICMP_NET_UNKNOWN 6+#define ICMP_HOST_UNKNOWN 7+#define ICMP_HOST_ISOLATED 8+#define ICMP_NET_ANO 9+#define ICMP_HOST_ANO 10+#define ICMP_NET_UNR_TOS 11+#define ICMP_HOST_UNR_TOS 12+#define ICMP_PKT_FILTERED 13+#define ICMP_PREC_VIOLATION 14+#define ICMP_PREC_CUTOFF 15+#define NR_ICMP_UNREACH 15++#define ICMP_REDIR_NET 0+#define ICMP_REDIR_HOST 1+#define ICMP_REDIR_NETTOS 2+#define ICMP_REDIR_HOSTTOS 3++#define ICMP_EXC_TTL 0+#define ICMP_EXC_FRAGTIME 1+++struct icmp_ra_addr {+ uint32_t ira_addr;+ uint32_t ira_preference;+};++struct icmp {+ uint8_t icmp_type;+ uint8_t icmp_code;+ uint16_t icmp_cksum;+ union {+ uint8_t ih_pptr;+ struct in_addr ih_gwaddr;+ struct ih_idseq {+ uint16_t icd_id;+ uint16_t icd_seq;+ } ih_idseq;+ uint32_t ih_void;++ struct ih_pmtu {+ uint16_t ipm_void;+ uint16_t ipm_nextmtu;+ } ih_pmtu;++ struct ih_rtradv {+ uint8_t irt_num_addrs;+ uint8_t irt_wpa;+ uint16_t irt_lifetime;+ } ih_rtradv;+ } icmp_hun;+ union {+ struct {+ uint32_t its_otime;+ uint32_t its_rtime;+ uint32_t its_ttime;+ } id_ts;+ struct {+ struct ip idi_ip;+ } id_ip;+ struct icmp_ra_addr id_radv;+ uint32_t id_mask;+ uint8_t id_data[1];+ } icmp_dun;+};++#define icmp_pptr icmp_hun.ih_pptr+#define icmp_gwaddr icmp_hun.ih_gwaddr+#define icmp_id icmp_hun.ih_idseq.icd_id+#define icmp_seq icmp_hun.ih_idseq.icd_seq+#define icmp_void icmp_hun.ih_void+#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void+#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu+#define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs+#define icmp_wpa icmp_hun.ih_rtradv.irt_wpa+#define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime+#define icmp_otime icmp_dun.id_ts.its_otime+#define icmp_rtime icmp_dun.id_ts.its_rtime+#define icmp_ttime icmp_dun.id_ts.its_ttime+#define icmp_ip icmp_dun.id_ip.idi_ip+#define icmp_radv icmp_dun.id_radv+#define icmp_mask icmp_dun.id_mask+#define icmp_data icmp_dun.id_data++#define ICMP_MINLEN 8+#define ICMP_TSLEN (8 + 3 * sizeof (n_time))+#define ICMP_MASKLEN 12+#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8)+#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8)++#define ICMP_UNREACH 3+#define ICMP_SOURCEQUENCH 4+#define ICMP_ROUTERADVERT 9+#define ICMP_ROUTERSOLICIT 10+#define ICMP_TIMXCEED 11+#define ICMP_PARAMPROB 12+#define ICMP_TSTAMP 13+#define ICMP_TSTAMPREPLY 14+#define ICMP_IREQ 15+#define ICMP_IREQREPLY 16+#define ICMP_MASKREQ 17+#define ICMP_MASKREPLY 18+#define ICMP_MAXTYPE 18++#define ICMP_UNREACH_NET 0+#define ICMP_UNREACH_HOST 1+#define ICMP_UNREACH_PROTOCOL 2+#define ICMP_UNREACH_PORT 3+#define ICMP_UNREACH_NEEDFRAG 4+#define ICMP_UNREACH_SRCFAIL 5+#define ICMP_UNREACH_NET_UNKNOWN 6+#define ICMP_UNREACH_HOST_UNKNOWN 7+#define ICMP_UNREACH_ISOLATED 8+#define ICMP_UNREACH_NET_PROHIB 9+#define ICMP_UNREACH_HOST_PROHIB 10+#define ICMP_UNREACH_TOSNET 11+#define ICMP_UNREACH_TOSHOST 12+#define ICMP_UNREACH_FILTER_PROHIB 13+#define ICMP_UNREACH_HOST_PRECEDENCE 14+#define ICMP_UNREACH_PRECEDENCE_CUTOFF 15++#define ICMP_REDIRECT_NET 0+#define ICMP_REDIRECT_HOST 1+#define ICMP_REDIRECT_TOSNET 2+#define ICMP_REDIRECT_TOSHOST 3++#define ICMP_TIMXCEED_INTRANS 0+#define ICMP_TIMXCEED_REASS 1++#define ICMP_PARAMPROB_OPTABSENT 1++#define ICMP_INFOTYPE(type) \+ ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \+ (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \+ (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \+ (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \+ (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,305 @@+#ifndef _NETINET_TCP_H+#define _NETINET_TCP_H++#include <features.h>++#define TCP_NODELAY 1+#define TCP_MAXSEG 2+#define TCP_CORK 3+#define TCP_KEEPIDLE 4+#define TCP_KEEPINTVL 5+#define TCP_KEEPCNT 6+#define TCP_SYNCNT 7+#define TCP_LINGER2 8+#define TCP_DEFER_ACCEPT 9+#define TCP_WINDOW_CLAMP 10+#define TCP_INFO 11+#define TCP_QUICKACK 12+#define TCP_CONGESTION 13+#define TCP_MD5SIG 14+#define TCP_THIN_LINEAR_TIMEOUTS 16+#define TCP_THIN_DUPACK 17+#define TCP_USER_TIMEOUT 18+#define TCP_REPAIR 19+#define TCP_REPAIR_QUEUE 20+#define TCP_QUEUE_SEQ 21+#define TCP_REPAIR_OPTIONS 22+#define TCP_FASTOPEN 23+#define TCP_TIMESTAMP 24+#define TCP_NOTSENT_LOWAT 25+#define TCP_CC_INFO 26+#define TCP_SAVE_SYN 27+#define TCP_SAVED_SYN 28+#define TCP_REPAIR_WINDOW 29+#define TCP_FASTOPEN_CONNECT 30+#define TCP_ULP 31+#define TCP_MD5SIG_EXT 32+#define TCP_FASTOPEN_KEY 33+#define TCP_FASTOPEN_NO_COOKIE 34+#define TCP_ZEROCOPY_RECEIVE 35+#define TCP_INQ 36+#define TCP_TX_DELAY 37++#define TCP_CM_INQ TCP_INQ++#define TCP_ESTABLISHED 1+#define TCP_SYN_SENT 2+#define TCP_SYN_RECV 3+#define TCP_FIN_WAIT1 4+#define TCP_FIN_WAIT2 5+#define TCP_TIME_WAIT 6+#define TCP_CLOSE 7+#define TCP_CLOSE_WAIT 8+#define TCP_LAST_ACK 9+#define TCP_LISTEN 10+#define TCP_CLOSING 11++enum {+ TCP_NLA_PAD,+ TCP_NLA_BUSY,+ TCP_NLA_RWND_LIMITED,+ TCP_NLA_SNDBUF_LIMITED,+ TCP_NLA_DATA_SEGS_OUT,+ TCP_NLA_TOTAL_RETRANS,+ TCP_NLA_PACING_RATE,+ TCP_NLA_DELIVERY_RATE,+ TCP_NLA_SND_CWND,+ TCP_NLA_REORDERING,+ TCP_NLA_MIN_RTT,+ TCP_NLA_RECUR_RETRANS,+ TCP_NLA_DELIVERY_RATE_APP_LMT,+ TCP_NLA_SNDQ_SIZE,+ TCP_NLA_CA_STATE,+ TCP_NLA_SND_SSTHRESH,+ TCP_NLA_DELIVERED,+ TCP_NLA_DELIVERED_CE,+ TCP_NLA_BYTES_SENT,+ TCP_NLA_BYTES_RETRANS,+ TCP_NLA_DSACK_DUPS,+ TCP_NLA_REORD_SEEN,+ TCP_NLA_SRTT,+ TCP_NLA_TIMEOUT_REHASH,+ TCP_NLA_BYTES_NOTSENT,+ TCP_NLA_EDT,+ TCP_NLA_TTL,+};++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define TCPOPT_EOL 0+#define TCPOPT_NOP 1+#define TCPOPT_MAXSEG 2+#define TCPOPT_WINDOW 3+#define TCPOPT_SACK_PERMITTED 4+#define TCPOPT_SACK 5+#define TCPOPT_TIMESTAMP 8+#define TCPOLEN_SACK_PERMITTED 2+#define TCPOLEN_WINDOW 3+#define TCPOLEN_MAXSEG 4+#define TCPOLEN_TIMESTAMP 10++#define SOL_TCP 6++#include <sys/types.h>+#include <sys/socket.h>+#include <stdint.h>++typedef uint32_t tcp_seq;++#define TH_FIN 0x01+#define TH_SYN 0x02+#define TH_RST 0x04+#define TH_PUSH 0x08+#define TH_ACK 0x10+#define TH_URG 0x20++struct tcphdr {+#ifdef _GNU_SOURCE+#ifdef __GNUC__+ __extension__+#endif+ union { struct {++ uint16_t source;+ uint16_t dest;+ uint32_t seq;+ uint32_t ack_seq;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ uint16_t res1:4;+ uint16_t doff:4;+ uint16_t fin:1;+ uint16_t syn:1;+ uint16_t rst:1;+ uint16_t psh:1;+ uint16_t ack:1;+ uint16_t urg:1;+ uint16_t res2:2;+#else+ uint16_t doff:4;+ uint16_t res1:4;+ uint16_t res2:2;+ uint16_t urg:1;+ uint16_t ack:1;+ uint16_t psh:1;+ uint16_t rst:1;+ uint16_t syn:1;+ uint16_t fin:1;+#endif+ uint16_t window;+ uint16_t check;+ uint16_t urg_ptr;++ }; struct {+#endif++ uint16_t th_sport;+ uint16_t th_dport;+ uint32_t th_seq;+ uint32_t th_ack;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ uint8_t th_x2:4;+ uint8_t th_off:4;+#else+ uint8_t th_off:4;+ uint8_t th_x2:4;+#endif+ uint8_t th_flags;+ uint16_t th_win;+ uint16_t th_sum;+ uint16_t th_urp;++#ifdef _GNU_SOURCE+ }; };+#endif+};+#endif++#ifdef _GNU_SOURCE+#define TCPI_OPT_TIMESTAMPS 1+#define TCPI_OPT_SACK 2+#define TCPI_OPT_WSCALE 4+#define TCPI_OPT_ECN 8++#define TCP_CA_Open 0+#define TCP_CA_Disorder 1+#define TCP_CA_CWR 2+#define TCP_CA_Recovery 3+#define TCP_CA_Loss 4++enum tcp_fastopen_client_fail {+ TFO_STATUS_UNSPEC,+ TFO_COOKIE_UNAVAILABLE,+ TFO_DATA_NOT_ACKED,+ TFO_SYN_RETRANSMITTED,+};++struct tcp_info {+ uint8_t tcpi_state;+ uint8_t tcpi_ca_state;+ uint8_t tcpi_retransmits;+ uint8_t tcpi_probes;+ uint8_t tcpi_backoff;+ uint8_t tcpi_options;+ uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;+ uint8_t tcpi_delivery_rate_app_limited : 1, tcpi_fastopen_client_fail : 2;+ uint32_t tcpi_rto;+ uint32_t tcpi_ato;+ uint32_t tcpi_snd_mss;+ uint32_t tcpi_rcv_mss;+ uint32_t tcpi_unacked;+ uint32_t tcpi_sacked;+ uint32_t tcpi_lost;+ uint32_t tcpi_retrans;+ uint32_t tcpi_fackets;+ uint32_t tcpi_last_data_sent;+ uint32_t tcpi_last_ack_sent;+ uint32_t tcpi_last_data_recv;+ uint32_t tcpi_last_ack_recv;+ uint32_t tcpi_pmtu;+ uint32_t tcpi_rcv_ssthresh;+ uint32_t tcpi_rtt;+ uint32_t tcpi_rttvar;+ uint32_t tcpi_snd_ssthresh;+ uint32_t tcpi_snd_cwnd;+ uint32_t tcpi_advmss;+ uint32_t tcpi_reordering;+ uint32_t tcpi_rcv_rtt;+ uint32_t tcpi_rcv_space;+ uint32_t tcpi_total_retrans;+ uint64_t tcpi_pacing_rate;+ uint64_t tcpi_max_pacing_rate;+ uint64_t tcpi_bytes_acked;+ uint64_t tcpi_bytes_received;+ uint32_t tcpi_segs_out;+ uint32_t tcpi_segs_in;+ uint32_t tcpi_notsent_bytes;+ uint32_t tcpi_min_rtt;+ uint32_t tcpi_data_segs_in;+ uint32_t tcpi_data_segs_out;+ uint64_t tcpi_delivery_rate;+ uint64_t tcpi_busy_time;+ uint64_t tcpi_rwnd_limited;+ uint64_t tcpi_sndbuf_limited;+ uint32_t tcpi_delivered;+ uint32_t tcpi_delivered_ce;+ uint64_t tcpi_bytes_sent;+ uint64_t tcpi_bytes_retrans;+ uint32_t tcpi_dsack_dups;+ uint32_t tcpi_reord_seen;+ uint32_t tcpi_rcv_ooopack;+ uint32_t tcpi_snd_wnd;+};++#define TCP_MD5SIG_MAXKEYLEN 80++#define TCP_MD5SIG_FLAG_PREFIX 0x1+#define TCP_MD5SIG_FLAG_IFINDEX 0x2++struct tcp_md5sig {+ struct sockaddr_storage tcpm_addr;+ uint8_t tcpm_flags;+ uint8_t tcpm_prefixlen;+ uint16_t tcpm_keylen;+ int tcpm_ifindex;+ uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];+};++struct tcp_diag_md5sig {+ uint8_t tcpm_family;+ uint8_t tcpm_prefixlen;+ uint16_t tcpm_keylen;+ uint32_t tcpm_addr[4];+ uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];+};++#define TCP_REPAIR_ON 1+#define TCP_REPAIR_OFF 0+#define TCP_REPAIR_OFF_NO_WP -1++struct tcp_repair_window {+ uint32_t snd_wl1;+ uint32_t snd_wnd;+ uint32_t max_window;+ uint32_t rcv_wnd;+ uint32_t rcv_wup;+};++#define TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT 0x1++struct tcp_zerocopy_receive {+ uint64_t address;+ uint32_t length;+ uint32_t recv_skip_hint;+ uint32_t inq;+ int32_t err;+ uint64_t copybuf_address;+ int32_t copybuf_len;+ uint32_t flags;+ uint64_t msg_control;+ uint64_t msg_controllen;+ uint32_t msg_flags;+ uint32_t reserved;+};++#endif++#endif
@@ -0,0 +1,46 @@+#ifndef _NETINET_UDP_H+#define _NETINET_UDP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <stdint.h>++#ifdef _GNU_SOURCE+#define uh_sport source+#define uh_dport dest+#define uh_ulen len+#define uh_sum check+#endif++struct udphdr {+ uint16_t uh_sport;+ uint16_t uh_dport;+ uint16_t uh_ulen;+ uint16_t uh_sum;+};++#define UDP_CORK 1+#define UDP_ENCAP 100+#define UDP_NO_CHECK6_TX 101+#define UDP_NO_CHECK6_RX 102+#define UDP_SEGMENT 103+#define UDP_GRO 104++#define UDP_ENCAP_ESPINUDP_NON_IKE 1+#define UDP_ENCAP_ESPINUDP 2+#define UDP_ENCAP_L2TPINUDP 3+#define UDP_ENCAP_GTP0 4+#define UDP_ENCAP_GTP1U 5+#define UDP_ENCAP_RXRPC 6+#define TCP_ENCAP_ESPINTCP 7++#define SOL_UDP 17++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,62 @@+#ifndef _NETPACKET_PACKET_H+#define _NETPACKET_PACKET_H++#ifdef __cplusplus+extern "C" {+#endif++struct sockaddr_ll {+ unsigned short sll_family, sll_protocol;+ int sll_ifindex;+ unsigned short sll_hatype;+ unsigned char sll_pkttype, sll_halen;+ unsigned char sll_addr[8];+};++struct packet_mreq {+ int mr_ifindex;+ unsigned short int mr_type, mr_alen;+ unsigned char mr_address[8];+};++#define PACKET_HOST 0+#define PACKET_BROADCAST 1+#define PACKET_MULTICAST 2+#define PACKET_OTHERHOST 3+#define PACKET_OUTGOING 4+#define PACKET_LOOPBACK 5+#define PACKET_FASTROUTE 6++#define PACKET_ADD_MEMBERSHIP 1+#define PACKET_DROP_MEMBERSHIP 2+#define PACKET_RECV_OUTPUT 3+#define PACKET_RX_RING 5+#define PACKET_STATISTICS 6+#define PACKET_COPY_THRESH 7+#define PACKET_AUXDATA 8+#define PACKET_ORIGDEV 9+#define PACKET_VERSION 10+#define PACKET_HDRLEN 11+#define PACKET_RESERVE 12+#define PACKET_TX_RING 13+#define PACKET_LOSS 14+#define PACKET_VNET_HDR 15+#define PACKET_TX_TIMESTAMP 16+#define PACKET_TIMESTAMP 17+#define PACKET_FANOUT 18+#define PACKET_TX_HAS_OFF 19+#define PACKET_QDISC_BYPASS 20+#define PACKET_ROLLOVER_STATS 21+#define PACKET_FANOUT_DATA 22+#define PACKET_IGNORE_OUTGOING 23++#define PACKET_MR_MULTICAST 0+#define PACKET_MR_PROMISC 1+#define PACKET_MR_ALLMULTI 2+#define PACKET_MR_UNICAST 3++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,22 @@+#ifndef _NL_TYPES_H+#define _NL_TYPES_H++#ifdef __cplusplus+extern "C" {+#endif++#define NL_SETD 1+#define NL_CAT_LOCALE 1++typedef int nl_item;+typedef void *nl_catd;++nl_catd catopen (const char *, int);+char *catgets (nl_catd, int, int, const char *);+int catclose (nl_catd);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,31 @@+#ifndef _PATHS_H+#define _PATHS_H++#define _PATH_DEFPATH "/usr/local/bin:/bin:/usr/bin"+#define _PATH_STDPATH "/bin:/usr/bin:/sbin:/usr/sbin"++#define _PATH_BSHELL "/bin/sh"+#define _PATH_CONSOLE "/dev/console"+#define _PATH_DEVNULL "/dev/null"+#define _PATH_KLOG "/proc/kmsg"+#define _PATH_LASTLOG "/var/log/lastlog"+#define _PATH_MAILDIR "/var/mail"+#define _PATH_MAN "/usr/share/man"+#define _PATH_MNTTAB "/etc/fstab"+#define _PATH_MOUNTED "/etc/mtab"+#define _PATH_NOLOGIN "/etc/nologin"+#define _PATH_SENDMAIL "/usr/sbin/sendmail"+#define _PATH_SHADOW "/etc/shadow"+#define _PATH_SHELLS "/etc/shells"+#define _PATH_TTY "/dev/tty"+#define _PATH_UTMP "/dev/null/utmp"+#define _PATH_VI "/usr/bin/vi"+#define _PATH_WTMP "/dev/null/wtmp"++#define _PATH_DEV "/dev/"+#define _PATH_TMP "/tmp/"+#define _PATH_VARDB "/var/lib/misc/"+#define _PATH_VARRUN "/var/run/"+#define _PATH_VARTMP "/var/tmp/"++#endif
@@ -0,0 +1,57 @@+#ifndef _POLL_H+#define _POLL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <bits/poll.h>++#define POLLIN 0x001+#define POLLPRI 0x002+#define POLLOUT 0x004+#define POLLERR 0x008+#define POLLHUP 0x010+#define POLLNVAL 0x020+#define POLLRDNORM 0x040+#define POLLRDBAND 0x080+#ifndef POLLWRNORM+#define POLLWRNORM 0x100+#define POLLWRBAND 0x200+#endif+#ifndef POLLMSG+#define POLLMSG 0x400+#define POLLRDHUP 0x2000+#endif++typedef unsigned long nfds_t;++struct pollfd {+ int fd;+ short events;+ short revents;+};++int poll (struct pollfd *, nfds_t, int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_time_t+#define __NEED_struct_timespec+#define __NEED_sigset_t+#include <bits/alltypes.h>+int ppoll(struct pollfd *, nfds_t, const struct timespec *, const sigset_t *);+#endif++#if _REDIR_TIME64+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+__REDIR(ppoll, __ppoll_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,244 @@+#ifndef _PTHREAD_H+#define _PTHREAD_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_time_t+#define __NEED_clockid_t+#define __NEED_struct_timespec+#define __NEED_sigset_t+#define __NEED_pthread_t+#define __NEED_pthread_attr_t+#define __NEED_pthread_mutexattr_t+#define __NEED_pthread_condattr_t+#define __NEED_pthread_rwlockattr_t+#define __NEED_pthread_barrierattr_t+#define __NEED_pthread_mutex_t+#define __NEED_pthread_cond_t+#define __NEED_pthread_rwlock_t+#define __NEED_pthread_barrier_t+#define __NEED_pthread_spinlock_t+#define __NEED_pthread_key_t+#define __NEED_pthread_once_t+#define __NEED_size_t++#include <bits/alltypes.h>++#include <sched.h>+#include <time.h>++#define PTHREAD_CREATE_JOINABLE 0+#define PTHREAD_CREATE_DETACHED 1++#define PTHREAD_MUTEX_NORMAL 0+#define PTHREAD_MUTEX_DEFAULT 0+#define PTHREAD_MUTEX_RECURSIVE 1+#define PTHREAD_MUTEX_ERRORCHECK 2++#define PTHREAD_MUTEX_STALLED 0+#define PTHREAD_MUTEX_ROBUST 1++#define PTHREAD_PRIO_NONE 0+#define PTHREAD_PRIO_INHERIT 1+#define PTHREAD_PRIO_PROTECT 2++#define PTHREAD_INHERIT_SCHED 0+#define PTHREAD_EXPLICIT_SCHED 1++#define PTHREAD_SCOPE_SYSTEM 0+#define PTHREAD_SCOPE_PROCESS 1++#define PTHREAD_PROCESS_PRIVATE 0+#define PTHREAD_PROCESS_SHARED 1+++#define PTHREAD_MUTEX_INITIALIZER {{{0}}}+#define PTHREAD_RWLOCK_INITIALIZER {{{0}}}+#define PTHREAD_COND_INITIALIZER {{{0}}}+#define PTHREAD_ONCE_INIT 0+++#define PTHREAD_CANCEL_ENABLE 0+#define PTHREAD_CANCEL_DISABLE 1+#define PTHREAD_CANCEL_MASKED 2++#define PTHREAD_CANCEL_DEFERRED 0+#define PTHREAD_CANCEL_ASYNCHRONOUS 1++#define PTHREAD_CANCELED ((void *)-1)+++#define PTHREAD_BARRIER_SERIAL_THREAD (-1)+++#define PTHREAD_NULL ((pthread_t)0)+++int pthread_create(pthread_t *__restrict, const pthread_attr_t *__restrict, void *(*)(void *), void *__restrict);+int pthread_detach(pthread_t);+_Noreturn void pthread_exit(void *);+int pthread_join(pthread_t, void **);++#ifdef __GNUC__+__attribute__((const))+#endif+pthread_t pthread_self(void);++int pthread_equal(pthread_t, pthread_t);+#ifndef __cplusplus+#define pthread_equal(x,y) ((x)==(y))+#endif++int pthread_setcancelstate(int, int *);+int pthread_setcanceltype(int, int *);+void pthread_testcancel(void);+int pthread_cancel(pthread_t);++int pthread_getschedparam(pthread_t, int *__restrict, struct sched_param *__restrict);+int pthread_setschedparam(pthread_t, int, const struct sched_param *);+int pthread_setschedprio(pthread_t, int);++int pthread_once(pthread_once_t *, void (*)(void));++int pthread_mutex_init(pthread_mutex_t *__restrict, const pthread_mutexattr_t *__restrict);+int pthread_mutex_lock(pthread_mutex_t *);+int pthread_mutex_unlock(pthread_mutex_t *);+int pthread_mutex_trylock(pthread_mutex_t *);+int pthread_mutex_timedlock(pthread_mutex_t *__restrict, const struct timespec *__restrict);+int pthread_mutex_destroy(pthread_mutex_t *);+int pthread_mutex_consistent(pthread_mutex_t *);++int pthread_mutex_getprioceiling(const pthread_mutex_t *__restrict, int *__restrict);+int pthread_mutex_setprioceiling(pthread_mutex_t *__restrict, int, int *__restrict);++int pthread_cond_init(pthread_cond_t *__restrict, const pthread_condattr_t *__restrict);+int pthread_cond_destroy(pthread_cond_t *);+int pthread_cond_wait(pthread_cond_t *__restrict, pthread_mutex_t *__restrict);+int pthread_cond_timedwait(pthread_cond_t *__restrict, pthread_mutex_t *__restrict, const struct timespec *__restrict);+int pthread_cond_broadcast(pthread_cond_t *);+int pthread_cond_signal(pthread_cond_t *);++int pthread_rwlock_init(pthread_rwlock_t *__restrict, const pthread_rwlockattr_t *__restrict);+int pthread_rwlock_destroy(pthread_rwlock_t *);+int pthread_rwlock_rdlock(pthread_rwlock_t *);+int pthread_rwlock_tryrdlock(pthread_rwlock_t *);+int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict, const struct timespec *__restrict);+int pthread_rwlock_wrlock(pthread_rwlock_t *);+int pthread_rwlock_trywrlock(pthread_rwlock_t *);+int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict, const struct timespec *__restrict);+int pthread_rwlock_unlock(pthread_rwlock_t *);++int pthread_spin_init(pthread_spinlock_t *, int);+int pthread_spin_destroy(pthread_spinlock_t *);+int pthread_spin_lock(pthread_spinlock_t *);+int pthread_spin_trylock(pthread_spinlock_t *);+int pthread_spin_unlock(pthread_spinlock_t *);++int pthread_barrier_init(pthread_barrier_t *__restrict, const pthread_barrierattr_t *__restrict, unsigned);+int pthread_barrier_destroy(pthread_barrier_t *);+int pthread_barrier_wait(pthread_barrier_t *);++int pthread_key_create(pthread_key_t *, void (*)(void *));+int pthread_key_delete(pthread_key_t);+void *pthread_getspecific(pthread_key_t);+int pthread_setspecific(pthread_key_t, const void *);++int pthread_attr_init(pthread_attr_t *);+int pthread_attr_destroy(pthread_attr_t *);++int pthread_attr_getguardsize(const pthread_attr_t *__restrict, size_t *__restrict);+int pthread_attr_setguardsize(pthread_attr_t *, size_t);+int pthread_attr_getstacksize(const pthread_attr_t *__restrict, size_t *__restrict);+int pthread_attr_setstacksize(pthread_attr_t *, size_t);+int pthread_attr_getdetachstate(const pthread_attr_t *, int *);+int pthread_attr_setdetachstate(pthread_attr_t *, int);+int pthread_attr_getstack(const pthread_attr_t *__restrict, void **__restrict, size_t *__restrict);+int pthread_attr_setstack(pthread_attr_t *, void *, size_t);+int pthread_attr_getscope(const pthread_attr_t *__restrict, int *__restrict);+int pthread_attr_setscope(pthread_attr_t *, int);+int pthread_attr_getschedpolicy(const pthread_attr_t *__restrict, int *__restrict);+int pthread_attr_setschedpolicy(pthread_attr_t *, int);+int pthread_attr_getschedparam(const pthread_attr_t *__restrict, struct sched_param *__restrict);+int pthread_attr_setschedparam(pthread_attr_t *__restrict, const struct sched_param *__restrict);+int pthread_attr_getinheritsched(const pthread_attr_t *__restrict, int *__restrict);+int pthread_attr_setinheritsched(pthread_attr_t *, int);++int pthread_mutexattr_destroy(pthread_mutexattr_t *);+int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_getpshared(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_getrobust(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_gettype(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_init(pthread_mutexattr_t *);+int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);+int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);+int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);+int pthread_mutexattr_setrobust(pthread_mutexattr_t *, int);+int pthread_mutexattr_settype(pthread_mutexattr_t *, int);++int pthread_condattr_init(pthread_condattr_t *);+int pthread_condattr_destroy(pthread_condattr_t *);+int pthread_condattr_setclock(pthread_condattr_t *, clockid_t);+int pthread_condattr_setpshared(pthread_condattr_t *, int);+int pthread_condattr_getclock(const pthread_condattr_t *__restrict, clockid_t *__restrict);+int pthread_condattr_getpshared(const pthread_condattr_t *__restrict, int *__restrict);++int pthread_rwlockattr_init(pthread_rwlockattr_t *);+int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);+int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);+int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *__restrict, int *__restrict);++int pthread_barrierattr_destroy(pthread_barrierattr_t *);+int pthread_barrierattr_getpshared(const pthread_barrierattr_t *__restrict, int *__restrict);+int pthread_barrierattr_init(pthread_barrierattr_t *);+int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int);++int pthread_atfork(void (*)(void), void (*)(void), void (*)(void));++int pthread_getconcurrency(void);+int pthread_setconcurrency(int);++int pthread_getcpuclockid(pthread_t, clockid_t *);++struct __ptcb {+ void (*__f)(void *);+ void *__x;+ struct __ptcb *__next;+};++void _pthread_cleanup_push(struct __ptcb *, void (*)(void *), void *);+void _pthread_cleanup_pop(struct __ptcb *, int);++#define pthread_cleanup_push(f, x) do { struct __ptcb __cb; _pthread_cleanup_push(&__cb, f, x);+#define pthread_cleanup_pop(r) _pthread_cleanup_pop(&__cb, (r)); } while(0)++#ifdef _GNU_SOURCE+struct cpu_set_t;+int pthread_getaffinity_np(pthread_t, size_t, struct cpu_set_t *);+int pthread_setaffinity_np(pthread_t, size_t, const struct cpu_set_t *);+int pthread_getattr_np(pthread_t, pthread_attr_t *);+int pthread_setname_np(pthread_t, const char *);+int pthread_getname_np(pthread_t, char *, size_t);+int pthread_getattr_default_np(pthread_attr_t *);+int pthread_setattr_default_np(const pthread_attr_t *);+int pthread_tryjoin_np(pthread_t, void **);+int pthread_timedjoin_np(pthread_t, void **, const struct timespec *);+#endif++#if _REDIR_TIME64+__REDIR(pthread_mutex_timedlock, __pthread_mutex_timedlock_time64);+__REDIR(pthread_cond_timedwait, __pthread_cond_timedwait_time64);+__REDIR(pthread_rwlock_timedrdlock, __pthread_rwlock_timedrdlock_time64);+__REDIR(pthread_rwlock_timedwrlock, __pthread_rwlock_timedwrlock_time64);+#ifdef _GNU_SOURCE+__REDIR(pthread_timedjoin_np, __pthread_timedjoin_np_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,18 @@+#ifndef _PTY_H+#define _PTY_H++#ifdef __cplusplus+extern "C" {+#endif++#include <termios.h>+#include <sys/ioctl.h>++int openpty(int *, int *, char *, const struct termios *, const struct winsize *);+int forkpty(int *, char *, const struct termios *, const struct winsize *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,50 @@+#ifndef _PWD_H+#define _PWD_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_uid_t+#define __NEED_gid_t++#ifdef _GNU_SOURCE+#define __NEED_FILE+#endif++#include <bits/alltypes.h>++struct passwd {+ char *pw_name;+ char *pw_passwd;+ uid_t pw_uid;+ gid_t pw_gid;+ char *pw_gecos;+ char *pw_dir;+ char *pw_shell;+};++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+void setpwent (void);+void endpwent (void);+struct passwd *getpwent (void);+#endif++struct passwd *getpwuid (uid_t);+struct passwd *getpwnam (const char *);+int getpwuid_r (uid_t, struct passwd *, char *, size_t, struct passwd **);+int getpwnam_r (const char *, struct passwd *, char *, size_t, struct passwd **);++#ifdef _GNU_SOURCE+struct passwd *fgetpwent(FILE *);+int putpwent(const struct passwd *, FILE *);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,62 @@+#ifndef _REGEX_H+#define _REGEX_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_regoff_t+#define __NEED_size_t++#include <bits/alltypes.h>++typedef struct re_pattern_buffer {+ size_t re_nsub;+ void *__opaque, *__padding[4];+ size_t __nsub2;+ char __padding2;+} regex_t;++typedef struct {+ regoff_t rm_so;+ regoff_t rm_eo;+} regmatch_t;++#define REG_EXTENDED 1+#define REG_ICASE 2+#define REG_NEWLINE 4+#define REG_NOSUB 8++#define REG_NOTBOL 1+#define REG_NOTEOL 2++#define REG_OK 0+#define REG_NOMATCH 1+#define REG_BADPAT 2+#define REG_ECOLLATE 3+#define REG_ECTYPE 4+#define REG_EESCAPE 5+#define REG_ESUBREG 6+#define REG_EBRACK 7+#define REG_EPAREN 8+#define REG_EBRACE 9+#define REG_BADBR 10+#define REG_ERANGE 11+#define REG_ESPACE 12+#define REG_BADRPT 13++#define REG_ENOSYS -1++int regcomp(regex_t *__restrict, const char *__restrict, int);+int regexec(const regex_t *__restrict, const char *__restrict, size_t, regmatch_t *__restrict, int);+void regfree(regex_t *);++size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,142 @@+#ifndef _RESOLV_H+#define _RESOLV_H++#include <stdint.h>+#include <arpa/nameser.h>+#include <netinet/in.h>++#ifdef __cplusplus+extern "C" {+#endif++#define MAXNS 3+#define MAXDFLSRCH 3+#define MAXDNSRCH 6+#define LOCALDOMAINPARTS 2++#define RES_TIMEOUT 5+#define MAXRESOLVSORT 10+#define RES_MAXNDOTS 15+#define RES_MAXRETRANS 30+#define RES_MAXRETRY 5+#define RES_DFLRETRY 2+#define RES_MAXTIME 65535++/* unused; purely for broken apps */+typedef struct __res_state {+ int retrans;+ int retry;+ unsigned long options;+ int nscount;+ struct sockaddr_in nsaddr_list[MAXNS];+# define nsaddr nsaddr_list[0]+ unsigned short id;+ char *dnsrch[MAXDNSRCH+1];+ char defdname[256];+ unsigned long pfcode;+ unsigned ndots:4;+ unsigned nsort:4;+ unsigned ipv6_unavail:1;+ unsigned unused:23;+ struct {+ struct in_addr addr;+ uint32_t mask;+ } sort_list[MAXRESOLVSORT];+ void *qhook;+ void *rhook;+ int res_h_errno;+ int _vcsock;+ unsigned _flags;+ union {+ char pad[52];+ struct {+ uint16_t nscount;+ uint16_t nsmap[MAXNS];+ int nssocks[MAXNS];+ uint16_t nscount6;+ uint16_t nsinit;+ struct sockaddr_in6 *nsaddrs[MAXNS];+ unsigned int _initstamp[2];+ } _ext;+ } _u;+} *res_state;++#define __RES 19960801++#ifndef _PATH_RESCONF+#define _PATH_RESCONF "/etc/resolv.conf"+#endif++struct res_sym {+ int number;+ char *name;+ char *humanname;+};++#define RES_F_VC 0x00000001+#define RES_F_CONN 0x00000002+#define RES_F_EDNS0ERR 0x00000004++#define RES_EXHAUSTIVE 0x00000001++#define RES_INIT 0x00000001+#define RES_DEBUG 0x00000002+#define RES_AAONLY 0x00000004+#define RES_USEVC 0x00000008+#define RES_PRIMARY 0x00000010+#define RES_IGNTC 0x00000020+#define RES_RECURSE 0x00000040+#define RES_DEFNAMES 0x00000080+#define RES_STAYOPEN 0x00000100+#define RES_DNSRCH 0x00000200+#define RES_INSECURE1 0x00000400+#define RES_INSECURE2 0x00000800+#define RES_NOALIASES 0x00001000+#define RES_USE_INET6 0x00002000+#define RES_ROTATE 0x00004000+#define RES_NOCHECKNAME 0x00008000+#define RES_KEEPTSIG 0x00010000+#define RES_BLAST 0x00020000+#define RES_USEBSTRING 0x00040000+#define RES_NOIP6DOTINT 0x00080000+#define RES_USE_EDNS0 0x00100000+#define RES_SNGLKUP 0x00200000+#define RES_SNGLKUPREOP 0x00400000+#define RES_USE_DNSSEC 0x00800000++#define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT)++#define RES_PRF_STATS 0x00000001+#define RES_PRF_UPDATE 0x00000002+#define RES_PRF_CLASS 0x00000004+#define RES_PRF_CMD 0x00000008+#define RES_PRF_QUES 0x00000010+#define RES_PRF_ANS 0x00000020+#define RES_PRF_AUTH 0x00000040+#define RES_PRF_ADD 0x00000080+#define RES_PRF_HEAD1 0x00000100+#define RES_PRF_HEAD2 0x00000200+#define RES_PRF_TTLID 0x00000400+#define RES_PRF_HEADX 0x00000800+#define RES_PRF_QUERY 0x00001000+#define RES_PRF_REPLY 0x00002000+#define RES_PRF_INIT 0x00004000++struct __res_state *__res_state(void);+#define _res (*__res_state())++int res_init(void);+int res_query(const char *, int, int, unsigned char *, int);+int res_querydomain(const char *, const char *, int, int, unsigned char *, int);+int res_search(const char *, int, int, unsigned char *, int);+int res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);+int res_send(const unsigned char *, int, unsigned char *, int);+int dn_comp(const char *, unsigned char *, int, unsigned char **, unsigned char **);+int dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);+int dn_skipname(const unsigned char *, const unsigned char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,148 @@+#ifndef _SCHED_H+#define _SCHED_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_struct_timespec+#define __NEED_pid_t+#define __NEED_time_t++#ifdef _GNU_SOURCE+#define __NEED_size_t+#endif++#include <bits/alltypes.h>++struct sched_param {+ int sched_priority;+ int __reserved1;+#if _REDIR_TIME64+ long __reserved2[4];+#else+ struct {+ time_t __reserved1;+ long __reserved2;+ } __reserved2[2];+#endif+ int __reserved3;+};++int sched_get_priority_max(int);+int sched_get_priority_min(int);+int sched_getparam(pid_t, struct sched_param *);+int sched_getscheduler(pid_t);+int sched_rr_get_interval(pid_t, struct timespec *);+int sched_setparam(pid_t, const struct sched_param *);+int sched_setscheduler(pid_t, int, const struct sched_param *);+int sched_yield(void);++#define SCHED_OTHER 0+#define SCHED_FIFO 1+#define SCHED_RR 2+#define SCHED_BATCH 3+#define SCHED_IDLE 5+#define SCHED_DEADLINE 6+#define SCHED_RESET_ON_FORK 0x40000000++#ifdef _GNU_SOURCE+#define CSIGNAL 0x000000ff+#define CLONE_NEWTIME 0x00000080+#define CLONE_VM 0x00000100+#define CLONE_FS 0x00000200+#define CLONE_FILES 0x00000400+#define CLONE_SIGHAND 0x00000800+#define CLONE_PIDFD 0x00001000+#define CLONE_PTRACE 0x00002000+#define CLONE_VFORK 0x00004000+#define CLONE_PARENT 0x00008000+#define CLONE_THREAD 0x00010000+#define CLONE_NEWNS 0x00020000+#define CLONE_SYSVSEM 0x00040000+#define CLONE_SETTLS 0x00080000+#define CLONE_PARENT_SETTID 0x00100000+#define CLONE_CHILD_CLEARTID 0x00200000+#define CLONE_DETACHED 0x00400000+#define CLONE_UNTRACED 0x00800000+#define CLONE_CHILD_SETTID 0x01000000+#define CLONE_NEWCGROUP 0x02000000+#define CLONE_NEWUTS 0x04000000+#define CLONE_NEWIPC 0x08000000+#define CLONE_NEWUSER 0x10000000+#define CLONE_NEWPID 0x20000000+#define CLONE_NEWNET 0x40000000+#define CLONE_IO 0x80000000+int clone (int (*)(void *), void *, int, void *, ...);+int unshare(int);+int setns(int, int);++void *memcpy(void *__restrict, const void *__restrict, size_t);+int memcmp(const void *, const void *, size_t);+void *memset (void *, int, size_t);+void *calloc(size_t, size_t);+void free(void *);++typedef struct cpu_set_t { unsigned long __bits[128/sizeof(long)]; } cpu_set_t;+int __sched_cpucount(size_t, const cpu_set_t *);+int sched_getcpu(void);+int sched_getaffinity(pid_t, size_t, cpu_set_t *);+int sched_setaffinity(pid_t, size_t, const cpu_set_t *);++#define __CPU_op_S(i, size, set, op) ( (i)/8U >= (size) ? 0 : \+ (((unsigned long *)(set))[(i)/8/sizeof(long)] op (1UL<<((i)%(8*sizeof(long))))) )++#define CPU_SET_S(i, size, set) __CPU_op_S(i, size, set, |=)+#define CPU_CLR_S(i, size, set) __CPU_op_S(i, size, set, &=~)+#define CPU_ISSET_S(i, size, set) __CPU_op_S(i, size, set, &)++#define __CPU_op_func_S(func, op) \+static __inline void __CPU_##func##_S(size_t __size, cpu_set_t *__dest, \+ const cpu_set_t *__src1, const cpu_set_t *__src2) \+{ \+ size_t __i; \+ for (__i=0; __i<__size/sizeof(long); __i++) \+ ((unsigned long *)__dest)[__i] = ((unsigned long *)__src1)[__i] \+ op ((unsigned long *)__src2)[__i] ; \+}++__CPU_op_func_S(AND, &)+__CPU_op_func_S(OR, |)+__CPU_op_func_S(XOR, ^)++#define CPU_AND_S(a,b,c,d) __CPU_AND_S(a,b,c,d)+#define CPU_OR_S(a,b,c,d) __CPU_OR_S(a,b,c,d)+#define CPU_XOR_S(a,b,c,d) __CPU_XOR_S(a,b,c,d)++#define CPU_COUNT_S(size,set) __sched_cpucount(size,set)+#define CPU_ZERO_S(size,set) memset(set,0,size)+#define CPU_EQUAL_S(size,set1,set2) (!memcmp(set1,set2,size))++#define CPU_ALLOC_SIZE(n) (sizeof(long) * ( (n)/(8*sizeof(long)) \+ + ((n)%(8*sizeof(long)) + 8*sizeof(long)-1)/(8*sizeof(long)) ) )+#define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))+#define CPU_FREE(set) free(set)++#define CPU_SETSIZE 1024++#define CPU_SET(i, set) CPU_SET_S(i,sizeof(cpu_set_t),set)+#define CPU_CLR(i, set) CPU_CLR_S(i,sizeof(cpu_set_t),set)+#define CPU_ISSET(i, set) CPU_ISSET_S(i,sizeof(cpu_set_t),set)+#define CPU_AND(d,s1,s2) CPU_AND_S(sizeof(cpu_set_t),d,s1,s2)+#define CPU_OR(d,s1,s2) CPU_OR_S(sizeof(cpu_set_t),d,s1,s2)+#define CPU_XOR(d,s1,s2) CPU_XOR_S(sizeof(cpu_set_t),d,s1,s2)+#define CPU_COUNT(set) CPU_COUNT_S(sizeof(cpu_set_t),set)+#define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t),set)+#define CPU_EQUAL(s1,s2) CPU_EQUAL_S(sizeof(cpu_set_t),s1,s2)++#endif++#if _REDIR_TIME64+__REDIR(sched_rr_get_interval, __sched_rr_get_interval_time64);+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,150 @@+#ifndef _SCSI_SCSI_H+#define _SCSI_SCSI_H++#define TEST_UNIT_READY 0x00+#define REZERO_UNIT 0x01+#define REQUEST_SENSE 0x03+#define FORMAT_UNIT 0x04+#define READ_BLOCK_LIMITS 0x05+#define REASSIGN_BLOCKS 0x07+#define READ_6 0x08+#define WRITE_6 0x0a+#define SEEK_6 0x0b+#define READ_REVERSE 0x0f+#define WRITE_FILEMARKS 0x10+#define SPACE 0x11+#define INQUIRY 0x12+#define RECOVER_BUFFERED_DATA 0x14+#define MODE_SELECT 0x15+#define RESERVE 0x16+#define RELEASE 0x17+#define COPY 0x18+#define ERASE 0x19+#define MODE_SENSE 0x1a+#define START_STOP 0x1b+#define RECEIVE_DIAGNOSTIC 0x1c+#define SEND_DIAGNOSTIC 0x1d+#define ALLOW_MEDIUM_REMOVAL 0x1e+#define SET_WINDOW 0x24+#define READ_CAPACITY 0x25+#define READ_10 0x28+#define WRITE_10 0x2a+#define SEEK_10 0x2b+#define WRITE_VERIFY 0x2e+#define VERIFY 0x2f+#define SEARCH_HIGH 0x30+#define SEARCH_EQUAL 0x31+#define SEARCH_LOW 0x32+#define SET_LIMITS 0x33+#define PRE_FETCH 0x34+#define READ_POSITION 0x34+#define SYNCHRONIZE_CACHE 0x35+#define LOCK_UNLOCK_CACHE 0x36+#define READ_DEFECT_DATA 0x37+#define MEDIUM_SCAN 0x38+#define COMPARE 0x39+#define COPY_VERIFY 0x3a+#define WRITE_BUFFER 0x3b+#define READ_BUFFER 0x3c+#define UPDATE_BLOCK 0x3d+#define READ_LONG 0x3e+#define WRITE_LONG 0x3f+#define CHANGE_DEFINITION 0x40+#define WRITE_SAME 0x41+#define READ_TOC 0x43+#define LOG_SELECT 0x4c+#define LOG_SENSE 0x4d+#define MODE_SELECT_10 0x55+#define RESERVE_10 0x56+#define RELEASE_10 0x57+#define MODE_SENSE_10 0x5a+#define PERSISTENT_RESERVE_IN 0x5e+#define PERSISTENT_RESERVE_OUT 0x5f+#define MOVE_MEDIUM 0xa5+#define READ_12 0xa8+#define WRITE_12 0xaa+#define WRITE_VERIFY_12 0xae+#define SEARCH_HIGH_12 0xb0+#define SEARCH_EQUAL_12 0xb1+#define SEARCH_LOW_12 0xb2+#define READ_ELEMENT_STATUS 0xb8+#define SEND_VOLUME_TAG 0xb6+#define WRITE_LONG_2 0xea+#define GOOD 0x00+#define CHECK_CONDITION 0x01+#define CONDITION_GOOD 0x02+#define BUSY 0x04+#define INTERMEDIATE_GOOD 0x08+#define INTERMEDIATE_C_GOOD 0x0a+#define RESERVATION_CONFLICT 0x0c+#define COMMAND_TERMINATED 0x11+#define QUEUE_FULL 0x14+#define STATUS_MASK 0x3e+#define NO_SENSE 0x00+#define RECOVERED_ERROR 0x01+#define NOT_READY 0x02+#define MEDIUM_ERROR 0x03+#define HARDWARE_ERROR 0x04+#define ILLEGAL_REQUEST 0x05+#define UNIT_ATTENTION 0x06+#define DATA_PROTECT 0x07+#define BLANK_CHECK 0x08+#define COPY_ABORTED 0x0a+#define ABORTED_COMMAND 0x0b+#define VOLUME_OVERFLOW 0x0d+#define MISCOMPARE 0x0e+#define TYPE_DISK 0x00+#define TYPE_TAPE 0x01+#define TYPE_PROCESSOR 0x03+#define TYPE_WORM 0x04+#define TYPE_ROM 0x05+#define TYPE_SCANNER 0x06+#define TYPE_MOD 0x07+#define TYPE_MEDIUM_CHANGER 0x08+#define TYPE_ENCLOSURE 0x0d+#define TYPE_NO_LUN 0x7f+#define COMMAND_COMPLETE 0x00+#define EXTENDED_MESSAGE 0x01+#define EXTENDED_MODIFY_DATA_POINTER 0x00+#define EXTENDED_SDTR 0x01+#define EXTENDED_EXTENDED_IDENTIFY 0x02+#define EXTENDED_WDTR 0x03+#define SAVE_POINTERS 0x02+#define RESTORE_POINTERS 0x03+#define DISCONNECT 0x04+#define INITIATOR_ERROR 0x05+#define ABORT 0x06+#define MESSAGE_REJECT 0x07+#define NOP 0x08+#define MSG_PARITY_ERROR 0x09+#define LINKED_CMD_COMPLETE 0x0a+#define LINKED_FLG_CMD_COMPLETE 0x0b+#define BUS_DEVICE_RESET 0x0c+#define INITIATE_RECOVERY 0x0f+#define RELEASE_RECOVERY 0x10+#define SIMPLE_QUEUE_TAG 0x20+#define HEAD_OF_QUEUE_TAG 0x21+#define ORDERED_QUEUE_TAG 0x22+#define SCSI_IOCTL_GET_IDLUN 0x5382+#define SCSI_IOCTL_TAGGED_ENABLE 0x5383+#define SCSI_IOCTL_TAGGED_DISABLE 0x5384+#define SCSI_IOCTL_PROBE_HOST 0x5385+#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386++struct ccs_modesel_head {+ unsigned char _r1;+ unsigned char medium;+ unsigned char _r2;+ unsigned char block_desc_length;+ unsigned char density;+ unsigned char number_blocks_hi;+ unsigned char number_blocks_med;+ unsigned char number_blocks_lo;+ unsigned char _r3;+ unsigned char block_length_hi;+ unsigned char block_length_med;+ unsigned char block_length_lo;+};++#endif+
@@ -0,0 +1,11 @@+#ifndef _SCSI_IOCTL_H+#define _SCSI_IOCTL_H+#define SCSI_IOCTL_SEND_COMMAND 1+#define SCSI_IOCTL_TEST_UNIT_READY 2+#define SCSI_IOCTL_BENCHMARK_COMMAND 3+#define SCSI_IOCTL_SYNC 4+#define SCSI_IOCTL_START_UNIT 5+#define SCSI_IOCTL_STOP_UNIT 6+#define SCSI_IOCTL_DOORLOCK 0x5380+#define SCSI_IOCTL_DOORUNLOCK 0x5381+#endif
@@ -0,0 +1,129 @@+#ifndef _SCSI_SG_H+#define _SCSI_SG_H++#define SG_DXFER_NONE -1+#define SG_DXFER_TO_DEV -2+#define SG_DXFER_FROM_DEV -3+#define SG_DXFER_TO_FROM_DEV -4+#define SG_FLAG_DIRECT_IO 1+#define SG_FLAG_LUN_INHIBIT 2+#define SG_FLAG_NO_DXFER 0x10000+#define SG_INFO_OK_MASK 0x1+#define SG_INFO_OK 0x0+#define SG_INFO_CHECK 0x1+#define SG_INFO_DIRECT_IO_MASK 0x6+#define SG_INFO_INDIRECT_IO 0x0+#define SG_INFO_DIRECT_IO 0x2+#define SG_INFO_MIXED_IO 0x4+#define SG_EMULATED_HOST 0x2203+#define SG_SET_TRANSFORM 0x2204+#define SG_GET_TRANSFORM 0x2205+#define SG_SET_RESERVED_SIZE 0x2275+#define SG_GET_RESERVED_SIZE 0x2272+#define SG_GET_SCSI_ID 0x2276+#define SG_SET_FORCE_LOW_DMA 0x2279+#define SG_GET_LOW_DMA 0x227a+#define SG_SET_FORCE_PACK_ID 0x227b+#define SG_GET_PACK_ID 0x227c+#define SG_GET_NUM_WAITING 0x227d+#define SG_GET_SG_TABLESIZE 0x227F+#define SG_GET_VERSION_NUM 0x2282+#define SG_SCSI_RESET 0x2284+#define SG_SCSI_RESET_NOTHING 0+#define SG_SCSI_RESET_DEVICE 1+#define SG_SCSI_RESET_BUS 2+#define SG_SCSI_RESET_HOST 3+#define SG_IO 0x2285+#define SG_GET_REQUEST_TABLE 0x2286+#define SG_SET_KEEP_ORPHAN 0x2287+#define SG_GET_KEEP_ORPHAN 0x2288+#define SG_SCATTER_SZ (8 * 4096)+#define SG_DEFAULT_RETRIES 1+#define SG_DEF_FORCE_LOW_DMA 0+#define SG_DEF_FORCE_PACK_ID 0+#define SG_DEF_KEEP_ORPHAN 0+#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ+#define SG_MAX_QUEUE 16+#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE+#define SG_MAX_SENSE 16+#define SG_SET_TIMEOUT 0x2201+#define SG_GET_TIMEOUT 0x2202+#define SG_GET_COMMAND_Q 0x2270+#define SG_SET_COMMAND_Q 0x2271+#define SG_SET_DEBUG 0x227e+#define SG_NEXT_CMD_LEN 0x2283+#define SG_DEFAULT_TIMEOUT (60*100) /* 60*HZ */+#define SG_DEF_COMMAND_Q 0+#define SG_DEF_UNDERRUN_FLAG 0++typedef struct sg_iovec {+ void *iov_base;+ unsigned long iov_len;+} sg_iovec_t;++typedef struct sg_io_hdr { + int interface_id; + int dxfer_direction; + unsigned char cmd_len;+ unsigned char mx_sb_len;+ unsigned short iovec_count;+ unsigned dxfer_len;+ void *dxferp;+ unsigned char *cmdp;+ unsigned char *sbp;+ unsigned timeout;+ unsigned flags;+ int pack_id;+ void *usr_ptr;+ unsigned char status;+ unsigned char masked_status;+ unsigned char msg_status;+ unsigned char sb_len_wr;+ unsigned short host_status;+ unsigned short driver_status;+ int resid; + unsigned int duration;+ unsigned int info;+} sg_io_hdr_t;++struct sg_scsi_id {+ int host_no;+ int channel;+ int scsi_id;+ int lun;+ int scsi_type;+ short h_cmd_per_lun;+ short d_queue_depth;+ int unused[2];+};++typedef struct sg_req_info {+ char req_state;+ char orphan;+ char sg_io_owned;+ char problem;+ int pack_id;+ void *usr_ptr;+ unsigned duration; + int unused; +} sg_req_info_t;++typedef struct sg_io_hdr Sg_io_hdr;+typedef struct sg_io_vec Sg_io_vec;+typedef struct sg_scsi_id Sg_scsi_id;+typedef struct sg_req_info Sg_req_info;++struct sg_header {+ int pack_len;+ int reply_len;+ int pack_id;+ int result;+ unsigned twelve_byte:1;+ unsigned target_status:5;+ unsigned host_status:8;+ unsigned driver_status:8;+ unsigned other_flags:10;+ unsigned char sense_buffer[SG_MAX_SENSE];+};++#endif
@@ -0,0 +1,63 @@+#ifndef _SEARCH_H+#define _SEARCH_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#include <bits/alltypes.h>++typedef enum { FIND, ENTER } ACTION;+typedef enum { preorder, postorder, endorder, leaf } VISIT;++typedef struct entry {+ char *key;+ void *data;+} ENTRY;++int hcreate(size_t);+void hdestroy(void);+ENTRY *hsearch(ENTRY, ACTION);++#ifdef _GNU_SOURCE+struct hsearch_data {+ struct __tab *__tab;+ unsigned int __unused1;+ unsigned int __unused2;+};++int hcreate_r(size_t, struct hsearch_data *);+void hdestroy_r(struct hsearch_data *);+int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *);+#endif++void insque(void *, void *);+void remque(void *);++void *lsearch(const void *, void *, size_t *, size_t,+ int (*)(const void *, const void *));+void *lfind(const void *, const void *, size_t *, size_t,+ int (*)(const void *, const void *));++void *tdelete(const void *__restrict, void **__restrict, int(*)(const void *, const void *));+void *tfind(const void *, void *const *, int(*)(const void *, const void *));+void *tsearch(const void *, void **, int (*)(const void *, const void *));+void twalk(const void *, void (*)(const void *, VISIT, int));++#ifdef _GNU_SOURCE+struct qelem {+ struct qelem *q_forw, *q_back;+ char q_data[1];+};++void tdestroy(void *, void (*)(void *));+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,39 @@+#ifndef _SEMAPHORE_H+#define _SEMAPHORE_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_time_t+#define __NEED_struct_timespec+#include <bits/alltypes.h>++#include <fcntl.h>++#define SEM_FAILED ((sem_t *)0)++typedef struct {+ volatile int __val[4*sizeof(long)/sizeof(int)];+} sem_t;++int sem_close(sem_t *);+int sem_destroy(sem_t *);+int sem_getvalue(sem_t *__restrict, int *__restrict);+int sem_init(sem_t *, int, unsigned);+sem_t *sem_open(const char *, int, ...);+int sem_post(sem_t *);+int sem_timedwait(sem_t *__restrict, const struct timespec *__restrict);+int sem_trywait(sem_t *);+int sem_unlink(const char *);+int sem_wait(sem_t *);++#if _REDIR_TIME64+__REDIR(sem_timedwait, __sem_timedwait_time64);+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,49 @@+#ifndef _SETJMP_H+#define _SETJMP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <bits/setjmp.h>++typedef struct __jmp_buf_tag {+ __jmp_buf __jb;+ unsigned long __fl;+ unsigned long __ss[128/sizeof(long)];+} jmp_buf[1];++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)+#define __setjmp_attr __attribute__((__returns_twice__))+#else+#define __setjmp_attr+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+typedef jmp_buf sigjmp_buf;+int sigsetjmp (sigjmp_buf, int) __setjmp_attr;+_Noreturn void siglongjmp (sigjmp_buf, int);+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+int _setjmp (jmp_buf) __setjmp_attr;+_Noreturn void _longjmp (jmp_buf, int);+#endif++int setjmp (jmp_buf) __setjmp_attr;+_Noreturn void longjmp (jmp_buf, int);++#define setjmp setjmp++#undef __setjmp_attr++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,44 @@+#ifndef _SHADOW_H+#define _SHADOW_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_FILE+#define __NEED_size_t++#include <bits/alltypes.h>++#define SHADOW "/etc/shadow"++struct spwd {+ char *sp_namp;+ char *sp_pwdp;+ long sp_lstchg;+ long sp_min;+ long sp_max;+ long sp_warn;+ long sp_inact;+ long sp_expire;+ unsigned long sp_flag;+};++void setspent(void);+void endspent(void);+struct spwd *getspent(void);+struct spwd *fgetspent(FILE *);+struct spwd *sgetspent(const char *);+int putspent(const struct spwd *, FILE *);++struct spwd *getspnam(const char *);+int getspnam_r(const char *, struct spwd *, char *, size_t, struct spwd **);++int lckpwdf(void);+int ulckpwdf(void);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,304 @@+#ifndef _SIGNAL_H+#define _SIGNAL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++#ifdef _GNU_SOURCE+#define __ucontext ucontext+#endif++#define __NEED_size_t+#define __NEED_pid_t+#define __NEED_uid_t+#define __NEED_struct_timespec+#define __NEED_pthread_t+#define __NEED_pthread_attr_t+#define __NEED_time_t+#define __NEED_clock_t+#define __NEED_sigset_t++#include <bits/alltypes.h>++#define SIG_BLOCK 0+#define SIG_UNBLOCK 1+#define SIG_SETMASK 2++#define SI_ASYNCNL (-60)+#define SI_TKILL (-6)+#define SI_SIGIO (-5)+#define SI_ASYNCIO (-4)+#define SI_MESGQ (-3)+#define SI_TIMER (-2)+#define SI_QUEUE (-1)+#define SI_USER 0+#define SI_KERNEL 128++typedef struct sigaltstack stack_t;++#endif++#include <bits/signal.h>++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++#define SIG_HOLD ((void (*)(int)) 2)++#define FPE_INTDIV 1+#define FPE_INTOVF 2+#define FPE_FLTDIV 3+#define FPE_FLTOVF 4+#define FPE_FLTUND 5+#define FPE_FLTRES 6+#define FPE_FLTINV 7+#define FPE_FLTSUB 8++#define ILL_ILLOPC 1+#define ILL_ILLOPN 2+#define ILL_ILLADR 3+#define ILL_ILLTRP 4+#define ILL_PRVOPC 5+#define ILL_PRVREG 6+#define ILL_COPROC 7+#define ILL_BADSTK 8++#define SEGV_MAPERR 1+#define SEGV_ACCERR 2+#define SEGV_BNDERR 3+#define SEGV_PKUERR 4+#define SEGV_MTEAERR 8+#define SEGV_MTESERR 9++#define BUS_ADRALN 1+#define BUS_ADRERR 2+#define BUS_OBJERR 3+#define BUS_MCEERR_AR 4+#define BUS_MCEERR_AO 5++#define CLD_EXITED 1+#define CLD_KILLED 2+#define CLD_DUMPED 3+#define CLD_TRAPPED 4+#define CLD_STOPPED 5+#define CLD_CONTINUED 6++union sigval {+ int sival_int;+ void *sival_ptr;+};++typedef struct {+#ifdef __SI_SWAP_ERRNO_CODE+ int si_signo, si_code, si_errno;+#else+ int si_signo, si_errno, si_code;+#endif+ union {+ char __pad[128 - 2*sizeof(int) - sizeof(long)];+ struct {+ union {+ struct {+ pid_t si_pid;+ uid_t si_uid;+ } __piduid;+ struct {+ int si_timerid;+ int si_overrun;+ } __timer;+ } __first;+ union {+ union sigval si_value;+ struct {+ int si_status;+ clock_t si_utime, si_stime;+ } __sigchld;+ } __second;+ } __si_common;+ struct {+ void *si_addr;+ short si_addr_lsb;+ union {+ struct {+ void *si_lower;+ void *si_upper;+ } __addr_bnd;+ unsigned si_pkey;+ } __first;+ } __sigfault;+ struct {+ long si_band;+ int si_fd;+ } __sigpoll;+ struct {+ void *si_call_addr;+ int si_syscall;+ unsigned si_arch;+ } __sigsys;+ } __si_fields;+} siginfo_t;+#define si_pid __si_fields.__si_common.__first.__piduid.si_pid+#define si_uid __si_fields.__si_common.__first.__piduid.si_uid+#define si_status __si_fields.__si_common.__second.__sigchld.si_status+#define si_utime __si_fields.__si_common.__second.__sigchld.si_utime+#define si_stime __si_fields.__si_common.__second.__sigchld.si_stime+#define si_value __si_fields.__si_common.__second.si_value+#define si_addr __si_fields.__sigfault.si_addr+#define si_addr_lsb __si_fields.__sigfault.si_addr_lsb+#define si_lower __si_fields.__sigfault.__first.__addr_bnd.si_lower+#define si_upper __si_fields.__sigfault.__first.__addr_bnd.si_upper+#define si_pkey __si_fields.__sigfault.__first.si_pkey+#define si_band __si_fields.__sigpoll.si_band+#define si_fd __si_fields.__sigpoll.si_fd+#define si_timerid __si_fields.__si_common.__first.__timer.si_timerid+#define si_overrun __si_fields.__si_common.__first.__timer.si_overrun+#define si_ptr si_value.sival_ptr+#define si_int si_value.sival_int+#define si_call_addr __si_fields.__sigsys.si_call_addr+#define si_syscall __si_fields.__sigsys.si_syscall+#define si_arch __si_fields.__sigsys.si_arch++struct sigaction {+ union {+ void (*sa_handler)(int);+ void (*sa_sigaction)(int, siginfo_t *, void *);+ } __sa_handler;+ sigset_t sa_mask;+ int sa_flags;+ void (*sa_restorer)(void);+};+#define sa_handler __sa_handler.sa_handler+#define sa_sigaction __sa_handler.sa_sigaction++#define SA_UNSUPPORTED 0x00000400+#define SA_EXPOSE_TAGBITS 0x00000800++struct sigevent {+ union sigval sigev_value;+ int sigev_signo;+ int sigev_notify;+ union {+ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];+ pid_t sigev_notify_thread_id;+ struct {+ void (*sigev_notify_function)(union sigval);+ pthread_attr_t *sigev_notify_attributes;+ } __sev_thread;+ } __sev_fields;+};++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id+#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function+#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes++#define SIGEV_SIGNAL 0+#define SIGEV_NONE 1+#define SIGEV_THREAD 2+#define SIGEV_THREAD_ID 4++int __libc_current_sigrtmin(void);+int __libc_current_sigrtmax(void);++#define SIGRTMIN (__libc_current_sigrtmin())+#define SIGRTMAX (__libc_current_sigrtmax())++int kill(pid_t, int);++int sigemptyset(sigset_t *);+int sigfillset(sigset_t *);+int sigaddset(sigset_t *, int);+int sigdelset(sigset_t *, int);+int sigismember(const sigset_t *, int);++int sigprocmask(int, const sigset_t *__restrict, sigset_t *__restrict);+int sigsuspend(const sigset_t *);+int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict);+int sigpending(sigset_t *);+int sigwait(const sigset_t *__restrict, int *__restrict);+int sigwaitinfo(const sigset_t *__restrict, siginfo_t *__restrict);+int sigtimedwait(const sigset_t *__restrict, siginfo_t *__restrict, const struct timespec *__restrict);+int sigqueue(pid_t, int, union sigval);++int pthread_sigmask(int, const sigset_t *__restrict, sigset_t *__restrict);+int pthread_kill(pthread_t, int);++void psiginfo(const siginfo_t *, const char *);+void psignal(int, const char *);++#endif++#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+int killpg(pid_t, int);+int sigaltstack(const stack_t *__restrict, stack_t *__restrict);+int sighold(int);+int sigignore(int);+int siginterrupt(int, int);+int sigpause(int);+int sigrelse(int);+void (*sigset(int, void (*)(int)))(int);+#define TRAP_BRKPT 1+#define TRAP_TRACE 2+#define TRAP_BRANCH 3+#define TRAP_HWBKPT 4+#define TRAP_UNK 5+#define POLL_IN 1+#define POLL_OUT 2+#define POLL_MSG 3+#define POLL_ERR 4+#define POLL_PRI 5+#define POLL_HUP 6+#define SS_ONSTACK 1+#define SS_DISABLE 2+#define SS_AUTODISARM (1U << 31)+#define SS_FLAG_BITS SS_AUTODISARM+#endif++#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+#define NSIG _NSIG+typedef void (*sig_t)(int);++#define SYS_SECCOMP 1+#define SYS_USER_DISPATCH 2+#endif++#ifdef _GNU_SOURCE+typedef void (*sighandler_t)(int);+void (*bsd_signal(int, void (*)(int)))(int);+int sigisemptyset(const sigset_t *);+int sigorset (sigset_t *, const sigset_t *, const sigset_t *);+int sigandset(sigset_t *, const sigset_t *, const sigset_t *);++#define SA_NOMASK SA_NODEFER+#define SA_ONESHOT SA_RESETHAND+#endif++#define SIG_ERR ((void (*)(int))-1)+#define SIG_DFL ((void (*)(int)) 0)+#define SIG_IGN ((void (*)(int)) 1)++typedef int sig_atomic_t;++void (*signal(int, void (*)(int)))(int);+int raise(int);++#if _REDIR_TIME64+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+__REDIR(sigtimedwait, __sigtimedwait_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,83 @@+#ifndef _SPAWN_H+#define _SPAWN_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_mode_t+#define __NEED_pid_t+#define __NEED_sigset_t++#include <bits/alltypes.h>++struct sched_param;++#define POSIX_SPAWN_RESETIDS 1+#define POSIX_SPAWN_SETPGROUP 2+#define POSIX_SPAWN_SETSIGDEF 4+#define POSIX_SPAWN_SETSIGMASK 8+#define POSIX_SPAWN_SETSCHEDPARAM 16+#define POSIX_SPAWN_SETSCHEDULER 32+#define POSIX_SPAWN_USEVFORK 64+#define POSIX_SPAWN_SETSID 128++typedef struct {+ int __flags;+ pid_t __pgrp;+ sigset_t __def, __mask;+ int __prio, __pol;+ void *__fn;+ char __pad[64-sizeof(void *)];+} posix_spawnattr_t;++typedef struct {+ int __pad0[2];+ void *__actions;+ int __pad[16];+} posix_spawn_file_actions_t;++int posix_spawn(pid_t *__restrict, const char *__restrict, const posix_spawn_file_actions_t *,+ const posix_spawnattr_t *__restrict, char *const *__restrict, char *const *__restrict);+int posix_spawnp(pid_t *__restrict, const char *__restrict, const posix_spawn_file_actions_t *,+ const posix_spawnattr_t *__restrict, char *const *__restrict, char *const *__restrict);++int posix_spawnattr_init(posix_spawnattr_t *);+int posix_spawnattr_destroy(posix_spawnattr_t *);++int posix_spawnattr_setflags(posix_spawnattr_t *, short);+int posix_spawnattr_getflags(const posix_spawnattr_t *__restrict, short *__restrict);++int posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t);+int posix_spawnattr_getpgroup(const posix_spawnattr_t *__restrict, pid_t *__restrict);++int posix_spawnattr_setsigmask(posix_spawnattr_t *__restrict, const sigset_t *__restrict);+int posix_spawnattr_getsigmask(const posix_spawnattr_t *__restrict, sigset_t *__restrict);++int posix_spawnattr_setsigdefault(posix_spawnattr_t *__restrict, const sigset_t *__restrict);+int posix_spawnattr_getsigdefault(const posix_spawnattr_t *__restrict, sigset_t *__restrict);++int posix_spawnattr_setschedparam(posix_spawnattr_t *__restrict, const struct sched_param *__restrict);+int posix_spawnattr_getschedparam(const posix_spawnattr_t *__restrict, struct sched_param *__restrict);+int posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int);+int posix_spawnattr_getschedpolicy(const posix_spawnattr_t *__restrict, int *__restrict);++int posix_spawn_file_actions_init(posix_spawn_file_actions_t *);+int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *);++int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *__restrict, int, const char *__restrict, int, mode_t);+int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int);+int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int, int);++#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+int posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *__restrict, const char *__restrict);+int posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *, int);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,20 @@+#ifndef _STDALIGN_H+#define _STDALIGN_H++#ifndef __cplusplus++/* this whole header only works in C11 or with compiler extensions */+#if __STDC_VERSION__ < 201112L && defined( __GNUC__)+#define _Alignas(t) __attribute__((__aligned__(t)))+#define _Alignof(t) __alignof__(t)+#endif++#define alignas _Alignas+#define alignof _Alignof++#endif++#define __alignas_is_defined 1+#define __alignof_is_defined 1++#endif
@@ -0,0 +1,21 @@+#ifndef _STDARG_H+#define _STDARG_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_va_list++#include <bits/alltypes.h>++#define va_start(v,l) __builtin_va_start(v,l)+#define va_end(v) __builtin_va_end(v)+#define va_arg(v,l) __builtin_va_arg(v,l)+#define va_copy(d,s) __builtin_va_copy(d,s)++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,14 @@+#ifndef _STDBOOL_H+#define _STDBOOL_H++#ifndef __cplusplus++#define true 1+#define false 0+#define bool _Bool++#endif++#define __bool_true_false_are_defined 1++#endif
@@ -0,0 +1,18 @@+#ifndef _STDC_PREDEF_H+#define _STDC_PREDEF_H++#define __STDC_ISO_10646__ 201206L++#if !defined(__GCC_IEC_559) || __GCC_IEC_559 > 0+#define __STDC_IEC_559__ 1+#endif++#if !defined(__STDC_UTF_16__)+#define __STDC_UTF_16__ 1+#endif++#if !defined(__STDC_UTF_32__)+#define __STDC_UTF_32__ 1+#endif++#endif
@@ -0,0 +1,27 @@+#ifndef _STDDEF_H+#define _STDDEF_H++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define __NEED_ptrdiff_t+#define __NEED_size_t+#define __NEED_wchar_t+#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L+#define __NEED_max_align_t+#endif++#include <bits/alltypes.h>++#if __GNUC__ > 3+#define offsetof(type, member) __builtin_offsetof(type, member)+#else+#define offsetof(type, member) ((size_t)( (char *)&(((type *)0)->member) - (char *)0 ))+#endif++#endif
@@ -0,0 +1,117 @@+#ifndef _STDINT_H+#define _STDINT_H++#define __NEED_int8_t+#define __NEED_int16_t+#define __NEED_int32_t+#define __NEED_int64_t++#define __NEED_uint8_t+#define __NEED_uint16_t+#define __NEED_uint32_t+#define __NEED_uint64_t++#define __NEED_intptr_t+#define __NEED_uintptr_t++#define __NEED_intmax_t+#define __NEED_uintmax_t++#include <bits/alltypes.h>++typedef int8_t int_fast8_t;+typedef int64_t int_fast64_t;++typedef int8_t int_least8_t;+typedef int16_t int_least16_t;+typedef int32_t int_least32_t;+typedef int64_t int_least64_t;++typedef uint8_t uint_fast8_t;+typedef uint64_t uint_fast64_t;++typedef uint8_t uint_least8_t;+typedef uint16_t uint_least16_t;+typedef uint32_t uint_least32_t;+typedef uint64_t uint_least64_t;++#define INT8_MIN (-1-0x7f)+#define INT16_MIN (-1-0x7fff)+#define INT32_MIN (-1-0x7fffffff)+#define INT64_MIN (-1-0x7fffffffffffffff)++#define INT8_MAX (0x7f)+#define INT16_MAX (0x7fff)+#define INT32_MAX (0x7fffffff)+#define INT64_MAX (0x7fffffffffffffff)++#define UINT8_MAX (0xff)+#define UINT16_MAX (0xffff)+#define UINT32_MAX (0xffffffffu)+#define UINT64_MAX (0xffffffffffffffffu)++#define INT_FAST8_MIN INT8_MIN+#define INT_FAST64_MIN INT64_MIN++#define INT_LEAST8_MIN INT8_MIN+#define INT_LEAST16_MIN INT16_MIN+#define INT_LEAST32_MIN INT32_MIN+#define INT_LEAST64_MIN INT64_MIN++#define INT_FAST8_MAX INT8_MAX+#define INT_FAST64_MAX INT64_MAX++#define INT_LEAST8_MAX INT8_MAX+#define INT_LEAST16_MAX INT16_MAX+#define INT_LEAST32_MAX INT32_MAX+#define INT_LEAST64_MAX INT64_MAX++#define UINT_FAST8_MAX UINT8_MAX+#define UINT_FAST64_MAX UINT64_MAX++#define UINT_LEAST8_MAX UINT8_MAX+#define UINT_LEAST16_MAX UINT16_MAX+#define UINT_LEAST32_MAX UINT32_MAX+#define UINT_LEAST64_MAX UINT64_MAX++#define INTMAX_MIN INT64_MIN+#define INTMAX_MAX INT64_MAX+#define UINTMAX_MAX UINT64_MAX++#define WINT_MIN 0U+#define WINT_MAX UINT32_MAX++#if L'\0'-1 > 0+#define WCHAR_MAX (0xffffffffu+L'\0')+#define WCHAR_MIN (0+L'\0')+#else+#define WCHAR_MAX (0x7fffffff+L'\0')+#define WCHAR_MIN (-1-0x7fffffff+L'\0')+#endif++#define SIG_ATOMIC_MIN INT32_MIN+#define SIG_ATOMIC_MAX INT32_MAX++#include <bits/stdint.h>++#define INT8_C(c) c+#define INT16_C(c) c+#define INT32_C(c) c++#define UINT8_C(c) c+#define UINT16_C(c) c+#define UINT32_C(c) c ## U++#if UINTPTR_MAX == UINT64_MAX+#define INT64_C(c) c ## L+#define UINT64_C(c) c ## UL+#define INTMAX_C(c) c ## L+#define UINTMAX_C(c) c ## UL+#else+#define INT64_C(c) c ## LL+#define UINT64_C(c) c ## ULL+#define INTMAX_C(c) c ## LL+#define UINTMAX_C(c) c ## ULL+#endif++#endif
@@ -0,0 +1,224 @@+#ifndef _STDIO_H+#define _STDIO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_FILE+#define __NEED___isoc_va_list+#define __NEED_size_t++#if __STDC_VERSION__ < 201112L+#define __NEED_struct__IO_FILE+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+#define __NEED_ssize_t+#define __NEED_off_t+#define __NEED_va_list+#endif++#include <bits/alltypes.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#undef EOF+#define EOF (-1)++#undef SEEK_SET+#undef SEEK_CUR+#undef SEEK_END+#define SEEK_SET 0+#define SEEK_CUR 1+#define SEEK_END 2++#define _IOFBF 0+#define _IOLBF 1+#define _IONBF 2++#define BUFSIZ 1024+#define FILENAME_MAX 4096+#define FOPEN_MAX 1000+#define TMP_MAX 10000+#define L_tmpnam 20++typedef union _G_fpos64_t {+ char __opaque[16];+ long long __lldata;+ double __align;+} fpos_t;++extern FILE *const stdin;+extern FILE *const stdout;+extern FILE *const stderr;++#define stdin (stdin)+#define stdout (stdout)+#define stderr (stderr)++FILE *fopen(const char *__restrict, const char *__restrict);+FILE *freopen(const char *__restrict, const char *__restrict, FILE *__restrict);+int fclose(FILE *);++int remove(const char *);+int rename(const char *, const char *);++int feof(FILE *);+int ferror(FILE *);+int fflush(FILE *);+void clearerr(FILE *);++int fseek(FILE *, long, int);+long ftell(FILE *);+void rewind(FILE *);++int fgetpos(FILE *__restrict, fpos_t *__restrict);+int fsetpos(FILE *, const fpos_t *);++size_t fread(void *__restrict, size_t, size_t, FILE *__restrict);+size_t fwrite(const void *__restrict, size_t, size_t, FILE *__restrict);++int fgetc(FILE *);+int getc(FILE *);+int getchar(void);+int ungetc(int, FILE *);++int fputc(int, FILE *);+int putc(int, FILE *);+int putchar(int);++char *fgets(char *__restrict, int, FILE *__restrict);+#if __STDC_VERSION__ < 201112L+char *gets(char *);+#endif++int fputs(const char *__restrict, FILE *__restrict);+int puts(const char *);++int printf(const char *__restrict, ...);+int fprintf(FILE *__restrict, const char *__restrict, ...);+int sprintf(char *__restrict, const char *__restrict, ...);+int snprintf(char *__restrict, size_t, const char *__restrict, ...);++int vprintf(const char *__restrict, __isoc_va_list);+int vfprintf(FILE *__restrict, const char *__restrict, __isoc_va_list);+int vsprintf(char *__restrict, const char *__restrict, __isoc_va_list);+int vsnprintf(char *__restrict, size_t, const char *__restrict, __isoc_va_list);++int scanf(const char *__restrict, ...);+int fscanf(FILE *__restrict, const char *__restrict, ...);+int sscanf(const char *__restrict, const char *__restrict, ...);+int vscanf(const char *__restrict, __isoc_va_list);+int vfscanf(FILE *__restrict, const char *__restrict, __isoc_va_list);+int vsscanf(const char *__restrict, const char *__restrict, __isoc_va_list);++void perror(const char *);++int setvbuf(FILE *__restrict, char *__restrict, int, size_t);+void setbuf(FILE *__restrict, char *__restrict);++char *tmpnam(char *);+FILE *tmpfile(void);++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+FILE *fmemopen(void *__restrict, size_t, const char *__restrict);+FILE *open_memstream(char **, size_t *);+FILE *fdopen(int, const char *);+FILE *popen(const char *, const char *);+int pclose(FILE *);+int fileno(FILE *);+int fseeko(FILE *, off_t, int);+off_t ftello(FILE *);+int dprintf(int, const char *__restrict, ...);+int vdprintf(int, const char *__restrict, __isoc_va_list);+void flockfile(FILE *);+int ftrylockfile(FILE *);+void funlockfile(FILE *);+int getc_unlocked(FILE *);+int getchar_unlocked(void);+int putc_unlocked(int, FILE *);+int putchar_unlocked(int);+ssize_t getdelim(char **__restrict, size_t *__restrict, int, FILE *__restrict);+ssize_t getline(char **__restrict, size_t *__restrict, FILE *__restrict);+int renameat(int, const char *, int, const char *);+char *ctermid(char *);+#define L_ctermid 20+#endif+++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+#define P_tmpdir "/tmp"+char *tempnam(const char *, const char *);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define L_cuserid 20+char *cuserid(char *);+void setlinebuf(FILE *);+void setbuffer(FILE *, char *, size_t);+int fgetc_unlocked(FILE *);+int fputc_unlocked(int, FILE *);+int fflush_unlocked(FILE *);+size_t fread_unlocked(void *, size_t, size_t, FILE *);+size_t fwrite_unlocked(const void *, size_t, size_t, FILE *);+void clearerr_unlocked(FILE *);+int feof_unlocked(FILE *);+int ferror_unlocked(FILE *);+int fileno_unlocked(FILE *);+int getw(FILE *);+int putw(int, FILE *);+char *fgetln(FILE *, size_t *);+int asprintf(char **, const char *, ...);+int vasprintf(char **, const char *, __isoc_va_list);+#endif++#ifdef _GNU_SOURCE+char *fgets_unlocked(char *, int, FILE *);+int fputs_unlocked(const char *, FILE *);++typedef ssize_t (cookie_read_function_t)(void *, char *, size_t);+typedef ssize_t (cookie_write_function_t)(void *, const char *, size_t);+typedef int (cookie_seek_function_t)(void *, off_t *, int);+typedef int (cookie_close_function_t)(void *);++typedef struct _IO_cookie_io_functions_t {+ cookie_read_function_t *read;+ cookie_write_function_t *write;+ cookie_seek_function_t *seek;+ cookie_close_function_t *close;+} cookie_io_functions_t;++FILE *fopencookie(void *, const char *, cookie_io_functions_t);+#endif++#if defined(_LARGEFILE64_SOURCE)+#define tmpfile64 tmpfile+#define fopen64 fopen+#define freopen64 freopen+#define fseeko64 fseeko+#define ftello64 ftello+#define fgetpos64 fgetpos+#define fsetpos64 fsetpos+#define fpos64_t fpos_t+#define off64_t off_t+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,34 @@+#ifndef _STDIO_EXT_H+#define _STDIO_EXT_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdio.h>++#define FSETLOCKING_QUERY 0+#define FSETLOCKING_INTERNAL 1+#define FSETLOCKING_BYCALLER 2++void _flushlbf(void);+int __fsetlocking(FILE *, int);+int __fwriting(FILE *);+int __freading(FILE *);+int __freadable(FILE *);+int __fwritable(FILE *);+int __flbf(FILE *);+size_t __fbufsize(FILE *);+size_t __fpending(FILE *);+int __fpurge(FILE *);++size_t __freadahead(FILE *);+const char *__freadptr(FILE *, size_t *);+void __freadptrinc(FILE *, size_t);+void __fseterr(FILE *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,179 @@+#ifndef _STDLIB_H+#define _STDLIB_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define __NEED_size_t+#define __NEED_wchar_t++#include <bits/alltypes.h>++int atoi (const char *);+long atol (const char *);+long long atoll (const char *);+double atof (const char *);++float strtof (const char *__restrict, char **__restrict);+double strtod (const char *__restrict, char **__restrict);+long double strtold (const char *__restrict, char **__restrict);++long strtol (const char *__restrict, char **__restrict, int);+unsigned long strtoul (const char *__restrict, char **__restrict, int);+long long strtoll (const char *__restrict, char **__restrict, int);+unsigned long long strtoull (const char *__restrict, char **__restrict, int);++int rand (void);+void srand (unsigned);++void *malloc (size_t);+void *calloc (size_t, size_t);+void *realloc (void *, size_t);+void free (void *);+void *aligned_alloc(size_t, size_t);++_Noreturn void abort (void);+int atexit (void (*) (void));+_Noreturn void exit (int);+_Noreturn void _Exit (int);+int at_quick_exit (void (*) (void));+_Noreturn void quick_exit (int);++char *getenv (const char *);++int system (const char *);++void *bsearch (const void *, const void *, size_t, size_t, int (*)(const void *, const void *));+void qsort (void *, size_t, size_t, int (*)(const void *, const void *));++int abs (int);+long labs (long);+long long llabs (long long);++typedef struct { int quot, rem; } div_t;+typedef struct { long quot, rem; } ldiv_t;+typedef struct { long long quot, rem; } lldiv_t;++div_t div (int, int);+ldiv_t ldiv (long, long);+lldiv_t lldiv (long long, long long);++int mblen (const char *, size_t);+int mbtowc (wchar_t *__restrict, const char *__restrict, size_t);+int wctomb (char *, wchar_t);+size_t mbstowcs (wchar_t *__restrict, const char *__restrict, size_t);+size_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t);++#define EXIT_FAILURE 1+#define EXIT_SUCCESS 0++size_t __ctype_get_mb_cur_max(void);+#define MB_CUR_MAX (__ctype_get_mb_cur_max())++#define RAND_MAX (0x7fffffff)+++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++#define WNOHANG 1+#define WUNTRACED 2++#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)+#define WTERMSIG(s) ((s) & 0x7f)+#define WSTOPSIG(s) WEXITSTATUS(s)+#define WIFEXITED(s) (!WTERMSIG(s))+#define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001U)>>8) > 0x7f00)+#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu)++int posix_memalign (void **, size_t, size_t);+int setenv (const char *, const char *, int);+int unsetenv (const char *);+int mkstemp (char *);+int mkostemp (char *, int);+char *mkdtemp (char *);+int getsubopt (char **, char *const *, char **);+int rand_r (unsigned *);++#endif+++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+char *realpath (const char *__restrict, char *__restrict);+long int random (void);+void srandom (unsigned int);+char *initstate (unsigned int, char *, size_t);+char *setstate (char *);+int putenv (char *);+int posix_openpt (int);+int grantpt (int);+int unlockpt (int);+char *ptsname (int);+char *l64a (long);+long a64l (const char *);+void setkey (const char *);+double drand48 (void);+double erand48 (unsigned short [3]);+long int lrand48 (void);+long int nrand48 (unsigned short [3]);+long mrand48 (void);+long jrand48 (unsigned short [3]);+void srand48 (long);+unsigned short *seed48 (unsigned short [3]);+void lcong48 (unsigned short [7]);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#include <alloca.h>+char *mktemp (char *);+int mkstemps (char *, int);+int mkostemps (char *, int, int);+void *valloc (size_t);+void *memalign(size_t, size_t);+int getloadavg(double *, int);+int clearenv(void);+#define WCOREDUMP(s) ((s) & 0x80)+#define WIFCONTINUED(s) ((s) == 0xffff)+void *reallocarray (void *, size_t, size_t);+void qsort_r (void *, size_t, size_t, int (*)(const void *, const void *, void *), void *);+#endif++#ifdef _GNU_SOURCE+int ptsname_r(int, char *, size_t);+char *ecvt(double, int, int *, int *);+char *fcvt(double, int, int *, int *);+char *gcvt(double, int, char *);+char *secure_getenv(const char *);+struct __locale_struct;+float strtof_l(const char *__restrict, char **__restrict, struct __locale_struct *);+double strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *);+long double strtold_l(const char *__restrict, char **__restrict, struct __locale_struct *);+#endif++#if defined(_LARGEFILE64_SOURCE)+#define mkstemp64 mkstemp+#define mkostemp64 mkostemp+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define mkstemps64 mkstemps+#define mkostemps64 mkostemps+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,7 @@+#ifndef _STDNORETURN_H+#define _STDNORETURN_H+#ifndef __cplusplus+#include <features.h>+#define noreturn _Noreturn+#endif+#endif
@@ -0,0 +1,104 @@+#ifndef _STRING_H+#define _STRING_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define __NEED_size_t+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+#define __NEED_locale_t+#endif++#include <bits/alltypes.h>++void *memcpy (void *__restrict, const void *__restrict, size_t);+void *memmove (void *, const void *, size_t);+void *memset (void *, int, size_t);+int memcmp (const void *, const void *, size_t);+void *memchr (const void *, int, size_t);++char *strcpy (char *__restrict, const char *__restrict);+char *strncpy (char *__restrict, const char *__restrict, size_t);++char *strcat (char *__restrict, const char *__restrict);+char *strncat (char *__restrict, const char *__restrict, size_t);++int strcmp (const char *, const char *);+int strncmp (const char *, const char *, size_t);++int strcoll (const char *, const char *);+size_t strxfrm (char *__restrict, const char *__restrict, size_t);++char *strchr (const char *, int);+char *strrchr (const char *, int);++size_t strcspn (const char *, const char *);+size_t strspn (const char *, const char *);+char *strpbrk (const char *, const char *);+char *strstr (const char *, const char *);+char *strtok (char *__restrict, const char *__restrict);++size_t strlen (const char *);++char *strerror (int);++#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+#include <strings.h>+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+char *strtok_r (char *__restrict, const char *__restrict, char **__restrict);+int strerror_r (int, char *, size_t);+char *stpcpy(char *__restrict, const char *__restrict);+char *stpncpy(char *__restrict, const char *__restrict, size_t);+size_t strnlen (const char *, size_t);+char *strdup (const char *);+char *strndup (const char *, size_t);+char *strsignal(int);+char *strerror_l (int, locale_t);+int strcoll_l (const char *, const char *, locale_t);+size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t);+void *memmem(const void *, size_t, const void *, size_t);+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+void *memccpy (void *__restrict, const void *__restrict, int, size_t);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+char *strsep(char **, const char *);+size_t strlcat (char *, const char *, size_t);+size_t strlcpy (char *, const char *, size_t);+void explicit_bzero (void *, size_t);+#endif++#ifdef _GNU_SOURCE+#define strdupa(x) strcpy(alloca(strlen(x)+1),x)+int strverscmp (const char *, const char *);+char *strchrnul(const char *, int);+char *strcasestr(const char *, const char *);+void *memrchr(const void *, int, size_t);+void *mempcpy(void *, const void *, size_t);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,40 @@+#ifndef _STRINGS_H+#define _STRINGS_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_locale_t+#include <bits/alltypes.h>++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \+ || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)+int bcmp (const void *, const void *, size_t);+void bcopy (const void *, void *, size_t);+void bzero (void *, size_t);+char *index (const char *, int);+char *rindex (const char *, int);+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int ffs (int);+int ffsl (long);+int ffsll (long long);+#endif++int strcasecmp (const char *, const char *);+int strncasecmp (const char *, const char *, size_t);++int strcasecmp_l (const char *, const char *, locale_t);+int strncasecmp_l (const char *, const char *, size_t, locale_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,139 @@+#ifndef _STROPTS_H+#define _STROPTS_H++#ifdef __cplusplus+extern "C" {+#endif++#define __SID ('S' << 8)++#define I_NREAD (__SID | 1)+#define I_PUSH (__SID | 2)+#define I_POP (__SID | 3)+#define I_LOOK (__SID | 4)+#define I_FLUSH (__SID | 5)+#define I_SRDOPT (__SID | 6)+#define I_GRDOPT (__SID | 7)+#define I_STR (__SID | 8)+#define I_SETSIG (__SID | 9)+#define I_GETSIG (__SID |10)+#define I_FIND (__SID |11)+#define I_LINK (__SID |12)+#define I_UNLINK (__SID |13)+#define I_PEEK (__SID |15)+#define I_FDINSERT (__SID |16)+#define I_SENDFD (__SID |17)+#define I_RECVFD (__SID |14)+#define I_SWROPT (__SID |19)+#define I_GWROPT (__SID |20)+#define I_LIST (__SID |21)+#define I_PLINK (__SID |22)+#define I_PUNLINK (__SID |23)+#define I_FLUSHBAND (__SID |28)+#define I_CKBAND (__SID |29)+#define I_GETBAND (__SID |30)+#define I_ATMARK (__SID |31)+#define I_SETCLTIME (__SID |32)+#define I_GETCLTIME (__SID |33)+#define I_CANPUT (__SID |34)++#define FMNAMESZ 8++#define FLUSHR 0x01+#define FLUSHW 0x02+#define FLUSHRW 0x03+#define FLUSHBAND 0x04++#define S_INPUT 0x0001+#define S_HIPRI 0x0002+#define S_OUTPUT 0x0004+#define S_MSG 0x0008+#define S_ERROR 0x0010+#define S_HANGUP 0x0020+#define S_RDNORM 0x0040+#define S_WRNORM S_OUTPUT+#define S_RDBAND 0x0080+#define S_WRBAND 0x0100+#define S_BANDURG 0x0200++#define RS_HIPRI 0x01++#define RNORM 0x0000+#define RMSGD 0x0001+#define RMSGN 0x0002+#define RPROTDAT 0x0004+#define RPROTDIS 0x0008+#define RPROTNORM 0x0010+#define RPROTMASK 0x001C++#define SNDZERO 0x001+#define SNDPIPE 0x002++#define ANYMARK 0x01+#define LASTMARK 0x02++#define MUXID_ALL (-1)++#define MSG_HIPRI 0x01+#define MSG_ANY 0x02+#define MSG_BAND 0x04++#define MORECTL 1+#define MOREDATA 2++struct bandinfo {+ unsigned char bi_pri;+ int bi_flag;+};++struct strbuf {+ int maxlen;+ int len;+ char *buf;+};++struct strpeek {+ struct strbuf ctlbuf;+ struct strbuf databuf;+ unsigned flags;+};++struct strfdinsert {+ struct strbuf ctlbuf;+ struct strbuf databuf;+ unsigned flags;+ int fildes;+ int offset;+};++struct strioctl {+ int ic_cmd;+ int ic_timout;+ int ic_len;+ char *ic_dp;+};++struct strrecvfd {+ int fd;+ int uid;+ int gid;+ char __fill[8];+};++struct str_mlist {+ char l_name[FMNAMESZ + 1];+};++struct str_list {+ int sl_nmods;+ struct str_mlist *sl_modlist;+};++int isastream(int);+int ioctl(int, int, ...);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,72 @@+#ifndef _SYS_ACCT_H+#define _SYS_ACCT_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <time.h>+#include <stdint.h>++#define ACCT_COMM 16++typedef uint16_t comp_t;++struct acct {+ char ac_flag;+ uint16_t ac_uid;+ uint16_t ac_gid;+ uint16_t ac_tty;+ uint32_t ac_btime;+ comp_t ac_utime;+ comp_t ac_stime;+ comp_t ac_etime;+ comp_t ac_mem;+ comp_t ac_io;+ comp_t ac_rw;+ comp_t ac_minflt;+ comp_t ac_majflt;+ comp_t ac_swaps;+ uint32_t ac_exitcode;+ char ac_comm[ACCT_COMM+1];+ char ac_pad[10];+};+++struct acct_v3 {+ char ac_flag;+ char ac_version;+ uint16_t ac_tty;+ uint32_t ac_exitcode;+ uint32_t ac_uid;+ uint32_t ac_gid;+ uint32_t ac_pid;+ uint32_t ac_ppid;+ uint32_t ac_btime;+ float ac_etime;+ comp_t ac_utime;+ comp_t ac_stime;+ comp_t ac_mem;+ comp_t ac_io;+ comp_t ac_rw;+ comp_t ac_minflt;+ comp_t ac_majflt;+ comp_t ac_swaps;+ char ac_comm[ACCT_COMM];+};++#define AFORK 1+#define ASU 2+#define ACORE 8+#define AXSIG 16+#define ACCT_BYTEORDER (128*(__BYTE_ORDER==__BIG_ENDIAN))+#define AHZ 100++int acct(const char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,17 @@+#ifndef _SYS_AUXV_H+#define _SYS_AUXV_H++#ifdef __cplusplus+extern "C" {+#endif++#include <elf.h>+#include <bits/hwcap.h>++unsigned long getauxval(unsigned long);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,22 @@+#ifndef _SYS_CACHECTL_H+#define _SYS_CACHECTL_H++#ifdef __cplusplus+extern "C" {+#endif++#define ICACHE (1<<0)+#define DCACHE (1<<1)+#define BCACHE (ICACHE|DCACHE)+#define CACHEABLE 0+#define UNCACHEABLE 1+ +int cachectl(void *, int, int);+int cacheflush(void *, int, int);+int _flush_cache(void *, int, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,2 @@+#include <dirent.h>+#define direct dirent
@@ -0,0 +1,69 @@+#ifndef _SYS_EPOLL_H+#define _SYS_EPOLL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <sys/types.h>+#include <fcntl.h>++#define __NEED_sigset_t++#include <bits/alltypes.h>++#define EPOLL_CLOEXEC O_CLOEXEC+#define EPOLL_NONBLOCK O_NONBLOCK++enum EPOLL_EVENTS { __EPOLL_DUMMY };+#define EPOLLIN 0x001+#define EPOLLPRI 0x002+#define EPOLLOUT 0x004+#define EPOLLRDNORM 0x040+#define EPOLLNVAL 0x020+#define EPOLLRDBAND 0x080+#define EPOLLWRNORM 0x100+#define EPOLLWRBAND 0x200+#define EPOLLMSG 0x400+#define EPOLLERR 0x008+#define EPOLLHUP 0x010+#define EPOLLRDHUP 0x2000+#define EPOLLEXCLUSIVE (1U<<28)+#define EPOLLWAKEUP (1U<<29)+#define EPOLLONESHOT (1U<<30)+#define EPOLLET (1U<<31)++#define EPOLL_CTL_ADD 1+#define EPOLL_CTL_DEL 2+#define EPOLL_CTL_MOD 3++typedef union epoll_data {+ void *ptr;+ int fd;+ uint32_t u32;+ uint64_t u64;+} epoll_data_t;++struct epoll_event {+ uint32_t events;+ epoll_data_t data;+}+#ifdef __x86_64__+__attribute__ ((__packed__))+#endif+;+++int epoll_create(int);+int epoll_create1(int);+int epoll_ctl(int, int, int, struct epoll_event *);+int epoll_wait(int, struct epoll_event *, int, int);+int epoll_pwait(int, struct epoll_event *, int, int, const sigset_t *);+++#ifdef __cplusplus+}+#endif++#endif /* sys/epoll.h */
@@ -0,0 +1,2 @@+#warning redirecting incorrect #include <sys/errno.h> to <errno.h>+#include <errno.h>
@@ -0,0 +1,26 @@+#ifndef _SYS_EVENTFD_H+#define _SYS_EVENTFD_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <fcntl.h>++typedef uint64_t eventfd_t;++#define EFD_SEMAPHORE 1+#define EFD_CLOEXEC O_CLOEXEC+#define EFD_NONBLOCK O_NONBLOCK++int eventfd(unsigned int, int);+int eventfd_read(int, eventfd_t *);+int eventfd_write(int, eventfd_t);+++#ifdef __cplusplus+}+#endif++#endif /* sys/eventfd.h */
@@ -0,0 +1,111 @@+#ifndef _FANOTIFY_H+#define _FANOTIFY_H++#ifdef __cplusplus+extern "C" {+#endif++#include <sys/statfs.h>++struct fanotify_event_metadata {+ unsigned event_len;+ unsigned char vers;+ unsigned char reserved;+ unsigned short metadata_len;+ unsigned long long mask+#ifdef __GNUC__+ __attribute__((__aligned__(8)))+#endif+ ;+ int fd;+ int pid;+};++struct fanotify_event_info_header {+ unsigned char info_type;+ unsigned char pad;+ unsigned short len;+};++struct fanotify_event_info_fid {+ struct fanotify_event_info_header hdr;+ fsid_t fsid;+ unsigned char handle[];+};++struct fanotify_response {+ int fd;+ unsigned response;+};++#define FAN_ACCESS 0x01+#define FAN_MODIFY 0x02+#define FAN_ATTRIB 0x04+#define FAN_CLOSE_WRITE 0x08+#define FAN_CLOSE_NOWRITE 0x10+#define FAN_OPEN 0x20+#define FAN_MOVED_FROM 0x40+#define FAN_MOVED_TO 0x80+#define FAN_CREATE 0x100+#define FAN_DELETE 0x200+#define FAN_DELETE_SELF 0x400+#define FAN_MOVE_SELF 0x800+#define FAN_OPEN_EXEC 0x1000+#define FAN_Q_OVERFLOW 0x4000+#define FAN_OPEN_PERM 0x10000+#define FAN_ACCESS_PERM 0x20000+#define FAN_OPEN_EXEC_PERM 0x40000+#define FAN_DIR_MODIFY 0x00080000+#define FAN_EVENT_ON_CHILD 0x08000000+#define FAN_ONDIR 0x40000000+#define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)+#define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)+#define FAN_CLOEXEC 0x01+#define FAN_NONBLOCK 0x02+#define FAN_CLASS_NOTIF 0+#define FAN_CLASS_CONTENT 0x04+#define FAN_CLASS_PRE_CONTENT 0x08+#define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | FAN_CLASS_PRE_CONTENT)+#define FAN_UNLIMITED_QUEUE 0x10+#define FAN_UNLIMITED_MARKS 0x20+#define FAN_ENABLE_AUDIT 0x40+#define FAN_REPORT_TID 0x100+#define FAN_REPORT_FID 0x200+#define FAN_REPORT_DIR_FID 0x00000400+#define FAN_REPORT_NAME 0x00000800+#define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)+#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)+#define FAN_MARK_ADD 0x01+#define FAN_MARK_REMOVE 0x02+#define FAN_MARK_DONT_FOLLOW 0x04+#define FAN_MARK_ONLYDIR 0x08+#define FAN_MARK_IGNORED_MASK 0x20+#define FAN_MARK_IGNORED_SURV_MODIFY 0x40+#define FAN_MARK_FLUSH 0x80+#define FAN_MARK_INODE 0x00+#define FAN_MARK_MOUNT 0x10+#define FAN_MARK_FILESYSTEM 0x100+#define FAN_MARK_TYPE_MASK (FAN_MARK_INODE | FAN_MARK_MOUNT | FAN_MARK_FILESYSTEM)+#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD | FAN_MARK_REMOVE | FAN_MARK_DONT_FOLLOW | FAN_MARK_ONLYDIR | FAN_MARK_MOUNT | FAN_MARK_IGNORED_MASK | FAN_MARK_IGNORED_SURV_MODIFY | FAN_MARK_FLUSH)+#define FAN_ALL_EVENTS (FAN_ACCESS | FAN_MODIFY | FAN_CLOSE | FAN_OPEN)+#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM | FAN_ACCESS_PERM)+#define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS | FAN_ALL_PERM_EVENTS | FAN_Q_OVERFLOW)+#define FANOTIFY_METADATA_VERSION 3+#define FAN_EVENT_INFO_TYPE_FID 1+#define FAN_EVENT_INFO_TYPE_DFID_NAME 2+#define FAN_EVENT_INFO_TYPE_DFID 3+#define FAN_ALLOW 0x01+#define FAN_DENY 0x02+#define FAN_AUDIT 0x10+#define FAN_NOFD -1+#define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))+#define FAN_EVENT_NEXT(meta, len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata*)(((char *)(meta)) + (meta)->event_len))+#define FAN_EVENT_OK(meta, len) ((long)(len) >= (long)FAN_EVENT_METADATA_LEN && (long)(meta)->event_len >= (long)FAN_EVENT_METADATA_LEN && (long)(meta)->event_len <= (long)(len))++int fanotify_init(unsigned, unsigned);+int fanotify_mark(int, unsigned, unsigned long long, int, const char *);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,2 @@+#warning redirecting incorrect #include <sys/fcntl.h> to <fcntl.h>+#include <fcntl.h>
@@ -0,0 +1,21 @@+#ifndef _SYS_FILE_H+#define _SYS_FILE_H+#ifdef __cplusplus+extern "C" {+#endif++#define LOCK_SH 1+#define LOCK_EX 2+#define LOCK_NB 4+#define LOCK_UN 8++#define L_SET 0+#define L_INCR 1+#define L_XTND 2++int flock(int, int);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,20 @@+#ifndef _SYS_FSUID_H+#define _SYS_FSUID_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_uid_t+#define __NEED_gid_t++#include <bits/alltypes.h>++int setfsuid(uid_t);+int setfsgid(gid_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,58 @@+#ifndef _SYS_INOTIFY_H+#define _SYS_INOTIFY_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <fcntl.h>++struct inotify_event {+ int wd;+ uint32_t mask, cookie, len;+ char name[];+};++#define IN_CLOEXEC O_CLOEXEC+#define IN_NONBLOCK O_NONBLOCK++#define IN_ACCESS 0x00000001+#define IN_MODIFY 0x00000002+#define IN_ATTRIB 0x00000004+#define IN_CLOSE_WRITE 0x00000008+#define IN_CLOSE_NOWRITE 0x00000010+#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)+#define IN_OPEN 0x00000020+#define IN_MOVED_FROM 0x00000040+#define IN_MOVED_TO 0x00000080+#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO)+#define IN_CREATE 0x00000100+#define IN_DELETE 0x00000200+#define IN_DELETE_SELF 0x00000400+#define IN_MOVE_SELF 0x00000800+#define IN_ALL_EVENTS 0x00000fff++#define IN_UNMOUNT 0x00002000+#define IN_Q_OVERFLOW 0x00004000+#define IN_IGNORED 0x00008000++#define IN_ONLYDIR 0x01000000+#define IN_DONT_FOLLOW 0x02000000+#define IN_EXCL_UNLINK 0x04000000+#define IN_MASK_CREATE 0x10000000+#define IN_MASK_ADD 0x20000000++#define IN_ISDIR 0x40000000+#define IN_ONESHOT 0x80000000++int inotify_init(void);+int inotify_init1(int);+int inotify_add_watch(int, const char *, uint32_t);+int inotify_rm_watch(int, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,17 @@+#ifndef _SYS_IO_H+#define _SYS_IO_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <bits/io.h>++int iopl(int);+int ioperm(unsigned long, unsigned long, int);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,120 @@+#ifndef _SYS_IOCTL_H+#define _SYS_IOCTL_H+#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_struct_winsize++#include <bits/alltypes.h>+#include <bits/ioctl.h>++#define N_TTY 0+#define N_SLIP 1+#define N_MOUSE 2+#define N_PPP 3+#define N_STRIP 4+#define N_AX25 5+#define N_X25 6+#define N_6PACK 7+#define N_MASC 8+#define N_R3964 9+#define N_PROFIBUS_FDL 10+#define N_IRDA 11+#define N_SMSBLOCK 12+#define N_HDLC 13+#define N_SYNC_PPP 14+#define N_HCI 15+#define N_GIGASET_M101 16+#define N_SLCAN 17+#define N_PPS 18+#define N_V253 19+#define N_CAIF 20+#define N_GSM0710 21+#define N_TI_WL 22+#define N_TRACESINK 23+#define N_TRACEROUTER 24+#define N_NCI 25+#define N_SPEAKUP 26+#define N_NULL 27++#define TIOCPKT_DATA 0+#define TIOCPKT_FLUSHREAD 1+#define TIOCPKT_FLUSHWRITE 2+#define TIOCPKT_STOP 4+#define TIOCPKT_START 8+#define TIOCPKT_NOSTOP 16+#define TIOCPKT_DOSTOP 32+#define TIOCPKT_IOCTL 64++#define TIOCSER_TEMT 1++#define SIOCADDRT 0x890B+#define SIOCDELRT 0x890C+#define SIOCRTMSG 0x890D++#define SIOCGIFNAME 0x8910+#define SIOCSIFLINK 0x8911+#define SIOCGIFCONF 0x8912+#define SIOCGIFFLAGS 0x8913+#define SIOCSIFFLAGS 0x8914+#define SIOCGIFADDR 0x8915+#define SIOCSIFADDR 0x8916+#define SIOCGIFDSTADDR 0x8917+#define SIOCSIFDSTADDR 0x8918+#define SIOCGIFBRDADDR 0x8919+#define SIOCSIFBRDADDR 0x891a+#define SIOCGIFNETMASK 0x891b+#define SIOCSIFNETMASK 0x891c+#define SIOCGIFMETRIC 0x891d+#define SIOCSIFMETRIC 0x891e+#define SIOCGIFMEM 0x891f+#define SIOCSIFMEM 0x8920+#define SIOCGIFMTU 0x8921+#define SIOCSIFMTU 0x8922+#define SIOCSIFNAME 0x8923+#define SIOCSIFHWADDR 0x8924+#define SIOCGIFENCAP 0x8925+#define SIOCSIFENCAP 0x8926+#define SIOCGIFHWADDR 0x8927+#define SIOCGIFSLAVE 0x8929+#define SIOCSIFSLAVE 0x8930+#define SIOCADDMULTI 0x8931+#define SIOCDELMULTI 0x8932+#define SIOCGIFINDEX 0x8933+#define SIOGIFINDEX SIOCGIFINDEX+#define SIOCSIFPFLAGS 0x8934+#define SIOCGIFPFLAGS 0x8935+#define SIOCDIFADDR 0x8936+#define SIOCSIFHWBROADCAST 0x8937+#define SIOCGIFCOUNT 0x8938++#define SIOCGIFBR 0x8940+#define SIOCSIFBR 0x8941++#define SIOCGIFTXQLEN 0x8942+#define SIOCSIFTXQLEN 0x8943++#define SIOCDARP 0x8953+#define SIOCGARP 0x8954+#define SIOCSARP 0x8955++#define SIOCDRARP 0x8960+#define SIOCGRARP 0x8961+#define SIOCSRARP 0x8962++#define SIOCGIFMAP 0x8970+#define SIOCSIFMAP 0x8971++#define SIOCADDDLCI 0x8980+#define SIOCDELDLCI 0x8981++#define SIOCDEVPRIVATE 0x89F0+#define SIOCPROTOPRIVATE 0x89E0++int ioctl (int, int, ...);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,42 @@+#ifndef _SYS_IPC_H+#define _SYS_IPC_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_uid_t+#define __NEED_gid_t+#define __NEED_mode_t+#define __NEED_key_t++#include <bits/alltypes.h>++#define __ipc_perm_key __key+#define __ipc_perm_seq __seq++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __key key+#define __seq seq+#endif++#include <bits/ipc.h>+#include <bits/ipcstat.h>++#define IPC_CREAT 01000+#define IPC_EXCL 02000+#define IPC_NOWAIT 04000++#define IPC_RMID 0+#define IPC_SET 1+#define IPC_INFO 3++#define IPC_PRIVATE ((key_t) 0)++key_t ftok (const char *, int);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,1 @@+#include <bits/kd.h>
@@ -0,0 +1,14 @@+#ifndef _SYS_KLOG_H+#define _SYS_KLOG_H++#ifdef __cplusplus+extern "C" {+#endif++int klogctl (int, char *, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,21 @@+#ifndef _SYS_MEMBARRIER_H+#define _SYS_MEMBARRIER_H++#define MEMBARRIER_CMD_QUERY 0+#define MEMBARRIER_CMD_GLOBAL 1+#define MEMBARRIER_CMD_GLOBAL_EXPEDITED 2+#define MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED 4+#define MEMBARRIER_CMD_PRIVATE_EXPEDITED 8+#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED 16+#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE 32+#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE 64+#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ 128+#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ 256++#define MEMBARRIER_CMD_SHARED MEMBARRIER_CMD_GLOBAL++#define MEMBARRIER_CMD_FLAG_CPU 1++int membarrier(int, int);++#endif
@@ -0,0 +1,152 @@+#ifndef _SYS_MMAN_H+#define _SYS_MMAN_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_mode_t+#define __NEED_size_t+#define __NEED_off_t++#if defined(_GNU_SOURCE)+#define __NEED_ssize_t+#endif++#include <bits/alltypes.h>++#define MAP_FAILED ((void *) -1)++#define MAP_SHARED 0x01+#define MAP_PRIVATE 0x02+#define MAP_SHARED_VALIDATE 0x03+#define MAP_TYPE 0x0f+#define MAP_FIXED 0x10+#define MAP_ANON 0x20+#define MAP_ANONYMOUS MAP_ANON+#define MAP_NORESERVE 0x4000+#define MAP_GROWSDOWN 0x0100+#define MAP_DENYWRITE 0x0800+#define MAP_EXECUTABLE 0x1000+#define MAP_LOCKED 0x2000+#define MAP_POPULATE 0x8000+#define MAP_NONBLOCK 0x10000+#define MAP_STACK 0x20000+#define MAP_HUGETLB 0x40000+#define MAP_SYNC 0x80000+#define MAP_FIXED_NOREPLACE 0x100000+#define MAP_FILE 0++#define MAP_HUGE_SHIFT 26+#define MAP_HUGE_MASK 0x3f+#define MAP_HUGE_16KB (14 << 26)+#define MAP_HUGE_64KB (16 << 26)+#define MAP_HUGE_512KB (19 << 26)+#define MAP_HUGE_1MB (20 << 26)+#define MAP_HUGE_2MB (21 << 26)+#define MAP_HUGE_8MB (23 << 26)+#define MAP_HUGE_16MB (24 << 26)+#define MAP_HUGE_32MB (25 << 26)+#define MAP_HUGE_256MB (28 << 26)+#define MAP_HUGE_512MB (29 << 26)+#define MAP_HUGE_1GB (30 << 26)+#define MAP_HUGE_2GB (31 << 26)+#define MAP_HUGE_16GB (34U << 26)++#define PROT_NONE 0+#define PROT_READ 1+#define PROT_WRITE 2+#define PROT_EXEC 4+#define PROT_GROWSDOWN 0x01000000+#define PROT_GROWSUP 0x02000000++#define MS_ASYNC 1+#define MS_INVALIDATE 2+#define MS_SYNC 4++#define MCL_CURRENT 1+#define MCL_FUTURE 2+#define MCL_ONFAULT 4++#define POSIX_MADV_NORMAL 0+#define POSIX_MADV_RANDOM 1+#define POSIX_MADV_SEQUENTIAL 2+#define POSIX_MADV_WILLNEED 3+#define POSIX_MADV_DONTNEED 4++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define MADV_NORMAL 0+#define MADV_RANDOM 1+#define MADV_SEQUENTIAL 2+#define MADV_WILLNEED 3+#define MADV_DONTNEED 4+#define MADV_FREE 8+#define MADV_REMOVE 9+#define MADV_DONTFORK 10+#define MADV_DOFORK 11+#define MADV_MERGEABLE 12+#define MADV_UNMERGEABLE 13+#define MADV_HUGEPAGE 14+#define MADV_NOHUGEPAGE 15+#define MADV_DONTDUMP 16+#define MADV_DODUMP 17+#define MADV_WIPEONFORK 18+#define MADV_KEEPONFORK 19+#define MADV_COLD 20+#define MADV_PAGEOUT 21+#define MADV_HWPOISON 100+#define MADV_SOFT_OFFLINE 101+#endif++#ifdef _GNU_SOURCE+#define MREMAP_MAYMOVE 1+#define MREMAP_FIXED 2+#define MREMAP_DONTUNMAP 4++#define MLOCK_ONFAULT 0x01++#define MFD_CLOEXEC 0x0001U+#define MFD_ALLOW_SEALING 0x0002U+#define MFD_HUGETLB 0x0004U+#endif++#include <bits/mman.h>++void *mmap (void *, size_t, int, int, int, off_t);+int munmap (void *, size_t);++int mprotect (void *, size_t, int);+int msync (void *, size_t, int);++int posix_madvise (void *, size_t, int);++int mlock (const void *, size_t);+int munlock (const void *, size_t);+int mlockall (int);+int munlockall (void);++#ifdef _GNU_SOURCE+void *mremap (void *, size_t, size_t, int, ...);+int remap_file_pages (void *, size_t, int, size_t, int);+int memfd_create (const char *, unsigned);+int mlock2 (const void *, size_t, unsigned);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int madvise (void *, size_t, int);+int mincore (void *, size_t, unsigned char *);+#endif++int shm_open (const char *, int, mode_t);+int shm_unlink (const char *);++#if defined(_LARGEFILE64_SOURCE)+#define mmap64 mmap+#define off64_t off_t+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,75 @@+#ifndef _SYS_MOUNT_H+#define _SYS_MOUNT_H++#ifdef __cplusplus+extern "C" {+#endif++#include <sys/ioctl.h>++#define BLKROSET _IO(0x12, 93)+#define BLKROGET _IO(0x12, 94)+#define BLKRRPART _IO(0x12, 95)+#define BLKGETSIZE _IO(0x12, 96)+#define BLKFLSBUF _IO(0x12, 97)+#define BLKRASET _IO(0x12, 98)+#define BLKRAGET _IO(0x12, 99)+#define BLKFRASET _IO(0x12,100)+#define BLKFRAGET _IO(0x12,101)+#define BLKSECTSET _IO(0x12,102)+#define BLKSECTGET _IO(0x12,103)+#define BLKSSZGET _IO(0x12,104)+#define BLKBSZGET _IOR(0x12,112,size_t)+#define BLKBSZSET _IOW(0x12,113,size_t)+#define BLKGETSIZE64 _IOR(0x12,114,size_t)++#define MS_RDONLY 1+#define MS_NOSUID 2+#define MS_NODEV 4+#define MS_NOEXEC 8+#define MS_SYNCHRONOUS 16+#define MS_REMOUNT 32+#define MS_MANDLOCK 64+#define MS_DIRSYNC 128+#define MS_NOSYMFOLLOW 256+#define MS_NOATIME 1024+#define MS_NODIRATIME 2048+#define MS_BIND 4096+#define MS_MOVE 8192+#define MS_REC 16384+#define MS_SILENT 32768+#define MS_POSIXACL (1<<16)+#define MS_UNBINDABLE (1<<17)+#define MS_PRIVATE (1<<18)+#define MS_SLAVE (1<<19)+#define MS_SHARED (1<<20)+#define MS_RELATIME (1<<21)+#define MS_KERNMOUNT (1<<22)+#define MS_I_VERSION (1<<23)+#define MS_STRICTATIME (1<<24)+#define MS_LAZYTIME (1<<25)+#define MS_NOREMOTELOCK (1<<27)+#define MS_NOSEC (1<<28)+#define MS_BORN (1<<29)+#define MS_ACTIVE (1<<30)+#define MS_NOUSER (1U<<31)++#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|MS_LAZYTIME)++#define MS_MGC_VAL 0xc0ed0000+#define MS_MGC_MSK 0xffff0000++#define MNT_FORCE 1+#define MNT_DETACH 2+#define MNT_EXPIRE 4+#define UMOUNT_NOFOLLOW 8++int mount(const char *, const char *, const char *, unsigned long, const void *);+int umount(const char *);+int umount2(const char *, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,53 @@+#ifndef _SYS_MSG_H+#define _SYS_MSG_H++#ifdef __cplusplus+extern "C" {+#endif++#include <sys/ipc.h>++#define __NEED_pid_t+#define __NEED_key_t+#define __NEED_time_t+#define __NEED_size_t+#define __NEED_ssize_t++#include <bits/alltypes.h>++typedef unsigned long msgqnum_t;+typedef unsigned long msglen_t;++#include <bits/msg.h>++#define __msg_cbytes msg_cbytes++#define MSG_NOERROR 010000+#define MSG_EXCEPT 020000++#define MSG_STAT (11 | (IPC_STAT & 0x100))+#define MSG_INFO 12+#define MSG_STAT_ANY (13 | (IPC_STAT & 0x100))++struct msginfo {+ int msgpool, msgmap, msgmax, msgmnb, msgmni, msgssz, msgtql;+ unsigned short msgseg;+};++int msgctl (int, int, struct msqid_ds *);+int msgget (key_t, int);+ssize_t msgrcv (int, void *, size_t, long, int);+int msgsnd (int, const void *, size_t, int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+struct msgbuf {+ long mtype;+ char mtext[1];+};+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,188 @@+#ifndef _SYS_MTIO_H+#define _SYS_MTIO_H++#include <sys/types.h>+#include <sys/ioctl.h>++struct mtop {+ short mt_op;+ int mt_count;+};++#define _IOT_mtop _IOT (_IOTS (short), 1, _IOTS (int), 1, 0, 0)+#define _IOT_mtget _IOT (_IOTS (long), 7, 0, 0, 0, 0)+#define _IOT_mtpos _IOT_SIMPLE (long)+#define _IOT_mtconfiginfo _IOT (_IOTS (long), 2, _IOTS (short), 3, _IOTS (long), 1)+++#define MTRESET 0+#define MTFSF 1+#define MTBSF 2+#define MTFSR 3+#define MTBSR 4+#define MTWEOF 5+#define MTREW 6+#define MTOFFL 7+#define MTNOP 8+#define MTRETEN 9+#define MTBSFM 10+#define MTFSFM 11+#define MTEOM 12+#define MTERASE 13+#define MTRAS1 14+#define MTRAS2 15+#define MTRAS3 16+#define MTSETBLK 20+#define MTSETDENSITY 21+#define MTSEEK 22+#define MTTELL 23+#define MTSETDRVBUFFER 24+#define MTFSS 25+#define MTBSS 26+#define MTWSM 27+#define MTLOCK 28+#define MTUNLOCK 29+#define MTLOAD 30+#define MTUNLOAD 31+#define MTCOMPRESSION 32+#define MTSETPART 33+#define MTMKPART 34++struct mtget {+ long mt_type;+ long mt_resid;+ long mt_dsreg;+ long mt_gstat;+ long mt_erreg;+ int mt_fileno;+ int mt_blkno;+};++#define MT_ISUNKNOWN 0x01+#define MT_ISQIC02 0x02+#define MT_ISWT5150 0x03+#define MT_ISARCHIVE_5945L2 0x04+#define MT_ISCMSJ500 0x05+#define MT_ISTDC3610 0x06+#define MT_ISARCHIVE_VP60I 0x07+#define MT_ISARCHIVE_2150L 0x08+#define MT_ISARCHIVE_2060L 0x09+#define MT_ISARCHIVESC499 0x0A+#define MT_ISQIC02_ALL_FEATURES 0x0F+#define MT_ISWT5099EEN24 0x11+#define MT_ISTEAC_MT2ST 0x12+#define MT_ISEVEREX_FT40A 0x32+#define MT_ISDDS1 0x51+#define MT_ISDDS2 0x52+#define MT_ISSCSI1 0x71+#define MT_ISSCSI2 0x72+#define MT_ISFTAPE_UNKNOWN 0x800000+#define MT_ISFTAPE_FLAG 0x800000++struct mt_tape_info {+ long t_type;+ char *t_name;+};++#define MT_TAPE_INFO \+{ \+ {MT_ISUNKNOWN, "Unknown type of tape device"}, \+ {MT_ISQIC02, "Generic QIC-02 tape streamer"}, \+ {MT_ISWT5150, "Wangtek 5150, QIC-150"}, \+ {MT_ISARCHIVE_5945L2, "Archive 5945L-2"}, \+ {MT_ISCMSJ500, "CMS Jumbo 500"}, \+ {MT_ISTDC3610, "Tandberg TDC 3610, QIC-24"}, \+ {MT_ISARCHIVE_VP60I, "Archive VP60i, QIC-02"}, \+ {MT_ISARCHIVE_2150L, "Archive Viper 2150L"}, \+ {MT_ISARCHIVE_2060L, "Archive Viper 2060L"}, \+ {MT_ISARCHIVESC499, "Archive SC-499 QIC-36 controller"}, \+ {MT_ISQIC02_ALL_FEATURES, "Generic QIC-02 tape, all features"}, \+ {MT_ISWT5099EEN24, "Wangtek 5099-een24, 60MB"}, \+ {MT_ISTEAC_MT2ST, "Teac MT-2ST 155mb data cassette drive"}, \+ {MT_ISEVEREX_FT40A, "Everex FT40A, QIC-40"}, \+ {MT_ISSCSI1, "Generic SCSI-1 tape"}, \+ {MT_ISSCSI2, "Generic SCSI-2 tape"}, \+ {0, 0} \+}++struct mtpos {+ long mt_blkno;+};++struct mtconfiginfo {+ long mt_type;+ long ifc_type;+ unsigned short irqnr;+ unsigned short dmanr;+ unsigned short port;+ unsigned long debug;+ unsigned have_dens:1;+ unsigned have_bsf:1;+ unsigned have_fsr:1;+ unsigned have_bsr:1;+ unsigned have_eod:1;+ unsigned have_seek:1;+ unsigned have_tell:1;+ unsigned have_ras1:1;+ unsigned have_ras2:1;+ unsigned have_ras3:1;+ unsigned have_qfa:1;+ unsigned pad1:5;+ char reserved[10];+};++#define MTIOCTOP _IOW('m', 1, struct mtop)+#define MTIOCGET _IOR('m', 2, struct mtget)+#define MTIOCPOS _IOR('m', 3, struct mtpos)++#define MTIOCGETCONFIG _IOR('m', 4, struct mtconfiginfo)+#define MTIOCSETCONFIG _IOW('m', 5, struct mtconfiginfo)++#define GMT_EOF(x) ((x) & 0x80000000)+#define GMT_BOT(x) ((x) & 0x40000000)+#define GMT_EOT(x) ((x) & 0x20000000)+#define GMT_SM(x) ((x) & 0x10000000)+#define GMT_EOD(x) ((x) & 0x08000000)+#define GMT_WR_PROT(x) ((x) & 0x04000000)+#define GMT_ONLINE(x) ((x) & 0x01000000)+#define GMT_D_6250(x) ((x) & 0x00800000)+#define GMT_D_1600(x) ((x) & 0x00400000)+#define GMT_D_800(x) ((x) & 0x00200000)+#define GMT_DR_OPEN(x) ((x) & 0x00040000)+#define GMT_IM_REP_EN(x) ((x) & 0x00010000)++#define MT_ST_BLKSIZE_SHIFT 0+#define MT_ST_BLKSIZE_MASK 0xffffff+#define MT_ST_DENSITY_SHIFT 24+#define MT_ST_DENSITY_MASK 0xff000000+#define MT_ST_SOFTERR_SHIFT 0+#define MT_ST_SOFTERR_MASK 0xffff+#define MT_ST_OPTIONS 0xf0000000+#define MT_ST_BOOLEANS 0x10000000+#define MT_ST_SETBOOLEANS 0x30000000+#define MT_ST_CLEARBOOLEANS 0x40000000+#define MT_ST_WRITE_THRESHOLD 0x20000000+#define MT_ST_DEF_BLKSIZE 0x50000000+#define MT_ST_DEF_OPTIONS 0x60000000+#define MT_ST_BUFFER_WRITES 0x1+#define MT_ST_ASYNC_WRITES 0x2+#define MT_ST_READ_AHEAD 0x4+#define MT_ST_DEBUGGING 0x8+#define MT_ST_TWO_FM 0x10+#define MT_ST_FAST_MTEOM 0x20+#define MT_ST_AUTO_LOCK 0x40+#define MT_ST_DEF_WRITES 0x80+#define MT_ST_CAN_BSR 0x100+#define MT_ST_NO_BLKLIMS 0x200+#define MT_ST_CAN_PARTITIONS 0x400+#define MT_ST_SCSI2LOGICAL 0x800+#define MT_ST_CLEAR_DEFAULT 0xfffff+#define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000)+#define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000)+#define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000)+#define MT_ST_HPLOADER_OFFSET 10000+#ifndef DEFTAPE+# define DEFTAPE "/dev/tape"+#endif++#endif
@@ -0,0 +1,35 @@+#ifndef _SYS_PARAM_H+#define _SYS_PARAM_H++#define MAXSYMLINKS 20+#define MAXHOSTNAMELEN 64+#define MAXNAMLEN 255+#define MAXPATHLEN 4096+#define NBBY 8+#define NGROUPS 32+#define CANBSIZ 255+#define NOFILE 256+#define NCARGS 131072+#define DEV_BSIZE 512+#define NOGROUP (-1)++#undef MIN+#undef MAX+#define MIN(a,b) (((a)<(b))?(a):(b))+#define MAX(a,b) (((a)>(b))?(a):(b))++#define __bitop(x,i,o) ((x)[(i)/8] o (1<<(i)%8))+#define setbit(x,i) __bitop(x,i,|=)+#define clrbit(x,i) __bitop(x,i,&=~)+#define isset(x,i) __bitop(x,i,&)+#define isclr(x,i) !isset(x,i)++#define howmany(n,d) (((n)+((d)-1))/(d))+#define roundup(n,d) (howmany(n,d)*(d))+#define powerof2(n) !(((n)-1) & (n))++#include <sys/resource.h>+#include <endian.h>+#include <limits.h>++#endif
@@ -0,0 +1,49 @@+#ifndef _PERSONALITY_H+#define _PERSONALITY_H++#ifdef __cplusplus+extern "C" {+#endif++#define UNAME26 0x0020000+#define ADDR_NO_RANDOMIZE 0x0040000+#define FDPIC_FUNCPTRS 0x0080000+#define MMAP_PAGE_ZERO 0x0100000+#define ADDR_COMPAT_LAYOUT 0x0200000+#define READ_IMPLIES_EXEC 0x0400000+#define ADDR_LIMIT_32BIT 0x0800000+#define SHORT_INODE 0x1000000+#define WHOLE_SECONDS 0x2000000+#define STICKY_TIMEOUTS 0x4000000+#define ADDR_LIMIT_3GB 0x8000000++#define PER_LINUX 0+#define PER_LINUX_32BIT ADDR_LIMIT_32BIT+#define PER_LINUX_FDPIC FDPIC_FUNCPTRS+#define PER_SVR4 (1 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)+#define PER_SVR3 (2 | STICKY_TIMEOUTS | SHORT_INODE)+#define PER_SCOSVR3 (3 | STICKY_TIMEOUTS | WHOLE_SECONDS | SHORT_INODE)+#define PER_OSR5 (3 | STICKY_TIMEOUTS | WHOLE_SECONDS)+#define PER_WYSEV386 (4 | STICKY_TIMEOUTS | SHORT_INODE)+#define PER_ISCR4 (5 | STICKY_TIMEOUTS)+#define PER_BSD 6+#define PER_SUNOS (6 | STICKY_TIMEOUTS)+#define PER_XENIX (7 | STICKY_TIMEOUTS | SHORT_INODE)+#define PER_LINUX32 8+#define PER_LINUX32_3GB (8 | ADDR_LIMIT_3GB)+#define PER_IRIX32 (9 | STICKY_TIMEOUTS)+#define PER_IRIXN32 (0xa | STICKY_TIMEOUTS)+#define PER_IRIX64 (0x0b | STICKY_TIMEOUTS)+#define PER_RISCOS 0xc+#define PER_SOLARIS (0xd | STICKY_TIMEOUTS)+#define PER_UW7 (0xe | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)+#define PER_OSF4 0xf+#define PER_HPUX 0x10+#define PER_MASK 0xff++int personality(unsigned long);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,2 @@+#warning redirecting incorrect #include <sys/poll.h> to <poll.h>+#include <poll.h>
@@ -0,0 +1,186 @@+#ifndef _SYS_PRCTL_H+#define _SYS_PRCTL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>++#define PR_SET_PDEATHSIG 1+#define PR_GET_PDEATHSIG 2+#define PR_GET_DUMPABLE 3+#define PR_SET_DUMPABLE 4+#define PR_GET_UNALIGN 5+#define PR_SET_UNALIGN 6+#define PR_UNALIGN_NOPRINT 1+#define PR_UNALIGN_SIGBUS 2+#define PR_GET_KEEPCAPS 7+#define PR_SET_KEEPCAPS 8+#define PR_GET_FPEMU 9+#define PR_SET_FPEMU 10+#define PR_FPEMU_NOPRINT 1+#define PR_FPEMU_SIGFPE 2+#define PR_GET_FPEXC 11+#define PR_SET_FPEXC 12+#define PR_FP_EXC_SW_ENABLE 0x80+#define PR_FP_EXC_DIV 0x010000+#define PR_FP_EXC_OVF 0x020000+#define PR_FP_EXC_UND 0x040000+#define PR_FP_EXC_RES 0x080000+#define PR_FP_EXC_INV 0x100000+#define PR_FP_EXC_DISABLED 0+#define PR_FP_EXC_NONRECOV 1+#define PR_FP_EXC_ASYNC 2+#define PR_FP_EXC_PRECISE 3+#define PR_GET_TIMING 13+#define PR_SET_TIMING 14+#define PR_TIMING_STATISTICAL 0+#define PR_TIMING_TIMESTAMP 1+#define PR_SET_NAME 15+#define PR_GET_NAME 16+#define PR_GET_ENDIAN 19+#define PR_SET_ENDIAN 20+#define PR_ENDIAN_BIG 0+#define PR_ENDIAN_LITTLE 1+#define PR_ENDIAN_PPC_LITTLE 2+#define PR_GET_SECCOMP 21+#define PR_SET_SECCOMP 22+#define PR_CAPBSET_READ 23+#define PR_CAPBSET_DROP 24+#define PR_GET_TSC 25+#define PR_SET_TSC 26+#define PR_TSC_ENABLE 1+#define PR_TSC_SIGSEGV 2+#define PR_GET_SECUREBITS 27+#define PR_SET_SECUREBITS 28+#define PR_SET_TIMERSLACK 29+#define PR_GET_TIMERSLACK 30++#define PR_TASK_PERF_EVENTS_DISABLE 31+#define PR_TASK_PERF_EVENTS_ENABLE 32++#define PR_MCE_KILL 33+#define PR_MCE_KILL_CLEAR 0+#define PR_MCE_KILL_SET 1+#define PR_MCE_KILL_LATE 0+#define PR_MCE_KILL_EARLY 1+#define PR_MCE_KILL_DEFAULT 2+#define PR_MCE_KILL_GET 34++#define PR_SET_MM 35+#define PR_SET_MM_START_CODE 1+#define PR_SET_MM_END_CODE 2+#define PR_SET_MM_START_DATA 3+#define PR_SET_MM_END_DATA 4+#define PR_SET_MM_START_STACK 5+#define PR_SET_MM_START_BRK 6+#define PR_SET_MM_BRK 7+#define PR_SET_MM_ARG_START 8+#define PR_SET_MM_ARG_END 9+#define PR_SET_MM_ENV_START 10+#define PR_SET_MM_ENV_END 11+#define PR_SET_MM_AUXV 12+#define PR_SET_MM_EXE_FILE 13+#define PR_SET_MM_MAP 14+#define PR_SET_MM_MAP_SIZE 15++struct prctl_mm_map {+ uint64_t start_code;+ uint64_t end_code;+ uint64_t start_data;+ uint64_t end_data;+ uint64_t start_brk;+ uint64_t brk;+ uint64_t start_stack;+ uint64_t arg_start;+ uint64_t arg_end;+ uint64_t env_start;+ uint64_t env_end;+ uint64_t *auxv;+ uint32_t auxv_size;+ uint32_t exe_fd;+};++#define PR_SET_PTRACER 0x59616d61+#define PR_SET_PTRACER_ANY (-1UL)++#define PR_SET_CHILD_SUBREAPER 36+#define PR_GET_CHILD_SUBREAPER 37++#define PR_SET_NO_NEW_PRIVS 38+#define PR_GET_NO_NEW_PRIVS 39++#define PR_GET_TID_ADDRESS 40++#define PR_SET_THP_DISABLE 41+#define PR_GET_THP_DISABLE 42++#define PR_MPX_ENABLE_MANAGEMENT 43+#define PR_MPX_DISABLE_MANAGEMENT 44++#define PR_SET_FP_MODE 45+#define PR_GET_FP_MODE 46+#define PR_FP_MODE_FR (1 << 0)+#define PR_FP_MODE_FRE (1 << 1)++#define PR_CAP_AMBIENT 47+#define PR_CAP_AMBIENT_IS_SET 1+#define PR_CAP_AMBIENT_RAISE 2+#define PR_CAP_AMBIENT_LOWER 3+#define PR_CAP_AMBIENT_CLEAR_ALL 4++#define PR_SVE_SET_VL 50+#define PR_SVE_SET_VL_ONEXEC (1 << 18)+#define PR_SVE_GET_VL 51+#define PR_SVE_VL_LEN_MASK 0xffff+#define PR_SVE_VL_INHERIT (1 << 17)++#define PR_GET_SPECULATION_CTRL 52+#define PR_SET_SPECULATION_CTRL 53+#define PR_SPEC_STORE_BYPASS 0+#define PR_SPEC_INDIRECT_BRANCH 1+#define PR_SPEC_NOT_AFFECTED 0+#define PR_SPEC_PRCTL (1UL << 0)+#define PR_SPEC_ENABLE (1UL << 1)+#define PR_SPEC_DISABLE (1UL << 2)+#define PR_SPEC_FORCE_DISABLE (1UL << 3)+#define PR_SPEC_DISABLE_NOEXEC (1UL << 4)++#define PR_PAC_RESET_KEYS 54+#define PR_PAC_APIAKEY (1UL << 0)+#define PR_PAC_APIBKEY (1UL << 1)+#define PR_PAC_APDAKEY (1UL << 2)+#define PR_PAC_APDBKEY (1UL << 3)+#define PR_PAC_APGAKEY (1UL << 4)++#define PR_SET_TAGGED_ADDR_CTRL 55+#define PR_GET_TAGGED_ADDR_CTRL 56+#define PR_TAGGED_ADDR_ENABLE (1UL << 0)+#define PR_MTE_TCF_SHIFT 1+#define PR_MTE_TCF_NONE (0UL << 1)+#define PR_MTE_TCF_SYNC (1UL << 1)+#define PR_MTE_TCF_ASYNC (2UL << 1)+#define PR_MTE_TCF_MASK (3UL << 1)+#define PR_MTE_TAG_SHIFT 3+#define PR_MTE_TAG_MASK (0xffffUL << 3)++#define PR_SET_IO_FLUSHER 57+#define PR_GET_IO_FLUSHER 58++#define PR_SET_SYSCALL_USER_DISPATCH 59+#define PR_SYS_DISPATCH_OFF 0+#define PR_SYS_DISPATCH_ON 1+#define SYSCALL_DISPATCH_FILTER_ALLOW 0+#define SYSCALL_DISPATCH_FILTER_BLOCK 1++#define PR_PAC_SET_ENABLED_KEYS 60+#define PR_PAC_GET_ENABLED_KEYS 61++int prctl (int, ...);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,63 @@+#ifndef _SYS_PROCFS_H+#define _SYS_PROCFS_H+#ifdef __cplusplus+extern "C" {+#endif++#include <sys/time.h>+#include <sys/types.h>+#include <sys/user.h>++struct elf_siginfo {+ int si_signo;+ int si_code;+ int si_errno;+};++struct elf_prstatus {+ struct elf_siginfo pr_info;+ short int pr_cursig;+ unsigned long int pr_sigpend;+ unsigned long int pr_sighold;+ pid_t pr_pid;+ pid_t pr_ppid;+ pid_t pr_pgrp;+ pid_t pr_sid;+ struct {+ long tv_sec, tv_usec;+ } pr_utime, pr_stime, pr_cutime, pr_cstime;+ elf_gregset_t pr_reg;+ int pr_fpvalid;+};++#define ELF_PRARGSZ 80++struct elf_prpsinfo {+ char pr_state;+ char pr_sname;+ char pr_zomb;+ char pr_nice;+ unsigned long int pr_flag;+#if UINTPTR_MAX == 0xffffffff+ unsigned short int pr_uid;+ unsigned short int pr_gid;+#else+ unsigned int pr_uid;+ unsigned int pr_gid;+#endif+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;+ char pr_fname[16];+ char pr_psargs[ELF_PRARGSZ];+};++typedef void *psaddr_t;+typedef elf_gregset_t prgregset_t;+typedef elf_fpregset_t prfpregset_t;+typedef pid_t lwpid_t;+typedef struct elf_prstatus prstatus_t;+typedef struct elf_prpsinfo prpsinfo_t;++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,147 @@+#ifndef _SYS_PTRACE_H+#define _SYS_PTRACE_H+#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>++#define PTRACE_TRACEME 0+#define PT_TRACE_ME PTRACE_TRACEME++#define PTRACE_PEEKTEXT 1+#define PTRACE_PEEKDATA 2+#define PTRACE_PEEKUSER 3+#define PTRACE_POKETEXT 4+#define PTRACE_POKEDATA 5+#define PTRACE_POKEUSER 6+#define PTRACE_CONT 7+#define PTRACE_KILL 8+#define PTRACE_SINGLESTEP 9+#define PTRACE_GETREGS 12+#define PTRACE_SETREGS 13+#define PTRACE_GETFPREGS 14+#define PTRACE_SETFPREGS 15+#define PTRACE_ATTACH 16+#define PTRACE_DETACH 17+#define PTRACE_GETFPXREGS 18+#define PTRACE_SETFPXREGS 19+#define PTRACE_SYSCALL 24+#define PTRACE_SETOPTIONS 0x4200+#define PTRACE_GETEVENTMSG 0x4201+#define PTRACE_GETSIGINFO 0x4202+#define PTRACE_SETSIGINFO 0x4203+#define PTRACE_GETREGSET 0x4204+#define PTRACE_SETREGSET 0x4205+#define PTRACE_SEIZE 0x4206+#define PTRACE_INTERRUPT 0x4207+#define PTRACE_LISTEN 0x4208+#define PTRACE_PEEKSIGINFO 0x4209+#define PTRACE_GETSIGMASK 0x420a+#define PTRACE_SETSIGMASK 0x420b+#define PTRACE_SECCOMP_GET_FILTER 0x420c+#define PTRACE_SECCOMP_GET_METADATA 0x420d+#define PTRACE_GET_SYSCALL_INFO 0x420e+#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f++#define PT_READ_I PTRACE_PEEKTEXT+#define PT_READ_D PTRACE_PEEKDATA+#define PT_READ_U PTRACE_PEEKUSER+#define PT_WRITE_I PTRACE_POKETEXT+#define PT_WRITE_D PTRACE_POKEDATA+#define PT_WRITE_U PTRACE_POKEUSER+#define PT_CONTINUE PTRACE_CONT+#define PT_KILL PTRACE_KILL+#define PT_STEP PTRACE_SINGLESTEP+#define PT_GETREGS PTRACE_GETREGS+#define PT_SETREGS PTRACE_SETREGS+#define PT_GETFPREGS PTRACE_GETFPREGS+#define PT_SETFPREGS PTRACE_SETFPREGS+#define PT_ATTACH PTRACE_ATTACH+#define PT_DETACH PTRACE_DETACH+#define PT_GETFPXREGS PTRACE_GETFPXREGS+#define PT_SETFPXREGS PTRACE_SETFPXREGS+#define PT_SYSCALL PTRACE_SYSCALL+#define PT_SETOPTIONS PTRACE_SETOPTIONS+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG+#define PT_GETSIGINFO PTRACE_GETSIGINFO+#define PT_SETSIGINFO PTRACE_SETSIGINFO++#define PTRACE_O_TRACESYSGOOD 0x00000001+#define PTRACE_O_TRACEFORK 0x00000002+#define PTRACE_O_TRACEVFORK 0x00000004+#define PTRACE_O_TRACECLONE 0x00000008+#define PTRACE_O_TRACEEXEC 0x00000010+#define PTRACE_O_TRACEVFORKDONE 0x00000020+#define PTRACE_O_TRACEEXIT 0x00000040+#define PTRACE_O_TRACESECCOMP 0x00000080+#define PTRACE_O_EXITKILL 0x00100000+#define PTRACE_O_SUSPEND_SECCOMP 0x00200000+#define PTRACE_O_MASK 0x003000ff++#define PTRACE_EVENT_FORK 1+#define PTRACE_EVENT_VFORK 2+#define PTRACE_EVENT_CLONE 3+#define PTRACE_EVENT_EXEC 4+#define PTRACE_EVENT_VFORK_DONE 5+#define PTRACE_EVENT_EXIT 6+#define PTRACE_EVENT_SECCOMP 7+#define PTRACE_EVENT_STOP 128++#define PTRACE_PEEKSIGINFO_SHARED 1++#define PTRACE_SYSCALL_INFO_NONE 0+#define PTRACE_SYSCALL_INFO_ENTRY 1+#define PTRACE_SYSCALL_INFO_EXIT 2+#define PTRACE_SYSCALL_INFO_SECCOMP 3++#include <bits/ptrace.h>++struct __ptrace_peeksiginfo_args {+ uint64_t off;+ uint32_t flags;+ int32_t nr;+};++struct __ptrace_seccomp_metadata {+ uint64_t filter_off;+ uint64_t flags;+};++struct __ptrace_syscall_info {+ uint8_t op;+ uint8_t __pad[3];+ uint32_t arch;+ uint64_t instruction_pointer;+ uint64_t stack_pointer;+ union {+ struct {+ uint64_t nr;+ uint64_t args[6];+ } entry;+ struct {+ int64_t rval;+ uint8_t is_error;+ } exit;+ struct {+ uint64_t nr;+ uint64_t args[6];+ uint32_t ret_data;+ } seccomp;+ };+};++struct __ptrace_rseq_configuration {+ uint64_t rseq_abi_pointer;+ uint32_t rseq_abi_size;+ uint32_t signature;+ uint32_t flags;+ uint32_t pad;+};++long ptrace(int, ...);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,102 @@+#ifndef _SYS_QUOTA_H+#define _SYS_QUOTA_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>++#define _LINUX_QUOTA_VERSION 2++#define dbtob(num) ((num) << 10)+#define btodb(num) ((num) >> 10)+#define fs_to_dq_blocks(num, blksize) (((num) * (blksize)) / 1024)++#define MAX_IQ_TIME 604800+#define MAX_DQ_TIME 604800++#define MAXQUOTAS 2+#define USRQUOTA 0+#define GRPQUOTA 1++#define INITQFNAMES { "user", "group", "undefined" };++#define QUOTAFILENAME "quota"+#define QUOTAGROUP "staff"++#define NR_DQHASH 43+#define NR_DQUOTS 256++#define SUBCMDMASK 0x00ff+#define SUBCMDSHIFT 8+#define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))++#define Q_SYNC 0x800001+#define Q_QUOTAON 0x800002+#define Q_QUOTAOFF 0x800003+#define Q_GETFMT 0x800004+#define Q_GETINFO 0x800005+#define Q_SETINFO 0x800006+#define Q_GETQUOTA 0x800007+#define Q_SETQUOTA 0x800008++#define QFMT_VFS_OLD 1+#define QFMT_VFS_V0 2+#define QFMT_OCFS2 3+#define QFMT_VFS_V1 4++#define QIF_BLIMITS 1+#define QIF_SPACE 2+#define QIF_ILIMITS 4+#define QIF_INODES 8+#define QIF_BTIME 16+#define QIF_ITIME 32+#define QIF_LIMITS (QIF_BLIMITS | QIF_ILIMITS)+#define QIF_USAGE (QIF_SPACE | QIF_INODES)+#define QIF_TIMES (QIF_BTIME | QIF_ITIME)+#define QIF_ALL (QIF_LIMITS | QIF_USAGE | QIF_TIMES)++struct dqblk {+ uint64_t dqb_bhardlimit;+ uint64_t dqb_bsoftlimit;+ uint64_t dqb_curspace;+ uint64_t dqb_ihardlimit;+ uint64_t dqb_isoftlimit;+ uint64_t dqb_curinodes;+ uint64_t dqb_btime;+ uint64_t dqb_itime;+ uint32_t dqb_valid;+};++#define dq_bhardlimit dq_dqb.dqb_bhardlimit+#define dq_bsoftlimit dq_dqb.dqb_bsoftlimit+#define dq_curspace dq_dqb.dqb_curspace+#define dq_valid dq_dqb.dqb_valid+#define dq_ihardlimit dq_dqb.dqb_ihardlimit+#define dq_isoftlimit dq_dqb.dqb_isoftlimit+#define dq_curinodes dq_dqb.dqb_curinodes+#define dq_btime dq_dqb.dqb_btime+#define dq_itime dq_dqb.dqb_itime++#define dqoff(UID) ((long long)(UID) * sizeof (struct dqblk))++#define IIF_BGRACE 1+#define IIF_IGRACE 2+#define IIF_FLAGS 4+#define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)++struct dqinfo {+ uint64_t dqi_bgrace;+ uint64_t dqi_igrace;+ uint32_t dqi_flags;+ uint32_t dqi_valid;+};++int quotactl(int, const char *, int, char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,20 @@+#ifndef _SYS_RANDOM_H+#define _SYS_RANDOM_H+#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_size_t+#define __NEED_ssize_t+#include <bits/alltypes.h>++#define GRND_NONBLOCK 0x0001+#define GRND_RANDOM 0x0002+#define GRND_INSECURE 0x0004++ssize_t getrandom(void *, size_t, unsigned);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,20 @@+#ifndef _SYS_REBOOT_H+#define _SYS_REBOOT_H+#ifdef __cplusplus+extern "C" {+#endif++#define RB_AUTOBOOT 0x01234567+#define RB_HALT_SYSTEM 0xcdef0123+#define RB_ENABLE_CAD 0x89abcdef+#define RB_DISABLE_CAD 0+#define RB_POWER_OFF 0x4321fedc+#define RB_SW_SUSPEND 0xd000fce2+#define RB_KEXEC 0x45584543++int reboot(int);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,9 @@+#ifndef _SYS_REG_H+#define _SYS_REG_H++#include <limits.h>+#include <unistd.h>++#include <bits/reg.h>++#endif
@@ -0,0 +1,116 @@+#ifndef _SYS_RESOURCE_H+#define _SYS_RESOURCE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <sys/time.h>++#define __NEED_id_t++#ifdef _GNU_SOURCE+#define __NEED_pid_t+#endif++#include <bits/alltypes.h>+#include <bits/resource.h>++typedef unsigned long long rlim_t;++struct rlimit {+ rlim_t rlim_cur;+ rlim_t rlim_max;+};++struct rusage {+ struct timeval ru_utime;+ struct timeval ru_stime;+ /* linux extentions, but useful */+ long ru_maxrss;+ long ru_ixrss;+ long ru_idrss;+ long ru_isrss;+ long ru_minflt;+ long ru_majflt;+ long ru_nswap;+ long ru_inblock;+ long ru_oublock;+ long ru_msgsnd;+ long ru_msgrcv;+ long ru_nsignals;+ long ru_nvcsw;+ long ru_nivcsw;+ /* room for more... */+ long __reserved[16];+};++int getrlimit (int, struct rlimit *);+int setrlimit (int, const struct rlimit *);+int getrusage (int, struct rusage *);++int getpriority (int, id_t);+int setpriority (int, id_t, int);++#ifdef _GNU_SOURCE+int prlimit(pid_t, int, const struct rlimit *, struct rlimit *);+#define prlimit64 prlimit+#endif++#define PRIO_MIN (-20)+#define PRIO_MAX 20++#define PRIO_PROCESS 0+#define PRIO_PGRP 1+#define PRIO_USER 2++#define RUSAGE_SELF 0+#define RUSAGE_CHILDREN (-1)+#define RUSAGE_THREAD 1++#define RLIM_INFINITY (~0ULL)+#define RLIM_SAVED_CUR RLIM_INFINITY+#define RLIM_SAVED_MAX RLIM_INFINITY++#define RLIMIT_CPU 0+#define RLIMIT_FSIZE 1+#define RLIMIT_DATA 2+#define RLIMIT_STACK 3+#define RLIMIT_CORE 4+#ifndef RLIMIT_RSS+#define RLIMIT_RSS 5+#define RLIMIT_NPROC 6+#define RLIMIT_NOFILE 7+#define RLIMIT_MEMLOCK 8+#define RLIMIT_AS 9+#endif+#define RLIMIT_LOCKS 10+#define RLIMIT_SIGPENDING 11+#define RLIMIT_MSGQUEUE 12+#define RLIMIT_NICE 13+#define RLIMIT_RTPRIO 14+#define RLIMIT_RTTIME 15+#define RLIMIT_NLIMITS 16++#define RLIM_NLIMITS RLIMIT_NLIMITS++#if defined(_LARGEFILE64_SOURCE)+#define RLIM64_INFINITY RLIM_INFINITY+#define RLIM64_SAVED_CUR RLIM_SAVED_CUR+#define RLIM64_SAVED_MAX RLIM_SAVED_MAX+#define getrlimit64 getrlimit+#define setrlimit64 setrlimit+#define rlimit64 rlimit+#define rlim64_t rlim_t+#endif++#if _REDIR_TIME64+__REDIR(getrusage, __getrusage_time64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,46 @@+#ifndef _SYS_SELECT_H+#define _SYS_SELECT_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_time_t+#define __NEED_suseconds_t+#define __NEED_struct_timeval+#define __NEED_struct_timespec+#define __NEED_sigset_t++#include <bits/alltypes.h>++#define FD_SETSIZE 1024++typedef unsigned long fd_mask;++typedef struct {+ unsigned long fds_bits[FD_SETSIZE / 8 / sizeof(long)];+} fd_set;++#define FD_ZERO(s) do { int __i; unsigned long *__b=(s)->fds_bits; for(__i=sizeof (fd_set)/sizeof (long); __i; __i--) *__b++=0; } while(0)+#define FD_SET(d, s) ((s)->fds_bits[(d)/(8*sizeof(long))] |= (1UL<<((d)%(8*sizeof(long)))))+#define FD_CLR(d, s) ((s)->fds_bits[(d)/(8*sizeof(long))] &= ~(1UL<<((d)%(8*sizeof(long)))))+#define FD_ISSET(d, s) !!((s)->fds_bits[(d)/(8*sizeof(long))] & (1UL<<((d)%(8*sizeof(long)))))++int select (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, struct timeval *__restrict);+int pselect (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, const struct timespec *__restrict, const sigset_t *__restrict);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define NFDBITS (8*(int)sizeof(long))+#endif++#if _REDIR_TIME64+__REDIR(select, __select_time64);+__REDIR(pselect, __pselect_time64);+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,72 @@+#ifndef _SYS_SEM_H+#define _SYS_SEM_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_pid_t+#define __NEED_time_t+#ifdef _GNU_SOURCE+#define __NEED_struct_timespec+#endif+#include <bits/alltypes.h>++#include <sys/ipc.h>++#define SEM_UNDO 0x1000+#define GETPID 11+#define GETVAL 12+#define GETALL 13+#define GETNCNT 14+#define GETZCNT 15+#define SETVAL 16+#define SETALL 17++#include <bits/sem.h>++#define _SEM_SEMUN_UNDEFINED 1++#define SEM_STAT (18 | (IPC_STAT & 0x100))+#define SEM_INFO 19+#define SEM_STAT_ANY (20 | (IPC_STAT & 0x100))++struct seminfo {+ int semmap;+ int semmni;+ int semmns;+ int semmnu;+ int semmsl;+ int semopm;+ int semume;+ int semusz;+ int semvmx;+ int semaem;+};++struct sembuf {+ unsigned short sem_num;+ short sem_op;+ short sem_flg;+};++int semctl(int, int, int, ...);+int semget(key_t, int, int);+int semop(int, struct sembuf *, size_t);++#ifdef _GNU_SOURCE+int semtimedop(int, struct sembuf *, size_t, const struct timespec *);+#endif++#if _REDIR_TIME64+#ifdef _GNU_SOURCE+__REDIR(semtimedop, __semtimedop_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,22 @@+#ifndef _SYS_SENDFILE_H+#define _SYS_SENDFILE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <unistd.h>++ssize_t sendfile(int, int, off_t *, size_t);++#if defined(_LARGEFILE64_SOURCE)+#define sendfile64 sendfile+#define off64_t off_t+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,70 @@+#ifndef _SYS_SHM_H+#define _SYS_SHM_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_time_t+#define __NEED_size_t+#define __NEED_pid_t++#include <bits/alltypes.h>++#include <sys/ipc.h>++#ifdef _GNU_SOURCE+#define __used_ids used_ids+#define __swap_attempts swap_attempts+#define __swap_successes swap_successes+#endif++#include <bits/shm.h>++#define SHM_R 0400+#define SHM_W 0200++#define SHM_RDONLY 010000+#define SHM_RND 020000+#define SHM_REMAP 040000+#define SHM_EXEC 0100000++#define SHM_LOCK 11+#define SHM_UNLOCK 12+#define SHM_STAT (13 | (IPC_STAT & 0x100))+#define SHM_INFO 14+#define SHM_STAT_ANY (15 | (IPC_STAT & 0x100))+#define SHM_DEST 01000+#define SHM_LOCKED 02000+#define SHM_HUGETLB 04000+#define SHM_NORESERVE 010000++#define SHM_HUGE_SHIFT 26+#define SHM_HUGE_MASK 0x3f+#define SHM_HUGE_64KB (16 << 26)+#define SHM_HUGE_512KB (19 << 26)+#define SHM_HUGE_1MB (20 << 26)+#define SHM_HUGE_2MB (21 << 26)+#define SHM_HUGE_8MB (23 << 26)+#define SHM_HUGE_16MB (24 << 26)+#define SHM_HUGE_32MB (25 << 26)+#define SHM_HUGE_256MB (28 << 26)+#define SHM_HUGE_512MB (29 << 26)+#define SHM_HUGE_1GB (30 << 26)+#define SHM_HUGE_2GB (31 << 26)+#define SHM_HUGE_16GB (34U << 26)++typedef unsigned long shmatt_t;++void *shmat(int, const void *, int);+int shmctl(int, int, struct shmid_ds *);+int shmdt(const void *);+int shmget(key_t, size_t, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,2 @@+#warning redirecting incorrect #include <sys/signal.h> to <signal.h>+#include <signal.h>
@@ -0,0 +1,49 @@+#ifndef _SYS_SIGNALFD_H+#define _SYS_SIGNALFD_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <fcntl.h>++#define __NEED_sigset_t++#include <bits/alltypes.h>++#define SFD_CLOEXEC O_CLOEXEC+#define SFD_NONBLOCK O_NONBLOCK++int signalfd(int, const sigset_t *, int);++struct signalfd_siginfo {+ uint32_t ssi_signo;+ int32_t ssi_errno;+ int32_t ssi_code;+ uint32_t ssi_pid;+ uint32_t ssi_uid;+ int32_t ssi_fd;+ uint32_t ssi_tid;+ uint32_t ssi_band;+ uint32_t ssi_overrun;+ uint32_t ssi_trapno;+ int32_t ssi_status;+ int32_t ssi_int;+ uint64_t ssi_ptr;+ uint64_t ssi_utime;+ uint64_t ssi_stime;+ uint64_t ssi_addr;+ uint16_t ssi_addr_lsb;+ uint16_t __pad2;+ int32_t ssi_syscall;+ uint64_t ssi_call_addr;+ uint32_t ssi_arch;+ uint8_t __pad[128-14*4-5*8-2*2];+};++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,415 @@+#ifndef _SYS_SOCKET_H+#define _SYS_SOCKET_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_socklen_t+#define __NEED_sa_family_t+#define __NEED_size_t+#define __NEED_ssize_t+#define __NEED_uid_t+#define __NEED_pid_t+#define __NEED_gid_t+#define __NEED_struct_iovec++#include <bits/alltypes.h>++#include <bits/socket.h>++struct msghdr {+ void *msg_name;+ socklen_t msg_namelen;+ struct iovec *msg_iov;+#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN+ int __pad1;+#endif+ int msg_iovlen;+#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN+ int __pad1;+#endif+ void *msg_control;+#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN+ int __pad2;+#endif+ socklen_t msg_controllen;+#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN+ int __pad2;+#endif+ int msg_flags;+};++struct cmsghdr {+#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN+ int __pad1;+#endif+ socklen_t cmsg_len;+#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN+ int __pad1;+#endif+ int cmsg_level;+ int cmsg_type;+};++#ifdef _GNU_SOURCE+struct ucred {+ pid_t pid;+ uid_t uid;+ gid_t gid;+};++struct mmsghdr {+ struct msghdr msg_hdr;+ unsigned int msg_len;+};++struct timespec;++int sendmmsg (int, struct mmsghdr *, unsigned int, unsigned int);+int recvmmsg (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *);+#endif++struct linger {+ int l_onoff;+ int l_linger;+};++#define SHUT_RD 0+#define SHUT_WR 1+#define SHUT_RDWR 2++#ifndef SOCK_STREAM+#define SOCK_STREAM 1+#define SOCK_DGRAM 2+#endif++#define SOCK_RAW 3+#define SOCK_RDM 4+#define SOCK_SEQPACKET 5+#define SOCK_DCCP 6+#define SOCK_PACKET 10++#ifndef SOCK_CLOEXEC+#define SOCK_CLOEXEC 02000000+#define SOCK_NONBLOCK 04000+#endif++#define PF_UNSPEC 0+#define PF_LOCAL 1+#define PF_UNIX PF_LOCAL+#define PF_FILE PF_LOCAL+#define PF_INET 2+#define PF_AX25 3+#define PF_IPX 4+#define PF_APPLETALK 5+#define PF_NETROM 6+#define PF_BRIDGE 7+#define PF_ATMPVC 8+#define PF_X25 9+#define PF_INET6 10+#define PF_ROSE 11+#define PF_DECnet 12+#define PF_NETBEUI 13+#define PF_SECURITY 14+#define PF_KEY 15+#define PF_NETLINK 16+#define PF_ROUTE PF_NETLINK+#define PF_PACKET 17+#define PF_ASH 18+#define PF_ECONET 19+#define PF_ATMSVC 20+#define PF_RDS 21+#define PF_SNA 22+#define PF_IRDA 23+#define PF_PPPOX 24+#define PF_WANPIPE 25+#define PF_LLC 26+#define PF_IB 27+#define PF_MPLS 28+#define PF_CAN 29+#define PF_TIPC 30+#define PF_BLUETOOTH 31+#define PF_IUCV 32+#define PF_RXRPC 33+#define PF_ISDN 34+#define PF_PHONET 35+#define PF_IEEE802154 36+#define PF_CAIF 37+#define PF_ALG 38+#define PF_NFC 39+#define PF_VSOCK 40+#define PF_KCM 41+#define PF_QIPCRTR 42+#define PF_SMC 43+#define PF_XDP 44+#define PF_MAX 45++#define AF_UNSPEC PF_UNSPEC+#define AF_LOCAL PF_LOCAL+#define AF_UNIX AF_LOCAL+#define AF_FILE AF_LOCAL+#define AF_INET PF_INET+#define AF_AX25 PF_AX25+#define AF_IPX PF_IPX+#define AF_APPLETALK PF_APPLETALK+#define AF_NETROM PF_NETROM+#define AF_BRIDGE PF_BRIDGE+#define AF_ATMPVC PF_ATMPVC+#define AF_X25 PF_X25+#define AF_INET6 PF_INET6+#define AF_ROSE PF_ROSE+#define AF_DECnet PF_DECnet+#define AF_NETBEUI PF_NETBEUI+#define AF_SECURITY PF_SECURITY+#define AF_KEY PF_KEY+#define AF_NETLINK PF_NETLINK+#define AF_ROUTE PF_ROUTE+#define AF_PACKET PF_PACKET+#define AF_ASH PF_ASH+#define AF_ECONET PF_ECONET+#define AF_ATMSVC PF_ATMSVC+#define AF_RDS PF_RDS+#define AF_SNA PF_SNA+#define AF_IRDA PF_IRDA+#define AF_PPPOX PF_PPPOX+#define AF_WANPIPE PF_WANPIPE+#define AF_LLC PF_LLC+#define AF_IB PF_IB+#define AF_MPLS PF_MPLS+#define AF_CAN PF_CAN+#define AF_TIPC PF_TIPC+#define AF_BLUETOOTH PF_BLUETOOTH+#define AF_IUCV PF_IUCV+#define AF_RXRPC PF_RXRPC+#define AF_ISDN PF_ISDN+#define AF_PHONET PF_PHONET+#define AF_IEEE802154 PF_IEEE802154+#define AF_CAIF PF_CAIF+#define AF_ALG PF_ALG+#define AF_NFC PF_NFC+#define AF_VSOCK PF_VSOCK+#define AF_KCM PF_KCM+#define AF_QIPCRTR PF_QIPCRTR+#define AF_SMC PF_SMC+#define AF_XDP PF_XDP+#define AF_MAX PF_MAX++#ifndef SO_DEBUG+#define SO_DEBUG 1+#define SO_REUSEADDR 2+#define SO_TYPE 3+#define SO_ERROR 4+#define SO_DONTROUTE 5+#define SO_BROADCAST 6+#define SO_SNDBUF 7+#define SO_RCVBUF 8+#define SO_KEEPALIVE 9+#define SO_OOBINLINE 10+#define SO_NO_CHECK 11+#define SO_PRIORITY 12+#define SO_LINGER 13+#define SO_BSDCOMPAT 14+#define SO_REUSEPORT 15+#define SO_PASSCRED 16+#define SO_PEERCRED 17+#define SO_RCVLOWAT 18+#define SO_SNDLOWAT 19+#define SO_ACCEPTCONN 30+#define SO_PEERSEC 31+#define SO_SNDBUFFORCE 32+#define SO_RCVBUFFORCE 33+#define SO_PROTOCOL 38+#define SO_DOMAIN 39+#endif++#ifndef SO_RCVTIMEO+#if __LONG_MAX == 0x7fffffff+#define SO_RCVTIMEO 66+#define SO_SNDTIMEO 67+#else+#define SO_RCVTIMEO 20+#define SO_SNDTIMEO 21+#endif+#endif++#ifndef SO_TIMESTAMP+#if __LONG_MAX == 0x7fffffff+#define SO_TIMESTAMP 63+#define SO_TIMESTAMPNS 64+#define SO_TIMESTAMPING 65+#else+#define SO_TIMESTAMP 29+#define SO_TIMESTAMPNS 35+#define SO_TIMESTAMPING 37+#endif+#endif++#define SO_SECURITY_AUTHENTICATION 22+#define SO_SECURITY_ENCRYPTION_TRANSPORT 23+#define SO_SECURITY_ENCRYPTION_NETWORK 24++#define SO_BINDTODEVICE 25++#define SO_ATTACH_FILTER 26+#define SO_DETACH_FILTER 27+#define SO_GET_FILTER SO_ATTACH_FILTER++#define SO_PEERNAME 28+#define SCM_TIMESTAMP SO_TIMESTAMP+#define SO_PASSSEC 34+#define SCM_TIMESTAMPNS SO_TIMESTAMPNS+#define SO_MARK 36+#define SCM_TIMESTAMPING SO_TIMESTAMPING+#define SO_RXQ_OVFL 40+#define SO_WIFI_STATUS 41+#define SCM_WIFI_STATUS SO_WIFI_STATUS+#define SO_PEEK_OFF 42+#define SO_NOFCS 43+#define SO_LOCK_FILTER 44+#define SO_SELECT_ERR_QUEUE 45+#define SO_BUSY_POLL 46+#define SO_MAX_PACING_RATE 47+#define SO_BPF_EXTENSIONS 48+#define SO_INCOMING_CPU 49+#define SO_ATTACH_BPF 50+#define SO_DETACH_BPF SO_DETACH_FILTER+#define SO_ATTACH_REUSEPORT_CBPF 51+#define SO_ATTACH_REUSEPORT_EBPF 52+#define SO_CNX_ADVICE 53+#define SCM_TIMESTAMPING_OPT_STATS 54+#define SO_MEMINFO 55+#define SO_INCOMING_NAPI_ID 56+#define SO_COOKIE 57+#define SCM_TIMESTAMPING_PKTINFO 58+#define SO_PEERGROUPS 59+#define SO_ZEROCOPY 60+#define SO_TXTIME 61+#define SCM_TXTIME SO_TXTIME+#define SO_BINDTOIFINDEX 62+#define SO_DETACH_REUSEPORT_BPF 68+#define SO_PREFER_BUSY_POLL 69+#define SO_BUSY_POLL_BUDGET 70++#ifndef SOL_SOCKET+#define SOL_SOCKET 1+#endif++#define SOL_IP 0+#define SOL_IPV6 41+#define SOL_ICMPV6 58++#define SOL_RAW 255+#define SOL_DECNET 261+#define SOL_X25 262+#define SOL_PACKET 263+#define SOL_ATM 264+#define SOL_AAL 265+#define SOL_IRDA 266+#define SOL_NETBEUI 267+#define SOL_LLC 268+#define SOL_DCCP 269+#define SOL_NETLINK 270+#define SOL_TIPC 271+#define SOL_RXRPC 272+#define SOL_PPPOL2TP 273+#define SOL_BLUETOOTH 274+#define SOL_PNPIPE 275+#define SOL_RDS 276+#define SOL_IUCV 277+#define SOL_CAIF 278+#define SOL_ALG 279+#define SOL_NFC 280+#define SOL_KCM 281+#define SOL_TLS 282+#define SOL_XDP 283++#define SOMAXCONN 128++#define MSG_OOB 0x0001+#define MSG_PEEK 0x0002+#define MSG_DONTROUTE 0x0004+#define MSG_CTRUNC 0x0008+#define MSG_PROXY 0x0010+#define MSG_TRUNC 0x0020+#define MSG_DONTWAIT 0x0040+#define MSG_EOR 0x0080+#define MSG_WAITALL 0x0100+#define MSG_FIN 0x0200+#define MSG_SYN 0x0400+#define MSG_CONFIRM 0x0800+#define MSG_RST 0x1000+#define MSG_ERRQUEUE 0x2000+#define MSG_NOSIGNAL 0x4000+#define MSG_MORE 0x8000+#define MSG_WAITFORONE 0x10000+#define MSG_BATCH 0x40000+#define MSG_ZEROCOPY 0x4000000+#define MSG_FASTOPEN 0x20000000+#define MSG_CMSG_CLOEXEC 0x40000000++#define __CMSG_LEN(cmsg) (((cmsg)->cmsg_len + sizeof(long) - 1) & ~(long)(sizeof(long) - 1))+#define __CMSG_NEXT(cmsg) ((unsigned char *)(cmsg) + __CMSG_LEN(cmsg))+#define __MHDR_END(mhdr) ((unsigned char *)(mhdr)->msg_control + (mhdr)->msg_controllen)++#define CMSG_DATA(cmsg) ((unsigned char *) (((struct cmsghdr *)(cmsg)) + 1))+#define CMSG_NXTHDR(mhdr, cmsg) ((cmsg)->cmsg_len < sizeof (struct cmsghdr) || \+ __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \+ ? 0 : (struct cmsghdr *)__CMSG_NEXT(cmsg))+#define CMSG_FIRSTHDR(mhdr) ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)++#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))+#define CMSG_SPACE(len) (CMSG_ALIGN (len) + CMSG_ALIGN (sizeof (struct cmsghdr)))+#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))++#define SCM_RIGHTS 0x01+#define SCM_CREDENTIALS 0x02++struct sockaddr {+ sa_family_t sa_family;+ char sa_data[14];+};++struct sockaddr_storage {+ sa_family_t ss_family;+ char __ss_padding[128-sizeof(long)-sizeof(sa_family_t)];+ unsigned long __ss_align;+};++int socket (int, int, int);+int socketpair (int, int, int, int [2]);++int shutdown (int, int);++int bind (int, const struct sockaddr *, socklen_t);+int connect (int, const struct sockaddr *, socklen_t);+int listen (int, int);+int accept (int, struct sockaddr *__restrict, socklen_t *__restrict);+int accept4(int, struct sockaddr *__restrict, socklen_t *__restrict, int);++int getsockname (int, struct sockaddr *__restrict, socklen_t *__restrict);+int getpeername (int, struct sockaddr *__restrict, socklen_t *__restrict);++ssize_t send (int, const void *, size_t, int);+ssize_t recv (int, void *, size_t, int);+ssize_t sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t);+ssize_t recvfrom (int, void *__restrict, size_t, int, struct sockaddr *__restrict, socklen_t *__restrict);+ssize_t sendmsg (int, const struct msghdr *, int);+ssize_t recvmsg (int, struct msghdr *, int);++int getsockopt (int, int, int, void *__restrict, socklen_t *__restrict);+int setsockopt (int, int, int, const void *, socklen_t);++int sockatmark (int);++#if _REDIR_TIME64+#ifdef _GNU_SOURCE+__REDIR(recvmmsg, __recvmmsg_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,1 @@+#include <bits/soundcard.h>
@@ -0,0 +1,182 @@+#ifndef _SYS_STAT_H+#define _SYS_STAT_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_dev_t+#define __NEED_ino_t+#define __NEED_mode_t+#define __NEED_nlink_t+#define __NEED_uid_t+#define __NEED_gid_t+#define __NEED_off_t+#define __NEED_time_t+#define __NEED_blksize_t+#define __NEED_blkcnt_t+#define __NEED_struct_timespec++#ifdef _GNU_SOURCE+#define __NEED_int64_t+#define __NEED_uint64_t+#define __NEED_uint32_t+#define __NEED_uint16_t+#endif++#include <bits/alltypes.h>++#include <bits/stat.h>++#define st_atime st_atim.tv_sec+#define st_mtime st_mtim.tv_sec+#define st_ctime st_ctim.tv_sec++#define S_IFMT 0170000++#define S_IFDIR 0040000+#define S_IFCHR 0020000+#define S_IFBLK 0060000+#define S_IFREG 0100000+#define S_IFIFO 0010000+#define S_IFLNK 0120000+#define S_IFSOCK 0140000++#define S_TYPEISMQ(buf) 0+#define S_TYPEISSEM(buf) 0+#define S_TYPEISSHM(buf) 0+#define S_TYPEISTMO(buf) 0++#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)+#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR)+#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)+#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)+#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)+#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)+#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)++#ifndef S_IRUSR+#define S_ISUID 04000+#define S_ISGID 02000+#define S_ISVTX 01000+#define S_IRUSR 0400+#define S_IWUSR 0200+#define S_IXUSR 0100+#define S_IRWXU 0700+#define S_IRGRP 0040+#define S_IWGRP 0020+#define S_IXGRP 0010+#define S_IRWXG 0070+#define S_IROTH 0004+#define S_IWOTH 0002+#define S_IXOTH 0001+#define S_IRWXO 0007+#endif++#define UTIME_NOW 0x3fffffff+#define UTIME_OMIT 0x3ffffffe++int stat(const char *__restrict, struct stat *__restrict);+int fstat(int, struct stat *);+int lstat(const char *__restrict, struct stat *__restrict);+int fstatat(int, const char *__restrict, struct stat *__restrict, int);+int chmod(const char *, mode_t);+int fchmod(int, mode_t);+int fchmodat(int, const char *, mode_t, int);+mode_t umask(mode_t);+int mkdir(const char *, mode_t);+int mkfifo(const char *, mode_t);+int mkdirat(int, const char *, mode_t);+int mkfifoat(int, const char *, mode_t);++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int mknod(const char *, mode_t, dev_t);+int mknodat(int, const char *, mode_t, dev_t);+#endif++int futimens(int, const struct timespec [2]);+int utimensat(int, const char *, const struct timespec [2], int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int lchmod(const char *, mode_t);+#define S_IREAD S_IRUSR+#define S_IWRITE S_IWUSR+#define S_IEXEC S_IXUSR+#endif++#if defined(_GNU_SOURCE)+#define STATX_TYPE 1U+#define STATX_MODE 2U+#define STATX_NLINK 4U+#define STATX_UID 8U+#define STATX_GID 0x10U+#define STATX_ATIME 0x20U+#define STATX_MTIME 0x40U+#define STATX_CTIME 0x80U+#define STATX_INO 0x100U+#define STATX_SIZE 0x200U+#define STATX_BLOCKS 0x400U+#define STATX_BASIC_STATS 0x7ffU+#define STATX_BTIME 0x800U+#define STATX_ALL 0xfffU++struct statx_timestamp {+ int64_t tv_sec;+ uint32_t tv_nsec, __pad;+};++struct statx {+ uint32_t stx_mask;+ uint32_t stx_blksize;+ uint64_t stx_attributes;+ uint32_t stx_nlink;+ uint32_t stx_uid;+ uint32_t stx_gid;+ uint16_t stx_mode;+ uint16_t __pad0[1];+ uint64_t stx_ino;+ uint64_t stx_size;+ uint64_t stx_blocks;+ uint64_t stx_attributes_mask;+ struct statx_timestamp stx_atime;+ struct statx_timestamp stx_btime;+ struct statx_timestamp stx_ctime;+ struct statx_timestamp stx_mtime;+ uint32_t stx_rdev_major;+ uint32_t stx_rdev_minor;+ uint32_t stx_dev_major;+ uint32_t stx_dev_minor;+ uint64_t __pad1[14];+};++int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict);+#endif++#if defined(_LARGEFILE64_SOURCE)+#define stat64 stat+#define fstat64 fstat+#define lstat64 lstat+#define fstatat64 fstatat+#define blkcnt64_t blkcnt_t+#define fsblkcnt64_t fsblkcnt_t+#define fsfilcnt64_t fsfilcnt_t+#define ino64_t ino_t+#define off64_t off_t+#endif++#if _REDIR_TIME64+__REDIR(stat, __stat_time64);+__REDIR(fstat, __fstat_time64);+__REDIR(lstat, __lstat_time64);+__REDIR(fstatat, __fstatat_time64);+__REDIR(futimens, __futimens_time64);+__REDIR(utimensat, __utimensat_time64);+#endif++#ifdef __cplusplus+}+#endif+#endif++
@@ -0,0 +1,32 @@+#ifndef _SYS_STATFS_H+#define _SYS_STATFS_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <sys/statvfs.h>++typedef struct __fsid_t {+ int __val[2];+} fsid_t;++#include <bits/statfs.h>++int statfs (const char *, struct statfs *);+int fstatfs (int, struct statfs *);++#if defined(_LARGEFILE64_SOURCE)+#define statfs64 statfs+#define fstatfs64 fstatfs+#define fsblkcnt64_t fsblkcnt_t+#define fsfilcnt64_t fsfilcnt_t+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,57 @@+#ifndef _SYS_STATVFS_H+#define _SYS_STATVFS_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_fsblkcnt_t+#define __NEED_fsfilcnt_t+#include <bits/alltypes.h>++struct statvfs {+ unsigned long f_bsize, f_frsize;+ fsblkcnt_t f_blocks, f_bfree, f_bavail;+ fsfilcnt_t f_files, f_ffree, f_favail;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned long f_fsid;+ unsigned :8*(2*sizeof(int)-sizeof(long));+#else+ unsigned :8*(2*sizeof(int)-sizeof(long));+ unsigned long f_fsid;+#endif+ unsigned long f_flag, f_namemax;+ unsigned int f_type;+ int __reserved[5];+};++int statvfs (const char *__restrict, struct statvfs *__restrict);+int fstatvfs (int, struct statvfs *);++#define ST_RDONLY 1+#define ST_NOSUID 2+#define ST_NODEV 4+#define ST_NOEXEC 8+#define ST_SYNCHRONOUS 16+#define ST_MANDLOCK 64+#define ST_WRITE 128+#define ST_APPEND 256+#define ST_IMMUTABLE 512+#define ST_NOATIME 1024+#define ST_NODIRATIME 2048+#define ST_RELATIME 4096++#if defined(_LARGEFILE64_SOURCE)+#define statvfs64 statvfs+#define fstatvfs64 fstatvfs+#define fsblkcnt64_t fsblkcnt_t+#define fsfilcnt64_t fsfilcnt_t+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,1 @@+#include <stropts.h>
@@ -0,0 +1,21 @@+#ifndef _SYS_SWAP_H+#define _SYS_SWAP_H++#ifdef __cplusplus+extern "C" {+#endif+++#define SWAP_FLAG_PREFER 0x8000+#define SWAP_FLAG_PRIO_MASK 0x7fff+#define SWAP_FLAG_PRIO_SHIFT 0+#define SWAP_FLAG_DISCARD 0x10000++int swapon (const char *, int);+int swapoff (const char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,6 @@+#ifndef _SYS_SYSCALL_H+#define _SYS_SYSCALL_H++#include <bits/syscall.h>++#endif
@@ -0,0 +1,36 @@+#ifndef _SYS_SYSINFO_H+#define _SYS_SYSINFO_H++#ifdef __cplusplus+extern "C" {+#endif++#define SI_LOAD_SHIFT 16++struct sysinfo {+ unsigned long uptime;+ unsigned long loads[3];+ unsigned long totalram;+ unsigned long freeram;+ unsigned long sharedram;+ unsigned long bufferram;+ unsigned long totalswap;+ unsigned long freeswap;+ unsigned short procs, pad;+ unsigned long totalhigh;+ unsigned long freehigh;+ unsigned mem_unit;+ char __reserved[256];+};++int sysinfo (struct sysinfo *);+int get_nprocs_conf (void);+int get_nprocs (void);+long get_phys_pages (void);+long get_avphys_pages (void);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,1 @@+#include <syslog.h>
@@ -0,0 +1,15 @@+#ifndef _SYS_SYSMACROS_H+#define _SYS_SYSMACROS_H++#define major(x) \+ ((unsigned)( (((x)>>31>>1) & 0xfffff000) | (((x)>>8) & 0x00000fff) ))+#define minor(x) \+ ((unsigned)( (((x)>>12) & 0xffffff00) | ((x) & 0x000000ff) ))++#define makedev(x,y) ( \+ (((x)&0xfffff000ULL) << 32) | \+ (((x)&0x00000fffULL) << 8) | \+ (((y)&0xffffff00ULL) << 12) | \+ (((y)&0x000000ffULL)) )++#endif
@@ -0,0 +1,2 @@+#warning redirecting incorrect #include <sys/termios.h> to <termios.h>+#include <termios.h>
@@ -0,0 +1,76 @@+#ifndef _SYS_TIME_H+#define _SYS_TIME_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <sys/select.h>++int gettimeofday (struct timeval *__restrict, void *__restrict);++#define ITIMER_REAL 0+#define ITIMER_VIRTUAL 1+#define ITIMER_PROF 2++struct itimerval {+ struct timeval it_interval;+ struct timeval it_value;+};++int getitimer (int, struct itimerval *);+int setitimer (int, const struct itimerval *__restrict, struct itimerval *__restrict);+int utimes (const char *, const struct timeval [2]);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+struct timezone {+ int tz_minuteswest;+ int tz_dsttime;+};+int futimes(int, const struct timeval [2]);+int futimesat(int, const char *, const struct timeval [2]);+int lutimes(const char *, const struct timeval [2]);+int settimeofday(const struct timeval *, const struct timezone *);+int adjtime (const struct timeval *, struct timeval *);+#define timerisset(t) ((t)->tv_sec || (t)->tv_usec)+#define timerclear(t) ((t)->tv_sec = (t)->tv_usec = 0)+#define timercmp(s,t,op) ((s)->tv_sec == (t)->tv_sec ? \+ (s)->tv_usec op (t)->tv_usec : (s)->tv_sec op (t)->tv_sec)+#define timeradd(s,t,a) (void) ( (a)->tv_sec = (s)->tv_sec + (t)->tv_sec, \+ ((a)->tv_usec = (s)->tv_usec + (t)->tv_usec) >= 1000000 && \+ ((a)->tv_usec -= 1000000, (a)->tv_sec++) )+#define timersub(s,t,a) (void) ( (a)->tv_sec = (s)->tv_sec - (t)->tv_sec, \+ ((a)->tv_usec = (s)->tv_usec - (t)->tv_usec) < 0 && \+ ((a)->tv_usec += 1000000, (a)->tv_sec--) )+#endif++#if defined(_GNU_SOURCE)+#define TIMEVAL_TO_TIMESPEC(tv, ts) ( \+ (ts)->tv_sec = (tv)->tv_sec, \+ (ts)->tv_nsec = (tv)->tv_usec * 1000, \+ (void)0 )+#define TIMESPEC_TO_TIMEVAL(tv, ts) ( \+ (tv)->tv_sec = (ts)->tv_sec, \+ (tv)->tv_usec = (ts)->tv_nsec / 1000, \+ (void)0 )+#endif++#if _REDIR_TIME64+__REDIR(gettimeofday, __gettimeofday_time64);+__REDIR(getitimer, __getitimer_time64);+__REDIR(setitimer, __setitimer_time64);+__REDIR(utimes, __utimes_time64);+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+__REDIR(futimes, __futimes_time64);+__REDIR(futimesat, __futimesat_time64);+__REDIR(lutimes, __lutimes_time64);+__REDIR(settimeofday, __settimeofday_time64);+__REDIR(adjtime, __adjtime64);+#endif+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,28 @@+#ifndef _SYS_TIMEB_H+#define _SYS_TIMEB_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_time_t++#include <bits/alltypes.h>++struct timeb {+ time_t time;+ unsigned short millitm;+ short timezone, dstflag;+};++int ftime(struct timeb *);++#if _REDIR_TIME64+__REDIR(ftime, __ftime64);+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,32 @@+#ifndef _SYS_TIMERFD_H+#define _SYS_TIMERFD_H++#ifdef __cplusplus+extern "C" {+#endif++#include <time.h>+#include <fcntl.h>++#define TFD_NONBLOCK O_NONBLOCK+#define TFD_CLOEXEC O_CLOEXEC++#define TFD_TIMER_ABSTIME 1+#define TFD_TIMER_CANCEL_ON_SET (1 << 1)++struct itimerspec;++int timerfd_create(int, int);+int timerfd_settime(int, int, const struct itimerspec *, struct itimerspec *);+int timerfd_gettime(int, struct itimerspec *);++#if _REDIR_TIME64+__REDIR(timerfd_settime, __timerfd_settime64);+__REDIR(timerfd_gettime, __timerfd_gettime64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,25 @@+#ifndef _SYS_TIMES_H+#define _SYS_TIMES_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_clock_t+#include <bits/alltypes.h>++struct tms {+ clock_t tms_utime;+ clock_t tms_stime;+ clock_t tms_cutime;+ clock_t tms_cstime;+};++clock_t times (struct tms *);++#ifdef __cplusplus+}+#endif++#endif+
@@ -0,0 +1,103 @@+#ifndef _SYS_TIMEX_H+#define _SYS_TIMEX_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_clockid_t++#include <bits/alltypes.h>++#include <sys/time.h>++struct ntptimeval {+ struct timeval time;+ long maxerror, esterror;+};++struct timex {+ unsigned modes;+ long offset, freq, maxerror, esterror;+ int status;+ long constant, precision, tolerance;+ struct timeval time;+ long tick, ppsfreq, jitter;+ int shift;+ long stabil, jitcnt, calcnt, errcnt, stbcnt;+ int tai;+ int __padding[11];+};++#define ADJ_OFFSET 0x0001+#define ADJ_FREQUENCY 0x0002+#define ADJ_MAXERROR 0x0004+#define ADJ_ESTERROR 0x0008+#define ADJ_STATUS 0x0010+#define ADJ_TIMECONST 0x0020+#define ADJ_TAI 0x0080+#define ADJ_SETOFFSET 0x0100+#define ADJ_MICRO 0x1000+#define ADJ_NANO 0x2000+#define ADJ_TICK 0x4000+#define ADJ_OFFSET_SINGLESHOT 0x8001+#define ADJ_OFFSET_SS_READ 0xa001++#define MOD_OFFSET ADJ_OFFSET+#define MOD_FREQUENCY ADJ_FREQUENCY+#define MOD_MAXERROR ADJ_MAXERROR+#define MOD_ESTERROR ADJ_ESTERROR+#define MOD_STATUS ADJ_STATUS+#define MOD_TIMECONST ADJ_TIMECONST+#define MOD_CLKB ADJ_TICK+#define MOD_CLKA ADJ_OFFSET_SINGLESHOT+#define MOD_TAI ADJ_TAI+#define MOD_MICRO ADJ_MICRO+#define MOD_NANO ADJ_NANO++#define STA_PLL 0x0001+#define STA_PPSFREQ 0x0002+#define STA_PPSTIME 0x0004+#define STA_FLL 0x0008++#define STA_INS 0x0010+#define STA_DEL 0x0020+#define STA_UNSYNC 0x0040+#define STA_FREQHOLD 0x0080++#define STA_PPSSIGNAL 0x0100+#define STA_PPSJITTER 0x0200+#define STA_PPSWANDER 0x0400+#define STA_PPSERROR 0x0800++#define STA_CLOCKERR 0x1000+#define STA_NANO 0x2000+#define STA_MODE 0x4000+#define STA_CLK 0x8000++#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \+ STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)++#define TIME_OK 0+#define TIME_INS 1+#define TIME_DEL 2+#define TIME_OOP 3+#define TIME_WAIT 4+#define TIME_ERROR 5+#define TIME_BAD TIME_ERROR++#define MAXTC 6++int adjtimex(struct timex *);+int clock_adjtime(clockid_t, struct timex *);++#if _REDIR_TIME64+__REDIR(adjtimex, __adjtimex_time64);+__REDIR(clock_adjtime, __clock_adjtime64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,34 @@+#ifndef _SYS_TTYDEFAULTS_H+#define _SYS_TTYDEFAULTS_H++#define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | IMAXBEL | IXON | IXANY)+#define TTYDEF_OFLAG (OPOST | ONLCR | XTABS)+#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL)+#define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL)+#define TTYDEF_SPEED (B9600)+#define CTRL(x) ((x)&037)+#define CEOF CTRL('d')++#define CEOL '\0'+#define CSTATUS '\0'++#define CERASE 0177+#define CINTR CTRL('c')+#define CKILL CTRL('u')+#define CMIN 1+#define CQUIT 034+#define CSUSP CTRL('z')+#define CTIME 0+#define CDSUSP CTRL('y')+#define CSTART CTRL('q')+#define CSTOP CTRL('s')+#define CLNEXT CTRL('v')+#define CDISCARD CTRL('o')+#define CWERASE CTRL('w')+#define CREPRINT CTRL('r')+#define CEOT CEOF+#define CBRK CEOL+#define CRPRNT CREPRINT+#define CFLUSH CDISCARD++#endif
@@ -0,0 +1,85 @@+#ifndef _SYS_TYPES_H+#define _SYS_TYPES_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_ino_t+#define __NEED_dev_t+#define __NEED_uid_t+#define __NEED_gid_t+#define __NEED_mode_t+#define __NEED_nlink_t+#define __NEED_off_t+#define __NEED_pid_t+#define __NEED_size_t+#define __NEED_ssize_t+#define __NEED_time_t+#define __NEED_timer_t+#define __NEED_clockid_t++#define __NEED_blkcnt_t+#define __NEED_fsblkcnt_t+#define __NEED_fsfilcnt_t++#define __NEED_id_t+#define __NEED_key_t+#define __NEED_clock_t+#define __NEED_suseconds_t+#define __NEED_blksize_t++#define __NEED_pthread_t+#define __NEED_pthread_attr_t+#define __NEED_pthread_mutexattr_t+#define __NEED_pthread_condattr_t+#define __NEED_pthread_rwlockattr_t+#define __NEED_pthread_barrierattr_t+#define __NEED_pthread_mutex_t+#define __NEED_pthread_cond_t+#define __NEED_pthread_rwlock_t+#define __NEED_pthread_barrier_t+#define __NEED_pthread_spinlock_t+#define __NEED_pthread_key_t+#define __NEED_pthread_once_t+#define __NEED_useconds_t++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_int8_t+#define __NEED_int16_t+#define __NEED_int32_t+#define __NEED_int64_t+#define __NEED_u_int64_t+#define __NEED_register_t+#endif++#include <bits/alltypes.h>++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+typedef unsigned char u_int8_t;+typedef unsigned short u_int16_t;+typedef unsigned u_int32_t;+typedef char *caddr_t;+typedef unsigned char u_char;+typedef unsigned short u_short, ushort;+typedef unsigned u_int, uint;+typedef unsigned long u_long, ulong;+typedef long long quad_t;+typedef unsigned long long u_quad_t;+#include <endian.h>+#include <sys/select.h>+#endif++#if defined(_LARGEFILE64_SOURCE)+#define blkcnt64_t blkcnt_t+#define fsblkcnt64_t fsblkcnt_t+#define fsfilcnt64_t fsfilcnt_t+#define ino64_t ino_t+#define off64_t off_t+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,1 @@+#include <ucontext.h>
@@ -0,0 +1,55 @@+#ifndef _SYS_UIO_H+#define _SYS_UIO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_ssize_t+#define __NEED_struct_iovec++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_off_t+#endif++#ifdef _GNU_SOURCE+#define __NEED_pid_t+#endif++#include <bits/alltypes.h>++#define UIO_MAXIOV 1024++ssize_t readv (int, const struct iovec *, int);+ssize_t writev (int, const struct iovec *, int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+ssize_t preadv (int, const struct iovec *, int, off_t);+ssize_t pwritev (int, const struct iovec *, int, off_t);+#if defined(_LARGEFILE64_SOURCE)+#define preadv64 preadv+#define pwritev64 pwritev+#define off64_t off_t+#endif+#endif++#ifdef _GNU_SOURCE+ssize_t process_vm_writev(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long);+ssize_t process_vm_readv(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long);+ssize_t preadv2 (int, const struct iovec *, int, off_t, int);+ssize_t pwritev2 (int, const struct iovec *, int, off_t, int);+#define RWF_HIPRI 0x00000001+#define RWF_DSYNC 0x00000002+#define RWF_SYNC 0x00000004+#define RWF_NOWAIT 0x00000008+#define RWF_APPEND 0x00000010+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,31 @@+#ifndef _SYS_UN_H+#define _SYS_UN_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_sa_family_t+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_size_t+#endif++#include <bits/alltypes.h>++struct sockaddr_un {+ sa_family_t sun_family;+ char sun_path[108];+};++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+size_t strlen(const char *);+#define SUN_LEN(s) (2+strlen((s)->sun_path))+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,16 @@+#ifndef _SYS_USER_H+#define _SYS_USER_H+#ifdef __cplusplus+extern "C" {+#endif++#include <limits.h>+#include <stdint.h>+#include <unistd.h>++#include <bits/user.h>++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,29 @@+#ifndef _SYS_UTSNAME_H+#define _SYS_UTSNAME_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++struct utsname {+ char sysname[65];+ char nodename[65];+ char release[65];+ char version[65];+ char machine[65];+#ifdef _GNU_SOURCE+ char domainname[65];+#else+ char __domainname[65];+#endif+};++int uname (struct utsname *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,1 @@+#include <sys/statfs.h>
@@ -0,0 +1,1 @@+#include <bits/vt.h>
@@ -0,0 +1,67 @@+#ifndef _SYS_WAIT_H+#define _SYS_WAIT_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_pid_t+#define __NEED_id_t+#include <bits/alltypes.h>++typedef enum {+ P_ALL = 0,+ P_PID = 1,+ P_PGID = 2,+ P_PIDFD = 3+} idtype_t;++pid_t wait (int *);+pid_t waitpid (pid_t, int *, int );++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+#include <signal.h>+int waitid (idtype_t, id_t, siginfo_t *, int);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#include <sys/resource.h>+pid_t wait3 (int *, int, struct rusage *);+pid_t wait4 (pid_t, int *, int, struct rusage *);+#endif++#define WNOHANG 1+#define WUNTRACED 2++#define WSTOPPED 2+#define WEXITED 4+#define WCONTINUED 8+#define WNOWAIT 0x1000000++#define __WNOTHREAD 0x20000000+#define __WALL 0x40000000+#define __WCLONE 0x80000000++#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)+#define WTERMSIG(s) ((s) & 0x7f)+#define WSTOPSIG(s) WEXITSTATUS(s)+#define WCOREDUMP(s) ((s) & 0x80)+#define WIFEXITED(s) (!WTERMSIG(s))+#define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001U)>>8) > 0x7f00)+#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu)+#define WIFCONTINUED(s) ((s) == 0xffff)++#if _REDIR_TIME64+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+__REDIR(wait3, __wait3_time64);+__REDIR(wait4, __wait4_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,32 @@+#ifndef _SYS_XATTR_H+#define _SYS_XATTR_H+#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_ssize_t+#define __NEED_size_t+#include <bits/alltypes.h>++#define XATTR_CREATE 1+#define XATTR_REPLACE 2++ssize_t getxattr(const char *, const char *, void *, size_t);+ssize_t lgetxattr(const char *, const char *, void *, size_t);+ssize_t fgetxattr(int, const char *, void *, size_t);+ssize_t listxattr(const char *, char *, size_t);+ssize_t llistxattr(const char *, char *, size_t);+ssize_t flistxattr(int, char *, size_t);+int setxattr(const char *, const char *, const void *, size_t, int);+int lsetxattr(const char *, const char *, const void *, size_t, int);+int fsetxattr(int, const char *, const void *, size_t, int);+int removexattr(const char *, const char *);+int lremovexattr(const char *, const char *);+int fremovexattr(int, const char *);++#define __UAPI_DEF_XATTR 0++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,1 @@+#include <sys/syscall.h>
@@ -0,0 +1,21 @@+#ifndef _SYSEXITS_H+#define _SYSEXITS_H+#define EX_OK 0+#define EX__BASE 64+#define EX_USAGE 64+#define EX_DATAERR 65+#define EX_NOINPUT 66+#define EX_NOUSER 67+#define EX_NOHOST 68+#define EX_UNAVAILABLE 69+#define EX_SOFTWARE 70+#define EX_OSERR 71+#define EX_OSFILE 72+#define EX_CANTCREAT 73+#define EX_IOERR 74+#define EX_TEMPFAIL 75+#define EX_PROTOCOL 76+#define EX_NOPERM 77+#define EX_CONFIG 78+#define EX__MAX 78+#endif
@@ -0,0 +1,100 @@+#ifndef _SYSLOG_H+#define _SYSLOG_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define LOG_EMERG 0+#define LOG_ALERT 1+#define LOG_CRIT 2+#define LOG_ERR 3+#define LOG_WARNING 4+#define LOG_NOTICE 5+#define LOG_INFO 6+#define LOG_DEBUG 7++#define LOG_PRIMASK 7+#define LOG_PRI(p) ((p)&LOG_PRIMASK)+#define LOG_MAKEPRI(f, p) (((f)<<3)|(p))++#define LOG_MASK(p) (1<<(p))+#define LOG_UPTO(p) ((1<<((p)+1))-1)++#define LOG_KERN (0<<3)+#define LOG_USER (1<<3)+#define LOG_MAIL (2<<3)+#define LOG_DAEMON (3<<3)+#define LOG_AUTH (4<<3)+#define LOG_SYSLOG (5<<3)+#define LOG_LPR (6<<3)+#define LOG_NEWS (7<<3)+#define LOG_UUCP (8<<3)+#define LOG_CRON (9<<3)+#define LOG_AUTHPRIV (10<<3)+#define LOG_FTP (11<<3)++#define LOG_LOCAL0 (16<<3)+#define LOG_LOCAL1 (17<<3)+#define LOG_LOCAL2 (18<<3)+#define LOG_LOCAL3 (19<<3)+#define LOG_LOCAL4 (20<<3)+#define LOG_LOCAL5 (21<<3)+#define LOG_LOCAL6 (22<<3)+#define LOG_LOCAL7 (23<<3)++#define LOG_NFACILITIES 24+#define LOG_FACMASK 0x3f8+#define LOG_FAC(p) (((p)&LOG_FACMASK)>>3)++#define LOG_PID 0x01+#define LOG_CONS 0x02+#define LOG_ODELAY 0x04+#define LOG_NDELAY 0x08+#define LOG_NOWAIT 0x10+#define LOG_PERROR 0x20++void closelog (void);+void openlog (const char *, int, int);+int setlogmask (int);+void syslog (int, const char *, ...);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define _PATH_LOG "/dev/log"+#define __NEED_va_list+#include <bits/alltypes.h>+void vsyslog (int, const char *, va_list);+#if defined(SYSLOG_NAMES)+#define INTERNAL_NOPRI 0x10+#define INTERNAL_MARK (LOG_NFACILITIES<<3)+typedef struct {+ char *c_name;+ int c_val;+} CODE;+#define prioritynames ((CODE *)(const CODE []){ \+ { "alert", LOG_ALERT }, { "crit", LOG_CRIT }, { "debug", LOG_DEBUG }, \+ { "emerg", LOG_EMERG }, { "err", LOG_ERR }, { "error", LOG_ERR }, \+ { "info", LOG_INFO }, { "none", INTERNAL_NOPRI }, \+ { "notice", LOG_NOTICE }, { "panic", LOG_EMERG }, \+ { "warn", LOG_WARNING }, { "warning", LOG_WARNING }, { 0, -1 } })+#define facilitynames ((CODE *)(const CODE []){ \+ { "auth", LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, \+ { "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FTP }, \+ { "kern", LOG_KERN }, { "lpr", LOG_LPR }, { "mail", LOG_MAIL }, \+ { "mark", INTERNAL_MARK }, { "news", LOG_NEWS }, \+ { "security", LOG_AUTH }, { "syslog", LOG_SYSLOG }, \+ { "user", LOG_USER }, { "uucp", LOG_UUCP }, \+ { "local0", LOG_LOCAL0 }, { "local1", LOG_LOCAL1 }, \+ { "local2", LOG_LOCAL2 }, { "local3", LOG_LOCAL3 }, \+ { "local4", LOG_LOCAL4 }, { "local5", LOG_LOCAL5 }, \+ { "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { 0, -1 } })+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,33 @@+#ifndef _TAR_H+#define _TAR_H++#define TSUID 04000+#define TSGID 02000+#define TSVTX 01000+#define TUREAD 00400+#define TUWRITE 00200+#define TUEXEC 00100+#define TGREAD 00040+#define TGWRITE 00020+#define TGEXEC 00010+#define TOREAD 00004+#define TOWRITE 00002+#define TOEXEC 00001++#define REGTYPE '0'+#define AREGTYPE '\0'+#define LNKTYPE '1'+#define SYMTYPE '2'+#define CHRTYPE '3'+#define BLKTYPE '4'+#define DIRTYPE '5'+#define FIFOTYPE '6'+#define CONTTYPE '7'++#define TMAGIC "ustar"+#define TMAGLEN 6++#define TVERSION "00"+#define TVERSLEN 2++#endif
@@ -0,0 +1,50 @@+#ifndef _TERMIOS_H+#define _TERMIOS_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_pid_t+#define __NEED_struct_winsize++#include <bits/alltypes.h>++typedef unsigned char cc_t;+typedef unsigned int speed_t;+typedef unsigned int tcflag_t;++#define NCCS 32++#include <bits/termios.h>++speed_t cfgetospeed (const struct termios *);+speed_t cfgetispeed (const struct termios *);+int cfsetospeed (struct termios *, speed_t);+int cfsetispeed (struct termios *, speed_t);++int tcgetattr (int, struct termios *);+int tcsetattr (int, int, const struct termios *);++int tcgetwinsize (int, struct winsize *);+int tcsetwinsize (int, const struct winsize *);++int tcsendbreak (int, int);+int tcdrain (int);+int tcflush (int, int);+int tcflow (int, int);++pid_t tcgetsid (int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+void cfmakeraw(struct termios *);+int cfsetspeed(struct termios *, speed_t);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,270 @@+#ifndef _TGMATH_H+#define _TGMATH_H++/*+the return types are only correct with gcc (__GNUC__)+otherwise they are long double or long double complex++the long double version of a function is never chosen when+sizeof(double) == sizeof(long double)+(but the return type is set correctly with gcc)+*/++#include <math.h>+#include <complex.h>++#define __IS_FP(x) (sizeof((x)+1ULL) == sizeof((x)+1.0f))+#define __IS_CX(x) (__IS_FP(x) && sizeof(x) == sizeof((x)+I))+#define __IS_REAL(x) (__IS_FP(x) && 2*sizeof(x) == sizeof((x)+I))++#define __FLT(x) (__IS_REAL(x) && sizeof(x) == sizeof(float))+#define __LDBL(x) (__IS_REAL(x) && sizeof(x) == sizeof(long double) && sizeof(long double) != sizeof(double))++#define __FLTCX(x) (__IS_CX(x) && sizeof(x) == sizeof(float complex))+#define __DBLCX(x) (__IS_CX(x) && sizeof(x) == sizeof(double complex))+#define __LDBLCX(x) (__IS_CX(x) && sizeof(x) == sizeof(long double complex) && sizeof(long double) != sizeof(double))++/* return type */++#ifdef __GNUC__+/*+the result must be casted to the right type+(otherwise the result type is determined by the conversion+rules applied to all the function return types so it is long+double or long double complex except for integral functions)++this cannot be done in c99, so the typeof gcc extension is+used and that the type of ?: depends on wether an operand is+a null pointer constant or not+(in c11 _Generic can be used)++the c arguments below must be integer constant expressions+so they can be in null pointer constants+(__IS_FP above was carefully chosen this way)+*/+/* if c then t else void */+#define __type1(c,t) __typeof__(*(0?(t*)0:(void*)!(c)))+/* if c then t1 else t2 */+#define __type2(c,t1,t2) __typeof__(*(0?(__type1(c,t1)*)0:(__type1(!(c),t2)*)0))+/* cast to double when x is integral, otherwise use typeof(x) */+#define __RETCAST(x) ( \+ __type2(__IS_FP(x), __typeof__(x), double))+/* 2 args case, should work for complex types (cpow) */+#define __RETCAST_2(x, y) ( \+ __type2(__IS_FP(x) && __IS_FP(y), \+ __typeof__((x)+(y)), \+ __typeof__((x)+(y)+1.0)))+/* 3 args case (fma only) */+#define __RETCAST_3(x, y, z) ( \+ __type2(__IS_FP(x) && __IS_FP(y) && __IS_FP(z), \+ __typeof__((x)+(y)+(z)), \+ __typeof__((x)+(y)+(z)+1.0)))+/* drop complex from the type of x */+/* TODO: wrong when sizeof(long double)==sizeof(double) */+#define __RETCAST_REAL(x) ( \+ __type2(__IS_FP(x) && sizeof((x)+I) == sizeof(float complex), float, \+ __type2(sizeof((x)+1.0+I) == sizeof(double complex), double, \+ long double)))+/* add complex to the type of x */+#define __RETCAST_CX(x) (__typeof__(__RETCAST(x)0+I))+#else+#define __RETCAST(x)+#define __RETCAST_2(x, y)+#define __RETCAST_3(x, y, z)+#define __RETCAST_REAL(x)+#define __RETCAST_CX(x)+#endif++/* function selection */++#define __tg_real_nocast(fun, x) ( \+ __FLT(x) ? fun ## f (x) : \+ __LDBL(x) ? fun ## l (x) : \+ fun(x) )++#define __tg_real(fun, x) (__RETCAST(x)__tg_real_nocast(fun, x))++#define __tg_real_2_1(fun, x, y) (__RETCAST(x)( \+ __FLT(x) ? fun ## f (x, y) : \+ __LDBL(x) ? fun ## l (x, y) : \+ fun(x, y) ))++#define __tg_real_2(fun, x, y) (__RETCAST_2(x, y)( \+ __FLT(x) && __FLT(y) ? fun ## f (x, y) : \+ __LDBL((x)+(y)) ? fun ## l (x, y) : \+ fun(x, y) ))++#define __tg_complex(fun, x) (__RETCAST_CX(x)( \+ __FLTCX((x)+I) && __IS_FP(x) ? fun ## f (x) : \+ __LDBLCX((x)+I) ? fun ## l (x) : \+ fun(x) ))++#define __tg_complex_retreal(fun, x) (__RETCAST_REAL(x)( \+ __FLTCX((x)+I) && __IS_FP(x) ? fun ## f (x) : \+ __LDBLCX((x)+I) ? fun ## l (x) : \+ fun(x) ))++#define __tg_real_complex(fun, x) (__RETCAST(x)( \+ __FLTCX(x) ? c ## fun ## f (x) : \+ __DBLCX(x) ? c ## fun (x) : \+ __LDBLCX(x) ? c ## fun ## l (x) : \+ __FLT(x) ? fun ## f (x) : \+ __LDBL(x) ? fun ## l (x) : \+ fun(x) ))++/* special cases */++#define __tg_real_remquo(x, y, z) (__RETCAST_2(x, y)( \+ __FLT(x) && __FLT(y) ? remquof(x, y, z) : \+ __LDBL((x)+(y)) ? remquol(x, y, z) : \+ remquo(x, y, z) ))++#define __tg_real_fma(x, y, z) (__RETCAST_3(x, y, z)( \+ __FLT(x) && __FLT(y) && __FLT(z) ? fmaf(x, y, z) : \+ __LDBL((x)+(y)+(z)) ? fmal(x, y, z) : \+ fma(x, y, z) ))++#define __tg_real_complex_pow(x, y) (__RETCAST_2(x, y)( \+ __FLTCX((x)+(y)) && __IS_FP(x) && __IS_FP(y) ? cpowf(x, y) : \+ __FLTCX((x)+(y)) ? cpow(x, y) : \+ __DBLCX((x)+(y)) ? cpow(x, y) : \+ __LDBLCX((x)+(y)) ? cpowl(x, y) : \+ __FLT(x) && __FLT(y) ? powf(x, y) : \+ __LDBL((x)+(y)) ? powl(x, y) : \+ pow(x, y) ))++#define __tg_real_complex_fabs(x) (__RETCAST_REAL(x)( \+ __FLTCX(x) ? cabsf(x) : \+ __DBLCX(x) ? cabs(x) : \+ __LDBLCX(x) ? cabsl(x) : \+ __FLT(x) ? fabsf(x) : \+ __LDBL(x) ? fabsl(x) : \+ fabs(x) ))++/* suppress any macros in math.h or complex.h */++#undef acos+#undef acosh+#undef asin+#undef asinh+#undef atan+#undef atan2+#undef atanh+#undef carg+#undef cbrt+#undef ceil+#undef cimag+#undef conj+#undef copysign+#undef cos+#undef cosh+#undef cproj+#undef creal+#undef erf+#undef erfc+#undef exp+#undef exp2+#undef expm1+#undef fabs+#undef fdim+#undef floor+#undef fma+#undef fmax+#undef fmin+#undef fmod+#undef frexp+#undef hypot+#undef ilogb+#undef ldexp+#undef lgamma+#undef llrint+#undef llround+#undef log+#undef log10+#undef log1p+#undef log2+#undef logb+#undef lrint+#undef lround+#undef nearbyint+#undef nextafter+#undef nexttoward+#undef pow+#undef remainder+#undef remquo+#undef rint+#undef round+#undef scalbln+#undef scalbn+#undef sin+#undef sinh+#undef sqrt+#undef tan+#undef tanh+#undef tgamma+#undef trunc++/* tg functions */++#define acos(x) __tg_real_complex(acos, (x))+#define acosh(x) __tg_real_complex(acosh, (x))+#define asin(x) __tg_real_complex(asin, (x))+#define asinh(x) __tg_real_complex(asinh, (x))+#define atan(x) __tg_real_complex(atan, (x))+#define atan2(x,y) __tg_real_2(atan2, (x), (y))+#define atanh(x) __tg_real_complex(atanh, (x))+#define carg(x) __tg_complex_retreal(carg, (x))+#define cbrt(x) __tg_real(cbrt, (x))+#define ceil(x) __tg_real(ceil, (x))+#define cimag(x) __tg_complex_retreal(cimag, (x))+#define conj(x) __tg_complex(conj, (x))+#define copysign(x,y) __tg_real_2(copysign, (x), (y))+#define cos(x) __tg_real_complex(cos, (x))+#define cosh(x) __tg_real_complex(cosh, (x))+#define cproj(x) __tg_complex(cproj, (x))+#define creal(x) __tg_complex_retreal(creal, (x))+#define erf(x) __tg_real(erf, (x))+#define erfc(x) __tg_real(erfc, (x))+#define exp(x) __tg_real_complex(exp, (x))+#define exp2(x) __tg_real(exp2, (x))+#define expm1(x) __tg_real(expm1, (x))+#define fabs(x) __tg_real_complex_fabs(x)+#define fdim(x,y) __tg_real_2(fdim, (x), (y))+#define floor(x) __tg_real(floor, (x))+#define fma(x,y,z) __tg_real_fma((x), (y), (z))+#define fmax(x,y) __tg_real_2(fmax, (x), (y))+#define fmin(x,y) __tg_real_2(fmin, (x), (y))+#define fmod(x,y) __tg_real_2(fmod, (x), (y))+#define frexp(x,y) __tg_real_2_1(frexp, (x), (y))+#define hypot(x,y) __tg_real_2(hypot, (x), (y))+#define ilogb(x) __tg_real_nocast(ilogb, (x))+#define ldexp(x,y) __tg_real_2_1(ldexp, (x), (y))+#define lgamma(x) __tg_real(lgamma, (x))+#define llrint(x) __tg_real_nocast(llrint, (x))+#define llround(x) __tg_real_nocast(llround, (x))+#define log(x) __tg_real_complex(log, (x))+#define log10(x) __tg_real(log10, (x))+#define log1p(x) __tg_real(log1p, (x))+#define log2(x) __tg_real(log2, (x))+#define logb(x) __tg_real(logb, (x))+#define lrint(x) __tg_real_nocast(lrint, (x))+#define lround(x) __tg_real_nocast(lround, (x))+#define nearbyint(x) __tg_real(nearbyint, (x))+#define nextafter(x,y) __tg_real_2(nextafter, (x), (y))+#define nexttoward(x,y) __tg_real_2(nexttoward, (x), (y))+#define pow(x,y) __tg_real_complex_pow((x), (y))+#define remainder(x,y) __tg_real_2(remainder, (x), (y))+#define remquo(x,y,z) __tg_real_remquo((x), (y), (z))+#define rint(x) __tg_real(rint, (x))+#define round(x) __tg_real(round, (x))+#define scalbln(x,y) __tg_real_2_1(scalbln, (x), (y))+#define scalbn(x,y) __tg_real_2_1(scalbn, (x), (y))+#define sin(x) __tg_real_complex(sin, (x))+#define sinh(x) __tg_real_complex(sinh, (x))+#define sqrt(x) __tg_real_complex(sqrt, (x))+#define tan(x) __tg_real_complex(tan, (x))+#define tanh(x) __tg_real_complex(tanh, (x))+#define tgamma(x) __tg_real(tgamma, (x))+#define trunc(x) __tg_real(trunc, (x))++#endif
@@ -0,0 +1,93 @@+#ifndef _THREADS_H+#define _THREADS_H++#include <features.h>+#include <time.h>++#ifdef __cplusplus+extern "C" {+typedef unsigned long thrd_t;+#else+typedef struct __pthread *thrd_t;+#define thread_local _Thread_local+#endif++typedef int once_flag;+typedef unsigned tss_t;+typedef int (*thrd_start_t)(void *);+typedef void (*tss_dtor_t)(void *);++#define __NEED_cnd_t+#define __NEED_mtx_t++#include <bits/alltypes.h>++#define TSS_DTOR_ITERATIONS 4++enum {+ thrd_success = 0,+ thrd_busy = 1,+ thrd_error = 2,+ thrd_nomem = 3,+ thrd_timedout = 4,+};++enum {+ mtx_plain = 0,+ mtx_recursive = 1,+ mtx_timed = 2,+};++#define ONCE_FLAG_INIT 0++int thrd_create(thrd_t *, thrd_start_t, void *);+_Noreturn void thrd_exit(int);++int thrd_detach(thrd_t);+int thrd_join(thrd_t, int *);++int thrd_sleep(const struct timespec *, struct timespec *);+void thrd_yield(void);++thrd_t thrd_current(void);+int thrd_equal(thrd_t, thrd_t);+#ifndef __cplusplus+#define thrd_equal(A, B) ((A) == (B))+#endif++void call_once(once_flag *, void (*)(void));++int mtx_init(mtx_t *, int);+void mtx_destroy(mtx_t *);++int mtx_lock(mtx_t *);+int mtx_timedlock(mtx_t *__restrict, const struct timespec *__restrict);+int mtx_trylock(mtx_t *);+int mtx_unlock(mtx_t *);++int cnd_init(cnd_t *);+void cnd_destroy(cnd_t *);++int cnd_broadcast(cnd_t *);+int cnd_signal(cnd_t *);++int cnd_timedwait(cnd_t *__restrict, mtx_t *__restrict, const struct timespec *__restrict);+int cnd_wait(cnd_t *, mtx_t *);++int tss_create(tss_t *, tss_dtor_t);+void tss_delete(tss_t);++int tss_set(tss_t, void *);+void *tss_get(tss_t);++#if _REDIR_TIME64+__REDIR(thrd_sleep, __thrd_sleep_time64);+__REDIR(mtx_timedlock, __mtx_timedlock_time64);+__REDIR(cnd_timedwait, __cnd_timedwait_time64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,168 @@+#ifndef _TIME_H+#define _TIME_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif+++#define __NEED_size_t+#define __NEED_time_t+#define __NEED_clock_t+#define __NEED_struct_timespec++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+#define __NEED_clockid_t+#define __NEED_timer_t+#define __NEED_pid_t+#define __NEED_locale_t+#endif++#include <bits/alltypes.h>++#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+#define __tm_gmtoff tm_gmtoff+#define __tm_zone tm_zone+#endif++struct tm {+ int tm_sec;+ int tm_min;+ int tm_hour;+ int tm_mday;+ int tm_mon;+ int tm_year;+ int tm_wday;+ int tm_yday;+ int tm_isdst;+ long __tm_gmtoff;+ const char *__tm_zone;+};++clock_t clock (void);+time_t time (time_t *);+double difftime (time_t, time_t);+time_t mktime (struct tm *);+size_t strftime (char *__restrict, size_t, const char *__restrict, const struct tm *__restrict);+struct tm *gmtime (const time_t *);+struct tm *localtime (const time_t *);+char *asctime (const struct tm *);+char *ctime (const time_t *);+int timespec_get(struct timespec *, int);++#define CLOCKS_PER_SEC 1000000L++#define TIME_UTC 1++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++size_t strftime_l (char * __restrict, size_t, const char * __restrict, const struct tm * __restrict, locale_t);++struct tm *gmtime_r (const time_t *__restrict, struct tm *__restrict);+struct tm *localtime_r (const time_t *__restrict, struct tm *__restrict);+char *asctime_r (const struct tm *__restrict, char *__restrict);+char *ctime_r (const time_t *, char *);++void tzset (void);++struct itimerspec {+ struct timespec it_interval;+ struct timespec it_value;+};++#define CLOCK_REALTIME 0+#define CLOCK_MONOTONIC 1+#define CLOCK_PROCESS_CPUTIME_ID 2+#define CLOCK_THREAD_CPUTIME_ID 3+#define CLOCK_MONOTONIC_RAW 4+#define CLOCK_REALTIME_COARSE 5+#define CLOCK_MONOTONIC_COARSE 6+#define CLOCK_BOOTTIME 7+#define CLOCK_REALTIME_ALARM 8+#define CLOCK_BOOTTIME_ALARM 9+#define CLOCK_SGI_CYCLE 10+#define CLOCK_TAI 11++#define TIMER_ABSTIME 1++int nanosleep (const struct timespec *, struct timespec *);+int clock_getres (clockid_t, struct timespec *);+int clock_gettime (clockid_t, struct timespec *);+int clock_settime (clockid_t, const struct timespec *);+int clock_nanosleep (clockid_t, int, const struct timespec *, struct timespec *);+int clock_getcpuclockid (pid_t, clockid_t *);++struct sigevent;+int timer_create (clockid_t, struct sigevent *__restrict, timer_t *__restrict);+int timer_delete (timer_t);+int timer_settime (timer_t, int, const struct itimerspec *__restrict, struct itimerspec *__restrict);+int timer_gettime (timer_t, struct itimerspec *);+int timer_getoverrun (timer_t);++extern char *tzname[2];++#endif+++#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+char *strptime (const char *__restrict, const char *__restrict, struct tm *__restrict);+extern int daylight;+extern long timezone;+extern int getdate_err;+struct tm *getdate (const char *);+#endif+++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int stime(const time_t *);+time_t timegm(struct tm *);+#endif++#if _REDIR_TIME64+__REDIR(time, __time64);+__REDIR(difftime, __difftime64);+__REDIR(mktime, __mktime64);+__REDIR(gmtime, __gmtime64);+__REDIR(localtime, __localtime64);+__REDIR(ctime, __ctime64);+__REDIR(timespec_get, __timespec_get_time64);+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+__REDIR(gmtime_r, __gmtime64_r);+__REDIR(localtime_r, __localtime64_r);+__REDIR(ctime_r, __ctime64_r);+__REDIR(nanosleep, __nanosleep_time64);+__REDIR(clock_getres, __clock_getres_time64);+__REDIR(clock_gettime, __clock_gettime64);+__REDIR(clock_settime, __clock_settime64);+__REDIR(clock_nanosleep, __clock_nanosleep_time64);+__REDIR(timer_settime, __timer_settime64);+__REDIR(timer_gettime, __timer_gettime64);+#endif+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+__REDIR(stime, __stime64);+__REDIR(timegm, __timegm_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif+++#endif
@@ -0,0 +1,29 @@+#ifndef _UCHAR_H+#define _UCHAR_H++#ifdef __cplusplus+extern "C" {+#endif++#if __cplusplus < 201103L+typedef unsigned short char16_t;+typedef unsigned char32_t;+#endif++#define __NEED_mbstate_t+#define __NEED_size_t++#include <features.h>+#include <bits/alltypes.h>++size_t c16rtomb(char *__restrict, char16_t, mbstate_t *__restrict);+size_t mbrtoc16(char16_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict);++size_t c32rtomb(char *__restrict, char32_t, mbstate_t *__restrict);+size_t mbrtoc32(char32_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,25 @@+#ifndef _UCONTEXT_H+#define _UCONTEXT_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <signal.h>++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define NGREG (sizeof(gregset_t)/sizeof(greg_t))+#endif++struct __ucontext;++int getcontext(struct __ucontext *);+void makecontext(struct __ucontext *, void (*)(), int, ...);+int setcontext(const struct __ucontext *);+int swapcontext(struct __ucontext *, const struct __ucontext *);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,17 @@+#ifndef _ULIMIT_H+#define _ULIMIT_H++#ifdef __cplusplus+extern "C" {+#endif++#define UL_GETFSIZE 1+#define UL_SETFSIZE 2++long ulimit (int, ...);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,479 @@+#ifndef _UNISTD_H+#define _UNISTD_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define STDIN_FILENO 0+#define STDOUT_FILENO 1+#define STDERR_FILENO 2++#define SEEK_SET 0+#define SEEK_CUR 1+#define SEEK_END 2+#define SEEK_DATA 3+#define SEEK_HOLE 4++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define __NEED_size_t+#define __NEED_ssize_t+#define __NEED_uid_t+#define __NEED_gid_t+#define __NEED_off_t+#define __NEED_pid_t+#define __NEED_intptr_t+#define __NEED_useconds_t++#include <bits/alltypes.h>++int pipe(int [2]);+int pipe2(int [2], int);+int close(int);+int posix_close(int, int);+int dup(int);+int dup2(int, int);+int dup3(int, int, int);+off_t lseek(int, off_t, int);+int fsync(int);+int fdatasync(int);++ssize_t read(int, void *, size_t);+ssize_t write(int, const void *, size_t);+ssize_t pread(int, void *, size_t, off_t);+ssize_t pwrite(int, const void *, size_t, off_t);++int chown(const char *, uid_t, gid_t);+int fchown(int, uid_t, gid_t);+int lchown(const char *, uid_t, gid_t);+int fchownat(int, const char *, uid_t, gid_t, int);++int link(const char *, const char *);+int linkat(int, const char *, int, const char *, int);+int symlink(const char *, const char *);+int symlinkat(const char *, int, const char *);+ssize_t readlink(const char *__restrict, char *__restrict, size_t);+ssize_t readlinkat(int, const char *__restrict, char *__restrict, size_t);+int unlink(const char *);+int unlinkat(int, const char *, int);+int rmdir(const char *);+int truncate(const char *, off_t);+int ftruncate(int, off_t);++#define F_OK 0+#define R_OK 4+#define W_OK 2+#define X_OK 1++int access(const char *, int);+int faccessat(int, const char *, int, int);++int chdir(const char *);+int fchdir(int);+char *getcwd(char *, size_t);++unsigned alarm(unsigned);+unsigned sleep(unsigned);+int pause(void);++pid_t fork(void);+pid_t _Fork(void);+int execve(const char *, char *const [], char *const []);+int execv(const char *, char *const []);+int execle(const char *, const char *, ...);+int execl(const char *, const char *, ...);+int execvp(const char *, char *const []);+int execlp(const char *, const char *, ...);+int fexecve(int, char *const [], char *const []);+_Noreturn void _exit(int);++pid_t getpid(void);+pid_t getppid(void);+pid_t getpgrp(void);+pid_t getpgid(pid_t);+int setpgid(pid_t, pid_t);+pid_t setsid(void);+pid_t getsid(pid_t);+char *ttyname(int);+int ttyname_r(int, char *, size_t);+int isatty(int);+pid_t tcgetpgrp(int);+int tcsetpgrp(int, pid_t);++uid_t getuid(void);+uid_t geteuid(void);+gid_t getgid(void);+gid_t getegid(void);+int getgroups(int, gid_t []);+int setuid(uid_t);+int seteuid(uid_t);+int setgid(gid_t);+int setegid(gid_t);++char *getlogin(void);+int getlogin_r(char *, size_t);+int gethostname(char *, size_t);+char *ctermid(char *);++int getopt(int, char * const [], const char *);+extern char *optarg;+extern int optind, opterr, optopt;++long pathconf(const char *, int);+long fpathconf(int, int);+long sysconf(int);+size_t confstr(int, char *, size_t);++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define F_ULOCK 0+#define F_LOCK 1+#define F_TLOCK 2+#define F_TEST 3+int setreuid(uid_t, uid_t);+int setregid(gid_t, gid_t);+int lockf(int, int, off_t);+long gethostid(void);+int nice(int);+void sync(void);+pid_t setpgrp(void);+char *crypt(const char *, const char *);+void encrypt(char *, int);+void swab(const void *__restrict, void *__restrict, ssize_t);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)+int usleep(unsigned);+unsigned ualarm(unsigned, unsigned);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define L_SET 0+#define L_INCR 1+#define L_XTND 2+int brk(void *);+void *sbrk(intptr_t);+pid_t vfork(void);+int vhangup(void);+int chroot(const char *);+int getpagesize(void);+int getdtablesize(void);+int sethostname(const char *, size_t);+int getdomainname(char *, size_t);+int setdomainname(const char *, size_t);+int setgroups(size_t, const gid_t *);+char *getpass(const char *);+int daemon(int, int);+void setusershell(void);+void endusershell(void);+char *getusershell(void);+int acct(const char *);+long syscall(long, ...);+int execvpe(const char *, char *const [], char *const []);+int issetugid(void);+int getentropy(void *, size_t);+extern int optreset;+#endif++#ifdef _GNU_SOURCE+extern char **environ;+int setresuid(uid_t, uid_t, uid_t);+int setresgid(gid_t, gid_t, gid_t);+int getresuid(uid_t *, uid_t *, uid_t *);+int getresgid(gid_t *, gid_t *, gid_t *);+char *get_current_dir_name(void);+int syncfs(int);+int euidaccess(const char *, int);+int eaccess(const char *, int);+ssize_t copy_file_range(int, off_t *, int, off_t *, size_t, unsigned);+pid_t gettid(void);+#endif++#if defined(_LARGEFILE64_SOURCE)+#define lseek64 lseek+#define pread64 pread+#define pwrite64 pwrite+#define truncate64 truncate+#define ftruncate64 ftruncate+#define lockf64 lockf+#define off64_t off_t+#endif++#define POSIX_CLOSE_RESTART 0++#define _XOPEN_VERSION 700+#define _XOPEN_UNIX 1+#define _XOPEN_ENH_I18N 1++#define _POSIX_VERSION 200809L+#define _POSIX2_VERSION _POSIX_VERSION++#define _POSIX_ADVISORY_INFO _POSIX_VERSION+#define _POSIX_CHOWN_RESTRICTED 1+#define _POSIX_IPV6 _POSIX_VERSION+#define _POSIX_JOB_CONTROL 1+#define _POSIX_MAPPED_FILES _POSIX_VERSION+#define _POSIX_MEMLOCK _POSIX_VERSION+#define _POSIX_MEMLOCK_RANGE _POSIX_VERSION+#define _POSIX_MEMORY_PROTECTION _POSIX_VERSION+#define _POSIX_MESSAGE_PASSING _POSIX_VERSION+#define _POSIX_FSYNC _POSIX_VERSION+#define _POSIX_NO_TRUNC 1+#define _POSIX_RAW_SOCKETS _POSIX_VERSION+#define _POSIX_REALTIME_SIGNALS _POSIX_VERSION+#define _POSIX_REGEXP 1+#define _POSIX_SAVED_IDS 1+#define _POSIX_SHELL 1+#define _POSIX_SPAWN _POSIX_VERSION+#define _POSIX_VDISABLE 0++#define _POSIX_THREADS _POSIX_VERSION+#define _POSIX_THREAD_PROCESS_SHARED _POSIX_VERSION+#define _POSIX_THREAD_SAFE_FUNCTIONS _POSIX_VERSION+#define _POSIX_THREAD_ATTR_STACKADDR _POSIX_VERSION+#define _POSIX_THREAD_ATTR_STACKSIZE _POSIX_VERSION+#define _POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_VERSION+#define _POSIX_THREAD_CPUTIME _POSIX_VERSION+#define _POSIX_TIMERS _POSIX_VERSION+#define _POSIX_TIMEOUTS _POSIX_VERSION+#define _POSIX_MONOTONIC_CLOCK _POSIX_VERSION+#define _POSIX_CPUTIME _POSIX_VERSION+#define _POSIX_CLOCK_SELECTION _POSIX_VERSION+#define _POSIX_BARRIERS _POSIX_VERSION+#define _POSIX_SPIN_LOCKS _POSIX_VERSION+#define _POSIX_READER_WRITER_LOCKS _POSIX_VERSION+#define _POSIX_ASYNCHRONOUS_IO _POSIX_VERSION+#define _POSIX_SEMAPHORES _POSIX_VERSION+#define _POSIX_SHARED_MEMORY_OBJECTS _POSIX_VERSION++#define _POSIX2_C_BIND _POSIX_VERSION++#include <bits/posix.h>++++#define _PC_LINK_MAX 0+#define _PC_MAX_CANON 1+#define _PC_MAX_INPUT 2+#define _PC_NAME_MAX 3+#define _PC_PATH_MAX 4+#define _PC_PIPE_BUF 5+#define _PC_CHOWN_RESTRICTED 6+#define _PC_NO_TRUNC 7+#define _PC_VDISABLE 8+#define _PC_SYNC_IO 9+#define _PC_ASYNC_IO 10+#define _PC_PRIO_IO 11+#define _PC_SOCK_MAXBUF 12+#define _PC_FILESIZEBITS 13+#define _PC_REC_INCR_XFER_SIZE 14+#define _PC_REC_MAX_XFER_SIZE 15+#define _PC_REC_MIN_XFER_SIZE 16+#define _PC_REC_XFER_ALIGN 17+#define _PC_ALLOC_SIZE_MIN 18+#define _PC_SYMLINK_MAX 19+#define _PC_2_SYMLINKS 20++#define _SC_ARG_MAX 0+#define _SC_CHILD_MAX 1+#define _SC_CLK_TCK 2+#define _SC_NGROUPS_MAX 3+#define _SC_OPEN_MAX 4+#define _SC_STREAM_MAX 5+#define _SC_TZNAME_MAX 6+#define _SC_JOB_CONTROL 7+#define _SC_SAVED_IDS 8+#define _SC_REALTIME_SIGNALS 9+#define _SC_PRIORITY_SCHEDULING 10+#define _SC_TIMERS 11+#define _SC_ASYNCHRONOUS_IO 12+#define _SC_PRIORITIZED_IO 13+#define _SC_SYNCHRONIZED_IO 14+#define _SC_FSYNC 15+#define _SC_MAPPED_FILES 16+#define _SC_MEMLOCK 17+#define _SC_MEMLOCK_RANGE 18+#define _SC_MEMORY_PROTECTION 19+#define _SC_MESSAGE_PASSING 20+#define _SC_SEMAPHORES 21+#define _SC_SHARED_MEMORY_OBJECTS 22+#define _SC_AIO_LISTIO_MAX 23+#define _SC_AIO_MAX 24+#define _SC_AIO_PRIO_DELTA_MAX 25+#define _SC_DELAYTIMER_MAX 26+#define _SC_MQ_OPEN_MAX 27+#define _SC_MQ_PRIO_MAX 28+#define _SC_VERSION 29+#define _SC_PAGE_SIZE 30+#define _SC_PAGESIZE 30 /* !! */+#define _SC_RTSIG_MAX 31+#define _SC_SEM_NSEMS_MAX 32+#define _SC_SEM_VALUE_MAX 33+#define _SC_SIGQUEUE_MAX 34+#define _SC_TIMER_MAX 35+#define _SC_BC_BASE_MAX 36+#define _SC_BC_DIM_MAX 37+#define _SC_BC_SCALE_MAX 38+#define _SC_BC_STRING_MAX 39+#define _SC_COLL_WEIGHTS_MAX 40+#define _SC_EXPR_NEST_MAX 42+#define _SC_LINE_MAX 43+#define _SC_RE_DUP_MAX 44+#define _SC_2_VERSION 46+#define _SC_2_C_BIND 47+#define _SC_2_C_DEV 48+#define _SC_2_FORT_DEV 49+#define _SC_2_FORT_RUN 50+#define _SC_2_SW_DEV 51+#define _SC_2_LOCALEDEF 52+#define _SC_UIO_MAXIOV 60 /* !! */+#define _SC_IOV_MAX 60+#define _SC_THREADS 67+#define _SC_THREAD_SAFE_FUNCTIONS 68+#define _SC_GETGR_R_SIZE_MAX 69+#define _SC_GETPW_R_SIZE_MAX 70+#define _SC_LOGIN_NAME_MAX 71+#define _SC_TTY_NAME_MAX 72+#define _SC_THREAD_DESTRUCTOR_ITERATIONS 73+#define _SC_THREAD_KEYS_MAX 74+#define _SC_THREAD_STACK_MIN 75+#define _SC_THREAD_THREADS_MAX 76+#define _SC_THREAD_ATTR_STACKADDR 77+#define _SC_THREAD_ATTR_STACKSIZE 78+#define _SC_THREAD_PRIORITY_SCHEDULING 79+#define _SC_THREAD_PRIO_INHERIT 80+#define _SC_THREAD_PRIO_PROTECT 81+#define _SC_THREAD_PROCESS_SHARED 82+#define _SC_NPROCESSORS_CONF 83+#define _SC_NPROCESSORS_ONLN 84+#define _SC_PHYS_PAGES 85+#define _SC_AVPHYS_PAGES 86+#define _SC_ATEXIT_MAX 87+#define _SC_PASS_MAX 88+#define _SC_XOPEN_VERSION 89+#define _SC_XOPEN_XCU_VERSION 90+#define _SC_XOPEN_UNIX 91+#define _SC_XOPEN_CRYPT 92+#define _SC_XOPEN_ENH_I18N 93+#define _SC_XOPEN_SHM 94+#define _SC_2_CHAR_TERM 95+#define _SC_2_UPE 97+#define _SC_XOPEN_XPG2 98+#define _SC_XOPEN_XPG3 99+#define _SC_XOPEN_XPG4 100+#define _SC_NZERO 109+#define _SC_XBS5_ILP32_OFF32 125+#define _SC_XBS5_ILP32_OFFBIG 126+#define _SC_XBS5_LP64_OFF64 127+#define _SC_XBS5_LPBIG_OFFBIG 128+#define _SC_XOPEN_LEGACY 129+#define _SC_XOPEN_REALTIME 130+#define _SC_XOPEN_REALTIME_THREADS 131+#define _SC_ADVISORY_INFO 132+#define _SC_BARRIERS 133+#define _SC_CLOCK_SELECTION 137+#define _SC_CPUTIME 138+#define _SC_THREAD_CPUTIME 139+#define _SC_MONOTONIC_CLOCK 149+#define _SC_READER_WRITER_LOCKS 153+#define _SC_SPIN_LOCKS 154+#define _SC_REGEXP 155+#define _SC_SHELL 157+#define _SC_SPAWN 159+#define _SC_SPORADIC_SERVER 160+#define _SC_THREAD_SPORADIC_SERVER 161+#define _SC_TIMEOUTS 164+#define _SC_TYPED_MEMORY_OBJECTS 165+#define _SC_2_PBS 168+#define _SC_2_PBS_ACCOUNTING 169+#define _SC_2_PBS_LOCATE 170+#define _SC_2_PBS_MESSAGE 171+#define _SC_2_PBS_TRACK 172+#define _SC_SYMLOOP_MAX 173+#define _SC_STREAMS 174+#define _SC_2_PBS_CHECKPOINT 175+#define _SC_V6_ILP32_OFF32 176+#define _SC_V6_ILP32_OFFBIG 177+#define _SC_V6_LP64_OFF64 178+#define _SC_V6_LPBIG_OFFBIG 179+#define _SC_HOST_NAME_MAX 180+#define _SC_TRACE 181+#define _SC_TRACE_EVENT_FILTER 182+#define _SC_TRACE_INHERIT 183+#define _SC_TRACE_LOG 184++#define _SC_IPV6 235+#define _SC_RAW_SOCKETS 236+#define _SC_V7_ILP32_OFF32 237+#define _SC_V7_ILP32_OFFBIG 238+#define _SC_V7_LP64_OFF64 239+#define _SC_V7_LPBIG_OFFBIG 240+#define _SC_SS_REPL_MAX 241+#define _SC_TRACE_EVENT_NAME_MAX 242+#define _SC_TRACE_NAME_MAX 243+#define _SC_TRACE_SYS_MAX 244+#define _SC_TRACE_USER_EVENT_MAX 245+#define _SC_XOPEN_STREAMS 246+#define _SC_THREAD_ROBUST_PRIO_INHERIT 247+#define _SC_THREAD_ROBUST_PRIO_PROTECT 248+#define _SC_MINSIGSTKSZ 249+#define _SC_SIGSTKSZ 250++#define _CS_PATH 0+#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 1+#define _CS_GNU_LIBC_VERSION 2+#define _CS_GNU_LIBPTHREAD_VERSION 3+#define _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS 4+#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS 5++#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 1116+#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 1117+#define _CS_POSIX_V6_ILP32_OFF32_LIBS 1118+#define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS 1119+#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 1120+#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 1121+#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 1122+#define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS 1123+#define _CS_POSIX_V6_LP64_OFF64_CFLAGS 1124+#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 1125+#define _CS_POSIX_V6_LP64_OFF64_LIBS 1126+#define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS 1127+#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 1128+#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 1129+#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 1130+#define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS 1131+#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS 1132+#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS 1133+#define _CS_POSIX_V7_ILP32_OFF32_LIBS 1134+#define _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS 1135+#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS 1136+#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS 1137+#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS 1138+#define _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS 1139+#define _CS_POSIX_V7_LP64_OFF64_CFLAGS 1140+#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS 1141+#define _CS_POSIX_V7_LP64_OFF64_LIBS 1142+#define _CS_POSIX_V7_LP64_OFF64_LINTFLAGS 1143+#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS 1144+#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS 1145+#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS 1146+#define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS 1147+#define _CS_V6_ENV 1148+#define _CS_V7_ENV 1149+#define _CS_POSIX_V7_THREADS_CFLAGS 1150+#define _CS_POSIX_V7_THREADS_LDFLAGS 1151++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,29 @@+#ifndef _UTIME_H+#define _UTIME_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_time_t++#include <bits/alltypes.h>++struct utimbuf {+ time_t actime;+ time_t modtime;+};++int utime (const char *, const struct utimbuf *);++#if _REDIR_TIME64+__REDIR(utime, __utime64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,52 @@+#ifndef _UTMP_H+#define _UTMP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <utmpx.h>++#define ACCOUNTING 9+#define UT_NAMESIZE 32+#define UT_HOSTSIZE 256+#define UT_LINESIZE 32++struct lastlog {+ time_t ll_time;+ char ll_line[UT_LINESIZE];+ char ll_host[UT_HOSTSIZE];+};++#define ut_time ut_tv.tv_sec+#define ut_name ut_user+#define ut_addr ut_addr_v6[0]+#define utmp utmpx+#define e_exit __e_exit+#define e_termination __e_termination++void endutent(void);+struct utmp *getutent(void);+struct utmp *getutid(const struct utmp *);+struct utmp *getutline(const struct utmp *);+struct utmp *pututline(const struct utmp *);+void setutent(void);++void updwtmp(const char *, const struct utmp *);+int utmpname(const char *);++int login_tty(int);++#define _PATH_UTMP "/dev/null/utmp"+#define _PATH_WTMP "/dev/null/wtmp"++#define UTMP_FILE _PATH_UTMP+#define WTMP_FILE _PATH_WTMP+#define UTMP_FILENAME _PATH_UTMP+#define WTMP_FILENAME _PATH_WTMP++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,67 @@+#ifndef _UTMPX_H+#define _UTMPX_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_pid_t+#define __NEED_time_t+#define __NEED_suseconds_t+#define __NEED_struct_timeval++#include <bits/alltypes.h>++struct utmpx {+ short ut_type;+ short __ut_pad1;+ pid_t ut_pid;+ char ut_line[32];+ char ut_id[4];+ char ut_user[32];+ char ut_host[256];+ struct {+ short __e_termination;+ short __e_exit;+ } ut_exit;+#if __BYTE_ORDER == 1234+ int ut_session, __ut_pad2;+#else+ int __ut_pad2, ut_session;+#endif+ struct timeval ut_tv;+ unsigned ut_addr_v6[4];+ char __unused[20];+};++void endutxent(void);+struct utmpx *getutxent(void);+struct utmpx *getutxid(const struct utmpx *);+struct utmpx *getutxline(const struct utmpx *);+struct utmpx *pututxline(const struct utmpx *);+void setutxent(void);++#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+#define e_exit __e_exit+#define e_termination __e_termination+void updwtmpx(const char *, const struct utmpx *);+int utmpxname(const char *);+#endif++#define EMPTY 0+#define RUN_LVL 1+#define BOOT_TIME 2+#define NEW_TIME 3+#define OLD_TIME 4+#define INIT_PROCESS 5+#define LOGIN_PROCESS 6+#define USER_PROCESS 7+#define DEAD_PROCESS 8++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,39 @@+#ifndef _VALUES_H+#define _VALUES_H++#include <limits.h>++#define CHARBITS (sizeof(char) * 8)+#define SHORTBITS (sizeof(short) * 8)+#define INTBITS (sizeof(int) * 8)+#define LONGBITS (sizeof(long) * 8)+#define PTRBITS (sizeof(char *) * 8)+#define DOUBLEBITS (sizeof(double) * 8)+#define FLOATBITS (sizeof(float) * 8)++#define MINSHORT SHRT_MIN+#define MININT INT_MIN+#define MINLONG LONG_MIN++#define MAXSHORT SHRT_MAX+#define MAXINT INT_MAX+#define MAXLONG LONG_MAX++#define HIBITS MINSHORT+#define HIBITL MINLONG++#include <float.h>++#define MAXDOUBLE DBL_MAX+#undef MAXFLOAT+#define MAXFLOAT FLT_MAX+#define MINDOUBLE DBL_MIN+#define MINFLOAT FLT_MIN+#define DMINEXP DBL_MIN_EXP+#define FMINEXP FLT_MIN_EXP+#define DMAXEXP DBL_MAX_EXP+#define FMAXEXP FLT_MAX_EXP++#define BITSPERBYTE CHAR_BIT++#endif
@@ -0,0 +1,2 @@+#warning redirecting incorrect #include <wait.h> to <sys/wait.h>+#include <sys/wait.h>
@@ -0,0 +1,207 @@+#ifndef _WCHAR_H+#define _WCHAR_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_FILE+#define __NEED___isoc_va_list+#define __NEED_size_t+#define __NEED_wchar_t+#define __NEED_wint_t+#define __NEED_mbstate_t++#if __STDC_VERSION__ < 201112L+#define __NEED_struct__IO_FILE+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_locale_t+#define __NEED_va_list+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_wctype_t+#endif++#include <bits/alltypes.h>++#if L'\0'-1 > 0+#define WCHAR_MAX (0xffffffffu+L'\0')+#define WCHAR_MIN (0+L'\0')+#else+#define WCHAR_MAX (0x7fffffff+L'\0')+#define WCHAR_MIN (-1-0x7fffffff+L'\0')+#endif++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#undef WEOF+#define WEOF 0xffffffffU++wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict);+wchar_t *wcsncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t);++wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict);+wchar_t *wcsncat (wchar_t *__restrict, const wchar_t *__restrict, size_t);++int wcscmp (const wchar_t *, const wchar_t *);+int wcsncmp (const wchar_t *, const wchar_t *, size_t);++int wcscoll(const wchar_t *, const wchar_t *);+size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, size_t);++wchar_t *wcschr (const wchar_t *, wchar_t);+wchar_t *wcsrchr (const wchar_t *, wchar_t);++size_t wcscspn (const wchar_t *, const wchar_t *);+size_t wcsspn (const wchar_t *, const wchar_t *);+wchar_t *wcspbrk (const wchar_t *, const wchar_t *);++wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, wchar_t **__restrict);++size_t wcslen (const wchar_t *);++wchar_t *wcsstr (const wchar_t *__restrict, const wchar_t *__restrict);+wchar_t *wcswcs (const wchar_t *, const wchar_t *);++wchar_t *wmemchr (const wchar_t *, wchar_t, size_t);+int wmemcmp (const wchar_t *, const wchar_t *, size_t);+wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, size_t);+wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t);+wchar_t *wmemset (wchar_t *, wchar_t, size_t);++wint_t btowc (int);+int wctob (wint_t);++int mbsinit (const mbstate_t *);+size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict);+size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict);++size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict);++size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, mbstate_t *__restrict);+size_t wcsrtombs (char *__restrict, const wchar_t **__restrict, size_t, mbstate_t *__restrict);++float wcstof (const wchar_t *__restrict, wchar_t **__restrict);+double wcstod (const wchar_t *__restrict, wchar_t **__restrict);+long double wcstold (const wchar_t *__restrict, wchar_t **__restrict);++long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int);+unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict, int);++long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict, int);+unsigned long long wcstoull (const wchar_t *__restrict, wchar_t **__restrict, int);++++int fwide (FILE *, int);+++int wprintf (const wchar_t *__restrict, ...);+int fwprintf (FILE *__restrict, const wchar_t *__restrict, ...);+int swprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, ...);++int vwprintf (const wchar_t *__restrict, __isoc_va_list);+int vfwprintf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list);+int vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, __isoc_va_list);++int wscanf (const wchar_t *__restrict, ...);+int fwscanf (FILE *__restrict, const wchar_t *__restrict, ...);+int swscanf (const wchar_t *__restrict, const wchar_t *__restrict, ...);++int vwscanf (const wchar_t *__restrict, __isoc_va_list);+int vfwscanf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list);+int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, __isoc_va_list);++wint_t fgetwc (FILE *);+wint_t getwc (FILE *);+wint_t getwchar (void);++wint_t fputwc (wchar_t, FILE *);+wint_t putwc (wchar_t, FILE *);+wint_t putwchar (wchar_t);++wchar_t *fgetws (wchar_t *__restrict, int, FILE *__restrict);+int fputws (const wchar_t *__restrict, FILE *__restrict);++wint_t ungetwc (wint_t, FILE *);++struct tm;+size_t wcsftime (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict);++#undef iswdigit++#if defined(_GNU_SOURCE)+wint_t fgetwc_unlocked (FILE *);+wint_t getwc_unlocked (FILE *);+wint_t getwchar_unlocked (void);+wint_t fputwc_unlocked (wchar_t, FILE *);+wint_t putwc_unlocked (wchar_t, FILE *);+wint_t putwchar_unlocked (wchar_t);+wchar_t *fgetws_unlocked (wchar_t *__restrict, int, FILE *__restrict);+int fputws_unlocked (const wchar_t *__restrict, FILE *__restrict);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict, locale_t);+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+FILE *open_wmemstream(wchar_t **, size_t *);+size_t mbsnrtowcs(wchar_t *__restrict, const char **__restrict, size_t, size_t, mbstate_t *__restrict);+size_t wcsnrtombs(char *__restrict, const wchar_t **__restrict, size_t, size_t, mbstate_t *__restrict);+wchar_t *wcsdup(const wchar_t *);+size_t wcsnlen (const wchar_t *, size_t);+wchar_t *wcpcpy (wchar_t *__restrict, const wchar_t *__restrict);+wchar_t *wcpncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t);+int wcscasecmp(const wchar_t *, const wchar_t *);+int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t);+int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);+int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t);+int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);+size_t wcsxfrm_l(wchar_t *__restrict, const wchar_t *__restrict, size_t, locale_t);+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int wcwidth (wchar_t);+int wcswidth (const wchar_t *, size_t);+int iswalnum(wint_t);+int iswalpha(wint_t);+int iswblank(wint_t);+int iswcntrl(wint_t);+int iswdigit(wint_t);+int iswgraph(wint_t);+int iswlower(wint_t);+int iswprint(wint_t);+int iswpunct(wint_t);+int iswspace(wint_t);+int iswupper(wint_t);+int iswxdigit(wint_t);+int iswctype(wint_t, wctype_t);+wint_t towlower(wint_t);+wint_t towupper(wint_t);+wctype_t wctype(const char *);++#ifndef __cplusplus+#undef iswdigit+#define iswdigit(a) (0 ? iswdigit(a) : ((unsigned)(a)-'0') < 10)+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,79 @@+#ifndef _WCTYPE_H+#define _WCTYPE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_wint_t+#define __NEED_wctype_t++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_locale_t+#endif++#include <bits/alltypes.h>++typedef const int * wctrans_t;++#undef WEOF+#define WEOF 0xffffffffU++#undef iswdigit++int iswalnum(wint_t);+int iswalpha(wint_t);+int iswblank(wint_t);+int iswcntrl(wint_t);+int iswdigit(wint_t);+int iswgraph(wint_t);+int iswlower(wint_t);+int iswprint(wint_t);+int iswpunct(wint_t);+int iswspace(wint_t);+int iswupper(wint_t);+int iswxdigit(wint_t);+int iswctype(wint_t, wctype_t);+wint_t towctrans(wint_t, wctrans_t);+wint_t towlower(wint_t);+wint_t towupper(wint_t);+wctrans_t wctrans(const char *);+wctype_t wctype(const char *);++#ifndef __cplusplus+#undef iswdigit+#define iswdigit(a) (0 ? iswdigit(a) : ((unsigned)(a)-'0') < 10)+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++int iswalnum_l(wint_t, locale_t);+int iswalpha_l(wint_t, locale_t);+int iswblank_l(wint_t, locale_t);+int iswcntrl_l(wint_t, locale_t);+int iswdigit_l(wint_t, locale_t);+int iswgraph_l(wint_t, locale_t);+int iswlower_l(wint_t, locale_t);+int iswprint_l(wint_t, locale_t);+int iswpunct_l(wint_t, locale_t);+int iswspace_l(wint_t, locale_t);+int iswupper_l(wint_t, locale_t);+int iswxdigit_l(wint_t, locale_t);+int iswctype_l(wint_t, wctype_t, locale_t);+wint_t towlower_l(wint_t, locale_t);+wint_t towupper_l(wint_t, locale_t);+wint_t towctrans_l(wint_t, wctrans_t, locale_t);+wctrans_t wctrans_l(const char *, locale_t);+wctype_t wctype_l(const char *, locale_t);++#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,41 @@+#ifndef _WORDEXP_H+#define _WORDEXP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t++#include <bits/alltypes.h>++#define WRDE_DOOFFS 1+#define WRDE_APPEND 2+#define WRDE_NOCMD 4+#define WRDE_REUSE 8+#define WRDE_SHOWERR 16+#define WRDE_UNDEF 32++typedef struct {+ size_t we_wordc;+ char **we_wordv;+ size_t we_offs;+} wordexp_t;++#define WRDE_NOSYS -1+#define WRDE_NOSPACE 1+#define WRDE_BADCHAR 2+#define WRDE_BADVAL 3+#define WRDE_CMDSUB 4+#define WRDE_SYNTAX 5++int wordexp (const char *__restrict, wordexp_t *__restrict, int);+void wordfree (wordexp_t *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,73 @@+#ifndef _AIO_H+#define _AIO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <signal.h>+#include <time.h>++#define __NEED_ssize_t+#define __NEED_off_t++#include <bits/alltypes.h>++struct aiocb {+ int aio_fildes, aio_lio_opcode, aio_reqprio;+ volatile void *aio_buf;+ size_t aio_nbytes;+ struct sigevent aio_sigevent;+ void *__td;+ int __lock[2];+ volatile int __err;+ ssize_t __ret;+ off_t aio_offset;+ void *__next, *__prev;+ char __dummy4[32-2*sizeof(void *)];+};++#define AIO_CANCELED 0+#define AIO_NOTCANCELED 1+#define AIO_ALLDONE 2++#define LIO_READ 0+#define LIO_WRITE 1+#define LIO_NOP 2++#define LIO_WAIT 0+#define LIO_NOWAIT 1++int aio_read(struct aiocb *);+int aio_write(struct aiocb *);+int aio_error(const struct aiocb *);+ssize_t aio_return(struct aiocb *);+int aio_cancel(int, struct aiocb *);+int aio_suspend(const struct aiocb *const [], int, const struct timespec *);+int aio_fsync(int, struct aiocb *);++int lio_listio(int, struct aiocb *__restrict const *__restrict, int, struct sigevent *__restrict);++#if defined(_LARGEFILE64_SOURCE)+#define aiocb64 aiocb+#define aio_read64 aio_read+#define aio_write64 aio_write+#define aio_error64 aio_error+#define aio_return64 aio_return+#define aio_cancel64 aio_cancel+#define aio_suspend64 aio_suspend+#define aio_fsync64 aio_fsync+#define lio_listio64 lio_listio+#define off64_t off_t+#endif++#if _REDIR_TIME64+__REDIR(aio_suspend, __aio_suspend_time64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,19 @@+#ifndef _ALLOCA_H+#define _ALLOCA_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_size_t+#include <bits/alltypes.h>++void *alloca(size_t);++#define alloca __builtin_alloca++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,25 @@+#ifndef _AR_H+#define _AR_H++#ifdef __cplusplus+extern "C" {+#endif++#define ARMAG "!<arch>\n"+#define SARMAG 8+#define ARFMAG "`\n"++struct ar_hdr {+ char ar_name[16];+ char ar_date[12];+ char ar_uid[6], ar_gid[6];+ char ar_mode[8];+ char ar_size[10];+ char ar_fmag[2];+};++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,35 @@+#ifndef _ARPA_FTP_H+#define _ARPA_FTP_H+#define PRELIM 1+#define COMPLETE 2+#define CONTINUE 3+#define TRANSIENT 4+#define ERROR 5+#define TYPE_A 1+#define TYPE_E 2+#define TYPE_I 3+#define TYPE_L 4+#define FORM_N 1+#define FORM_T 2+#define FORM_C 3+#define STRU_F 1+#define STRU_R 2+#define STRU_P 3+#define MODE_S 1+#define MODE_B 2+#define MODE_C 3+#define REC_ESC '\377'+#define REC_EOR '\001'+#define REC_EOF '\002'+#define BLK_EOR 0x80+#define BLK_EOF 0x40+#define BLK_ERRORS 0x20+#define BLK_RESTART 0x10+#define BLK_BYTECOUNT 2+#ifdef FTP_NAMES+char *modenames[] = {"0", "Stream", "Block", "Compressed" };+char *strunames[] = {"0", "File", "Record", "Page" };+char *typenames[] = {"0", "ASCII", "EBCDIC", "Image", "Local" };+char *formnames[] = {"0", "Nonprint", "Telnet", "Carriage-control" };+#endif+#endif
@@ -0,0 +1,31 @@+#ifndef _ARPA_INET_H+#define _ARPA_INET_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <netinet/in.h>++uint32_t htonl(uint32_t);+uint16_t htons(uint16_t);+uint32_t ntohl(uint32_t);+uint16_t ntohs(uint16_t);++in_addr_t inet_addr (const char *);+in_addr_t inet_network (const char *);+char *inet_ntoa (struct in_addr);+int inet_pton (int, const char *__restrict, void *__restrict);+const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t);++int inet_aton (const char *, struct in_addr *);+struct in_addr inet_makeaddr(in_addr_t, in_addr_t);+in_addr_t inet_lnaof(struct in_addr);+in_addr_t inet_netof(struct in_addr);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,526 @@+#ifndef _ARPA_NAMESER_H+#define _ARPA_NAMESER_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stddef.h>+#include <stdint.h>++#define __NAMESER 19991006+#define NS_PACKETSZ 512+#define NS_MAXDNAME 1025+#define NS_MAXMSG 65535+#define NS_MAXCDNAME 255+#define NS_MAXLABEL 63+#define NS_HFIXEDSZ 12+#define NS_QFIXEDSZ 4+#define NS_RRFIXEDSZ 10+#define NS_INT32SZ 4+#define NS_INT16SZ 2+#define NS_INT8SZ 1+#define NS_INADDRSZ 4+#define NS_IN6ADDRSZ 16+#define NS_CMPRSFLGS 0xc0+#define NS_DEFAULTPORT 53++typedef enum __ns_sect {+ ns_s_qd = 0,+ ns_s_zn = 0,+ ns_s_an = 1,+ ns_s_pr = 1,+ ns_s_ns = 2,+ ns_s_ud = 2,+ ns_s_ar = 3,+ ns_s_max = 4+} ns_sect;++typedef struct __ns_msg {+ const unsigned char *_msg, *_eom;+ uint16_t _id, _flags, _counts[ns_s_max];+ const unsigned char *_sections[ns_s_max];+ ns_sect _sect;+ int _rrnum;+ const unsigned char *_msg_ptr;+} ns_msg;++struct _ns_flagdata { int mask, shift; };+extern const struct _ns_flagdata _ns_flagdata[];++#define ns_msg_id(handle) ((handle)._id + 0)+#define ns_msg_base(handle) ((handle)._msg + 0)+#define ns_msg_end(handle) ((handle)._eom + 0)+#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)+#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)+#define ns_msg_getflag(handle, flag) \+ (((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift)++typedef struct __ns_rr {+ char name[NS_MAXDNAME];+ uint16_t type;+ uint16_t rr_class;+ uint32_t ttl;+ uint16_t rdlength;+ const unsigned char *rdata;+} ns_rr;++#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")+#define ns_rr_type(rr) ((ns_type)((rr).type + 0))+#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))+#define ns_rr_ttl(rr) ((rr).ttl + 0)+#define ns_rr_rdlen(rr) ((rr).rdlength + 0)+#define ns_rr_rdata(rr) ((rr).rdata + 0)++typedef enum __ns_flag {+ ns_f_qr,+ ns_f_opcode,+ ns_f_aa,+ ns_f_tc,+ ns_f_rd,+ ns_f_ra,+ ns_f_z,+ ns_f_ad,+ ns_f_cd,+ ns_f_rcode,+ ns_f_max+} ns_flag;++typedef enum __ns_opcode {+ ns_o_query = 0,+ ns_o_iquery = 1,+ ns_o_status = 2,+ ns_o_notify = 4,+ ns_o_update = 5,+ ns_o_max = 6+} ns_opcode;++typedef enum __ns_rcode {+ ns_r_noerror = 0,+ ns_r_formerr = 1,+ ns_r_servfail = 2,+ ns_r_nxdomain = 3,+ ns_r_notimpl = 4,+ ns_r_refused = 5,+ ns_r_yxdomain = 6,+ ns_r_yxrrset = 7,+ ns_r_nxrrset = 8,+ ns_r_notauth = 9,+ ns_r_notzone = 10,+ ns_r_max = 11,+ ns_r_badvers = 16,+ ns_r_badsig = 16,+ ns_r_badkey = 17,+ ns_r_badtime = 18+} ns_rcode;++typedef enum __ns_update_operation {+ ns_uop_delete = 0,+ ns_uop_add = 1,+ ns_uop_max = 2+} ns_update_operation;++struct ns_tsig_key {+ char name[NS_MAXDNAME], alg[NS_MAXDNAME];+ unsigned char *data;+ int len;+};+typedef struct ns_tsig_key ns_tsig_key;++struct ns_tcp_tsig_state {+ int counter;+ struct dst_key *key;+ void *ctx;+ unsigned char sig[NS_PACKETSZ];+ int siglen;+};+typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;++#define NS_TSIG_FUDGE 300+#define NS_TSIG_TCP_COUNT 100+#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"++#define NS_TSIG_ERROR_NO_TSIG -10+#define NS_TSIG_ERROR_NO_SPACE -11+#define NS_TSIG_ERROR_FORMERR -12++typedef enum __ns_type {+ ns_t_invalid = 0,+ ns_t_a = 1,+ ns_t_ns = 2,+ ns_t_md = 3,+ ns_t_mf = 4,+ ns_t_cname = 5,+ ns_t_soa = 6,+ ns_t_mb = 7,+ ns_t_mg = 8,+ ns_t_mr = 9,+ ns_t_null = 10,+ ns_t_wks = 11,+ ns_t_ptr = 12,+ ns_t_hinfo = 13,+ ns_t_minfo = 14,+ ns_t_mx = 15,+ ns_t_txt = 16,+ ns_t_rp = 17,+ ns_t_afsdb = 18,+ ns_t_x25 = 19,+ ns_t_isdn = 20,+ ns_t_rt = 21,+ ns_t_nsap = 22,+ ns_t_nsap_ptr = 23,+ ns_t_sig = 24,+ ns_t_key = 25,+ ns_t_px = 26,+ ns_t_gpos = 27,+ ns_t_aaaa = 28,+ ns_t_loc = 29,+ ns_t_nxt = 30,+ ns_t_eid = 31,+ ns_t_nimloc = 32,+ ns_t_srv = 33,+ ns_t_atma = 34,+ ns_t_naptr = 35,+ ns_t_kx = 36,+ ns_t_cert = 37,+ ns_t_a6 = 38,+ ns_t_dname = 39,+ ns_t_sink = 40,+ ns_t_opt = 41,+ ns_t_apl = 42,+ ns_t_ds = 43,+ ns_t_sshfp = 44,+ ns_t_ipseckey = 45,+ ns_t_rrsig = 46,+ ns_t_nsec = 47,+ ns_t_dnskey = 48,+ ns_t_dhcid = 49,+ ns_t_nsec3 = 50,+ ns_t_nsec3param = 51,+ ns_t_tlsa = 52,+ ns_t_smimea = 53,+ ns_t_hip = 55,+ ns_t_ninfo = 56,+ ns_t_rkey = 57,+ ns_t_talink = 58,+ ns_t_cds = 59,+ ns_t_cdnskey = 60,+ ns_t_openpgpkey = 61,+ ns_t_csync = 62,+ ns_t_spf = 99,+ ns_t_uinfo = 100,+ ns_t_uid = 101,+ ns_t_gid = 102,+ ns_t_unspec = 103,+ ns_t_nid = 104,+ ns_t_l32 = 105,+ ns_t_l64 = 106,+ ns_t_lp = 107,+ ns_t_eui48 = 108,+ ns_t_eui64 = 109,+ ns_t_tkey = 249,+ ns_t_tsig = 250,+ ns_t_ixfr = 251,+ ns_t_axfr = 252,+ ns_t_mailb = 253,+ ns_t_maila = 254,+ ns_t_any = 255,+ ns_t_zxfr = 256,+ ns_t_uri = 256,+ ns_t_caa = 257,+ ns_t_avc = 258,+ ns_t_ta = 32768,+ ns_t_dlv = 32769,+ ns_t_max = 65536+} ns_type;++#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \+ (t) == ns_t_mailb || (t) == ns_t_maila)+#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)+#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))+#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)+#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \+ (t) == ns_t_zxfr)++typedef enum __ns_class {+ ns_c_invalid = 0,+ ns_c_in = 1,+ ns_c_2 = 2,+ ns_c_chaos = 3,+ ns_c_hs = 4,+ ns_c_none = 254,+ ns_c_any = 255,+ ns_c_max = 65536+} ns_class;++typedef enum __ns_key_types {+ ns_kt_rsa = 1,+ ns_kt_dh = 2,+ ns_kt_dsa = 3,+ ns_kt_private = 254+} ns_key_types;++typedef enum __ns_cert_types {+ cert_t_pkix = 1,+ cert_t_spki = 2,+ cert_t_pgp = 3,+ cert_t_url = 253,+ cert_t_oid = 254+} ns_cert_types;++#define NS_KEY_TYPEMASK 0xC000+#define NS_KEY_TYPE_AUTH_CONF 0x0000+#define NS_KEY_TYPE_CONF_ONLY 0x8000+#define NS_KEY_TYPE_AUTH_ONLY 0x4000+#define NS_KEY_TYPE_NO_KEY 0xC000+#define NS_KEY_NO_AUTH 0x8000+#define NS_KEY_NO_CONF 0x4000+#define NS_KEY_RESERVED2 0x2000+#define NS_KEY_EXTENDED_FLAGS 0x1000+#define NS_KEY_RESERVED4 0x0800+#define NS_KEY_RESERVED5 0x0400+#define NS_KEY_NAME_TYPE 0x0300+#define NS_KEY_NAME_USER 0x0000+#define NS_KEY_NAME_ENTITY 0x0200+#define NS_KEY_NAME_ZONE 0x0100+#define NS_KEY_NAME_RESERVED 0x0300+#define NS_KEY_RESERVED8 0x0080+#define NS_KEY_RESERVED9 0x0040+#define NS_KEY_RESERVED10 0x0020+#define NS_KEY_RESERVED11 0x0010+#define NS_KEY_SIGNATORYMASK 0x000F+#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \+ NS_KEY_RESERVED4 | \+ NS_KEY_RESERVED5 | \+ NS_KEY_RESERVED8 | \+ NS_KEY_RESERVED9 | \+ NS_KEY_RESERVED10 | \+ NS_KEY_RESERVED11 )+#define NS_KEY_RESERVED_BITMASK2 0xFFFF+#define NS_ALG_MD5RSA 1+#define NS_ALG_DH 2+#define NS_ALG_DSA 3+#define NS_ALG_DSS NS_ALG_DSA+#define NS_ALG_EXPIRE_ONLY 253+#define NS_ALG_PRIVATE_OID 254++#define NS_KEY_PROT_TLS 1+#define NS_KEY_PROT_EMAIL 2+#define NS_KEY_PROT_DNSSEC 3+#define NS_KEY_PROT_IPSEC 4+#define NS_KEY_PROT_ANY 255++#define NS_MD5RSA_MIN_BITS 512+#define NS_MD5RSA_MAX_BITS 4096+#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)+#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)+#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)+#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)++#define NS_DSA_SIG_SIZE 41+#define NS_DSA_MIN_SIZE 213+#define NS_DSA_MAX_BYTES 405++#define NS_SIG_TYPE 0+#define NS_SIG_ALG 2+#define NS_SIG_LABELS 3+#define NS_SIG_OTTL 4+#define NS_SIG_EXPIR 8+#define NS_SIG_SIGNED 12+#define NS_SIG_FOOT 16+#define NS_SIG_SIGNER 18+#define NS_NXT_BITS 8+#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))+#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))+#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))+#define NS_NXT_MAX 127++#define NS_OPT_DNSSEC_OK 0x8000U+#define NS_OPT_NSID 3++#define NS_GET16(s, cp) (void)((s) = ns_get16(((cp)+=2)-2))+#define NS_GET32(l, cp) (void)((l) = ns_get32(((cp)+=4)-4))+#define NS_PUT16(s, cp) ns_put16((s), ((cp)+=2)-2)+#define NS_PUT32(l, cp) ns_put32((l), ((cp)+=4)-4)++unsigned ns_get16(const unsigned char *);+unsigned long ns_get32(const unsigned char *);+void ns_put16(unsigned, unsigned char *);+void ns_put32(unsigned long, unsigned char *);++int ns_initparse(const unsigned char *, int, ns_msg *);+int ns_parserr(ns_msg *, ns_sect, int, ns_rr *);+int ns_skiprr(const unsigned char *, const unsigned char *, ns_sect, int);+int ns_name_uncompress(const unsigned char *, const unsigned char *, const unsigned char *, char *, size_t);+++#define __BIND 19950621++typedef struct {+ unsigned id :16;+#if __BYTE_ORDER == __BIG_ENDIAN+ unsigned qr: 1;+ unsigned opcode: 4;+ unsigned aa: 1;+ unsigned tc: 1;+ unsigned rd: 1;+ unsigned ra: 1;+ unsigned unused :1;+ unsigned ad: 1;+ unsigned cd: 1;+ unsigned rcode :4;+#else+ unsigned rd :1;+ unsigned tc :1;+ unsigned aa :1;+ unsigned opcode :4;+ unsigned qr :1;+ unsigned rcode :4;+ unsigned cd: 1;+ unsigned ad: 1;+ unsigned unused :1;+ unsigned ra :1;+#endif+ unsigned qdcount :16;+ unsigned ancount :16;+ unsigned nscount :16;+ unsigned arcount :16;+} HEADER;++#define PACKETSZ NS_PACKETSZ+#define MAXDNAME NS_MAXDNAME+#define MAXCDNAME NS_MAXCDNAME+#define MAXLABEL NS_MAXLABEL+#define HFIXEDSZ NS_HFIXEDSZ+#define QFIXEDSZ NS_QFIXEDSZ+#define RRFIXEDSZ NS_RRFIXEDSZ+#define INT32SZ NS_INT32SZ+#define INT16SZ NS_INT16SZ+#define INT8SZ NS_INT8SZ+#define INADDRSZ NS_INADDRSZ+#define IN6ADDRSZ NS_IN6ADDRSZ+#define INDIR_MASK NS_CMPRSFLGS+#define NAMESERVER_PORT NS_DEFAULTPORT++#define S_ZONE ns_s_zn+#define S_PREREQ ns_s_pr+#define S_UPDATE ns_s_ud+#define S_ADDT ns_s_ar++#define QUERY ns_o_query+#define IQUERY ns_o_iquery+#define STATUS ns_o_status+#define NS_NOTIFY_OP ns_o_notify+#define NS_UPDATE_OP ns_o_update++#define NOERROR ns_r_noerror+#define FORMERR ns_r_formerr+#define SERVFAIL ns_r_servfail+#define NXDOMAIN ns_r_nxdomain+#define NOTIMP ns_r_notimpl+#define REFUSED ns_r_refused+#define YXDOMAIN ns_r_yxdomain+#define YXRRSET ns_r_yxrrset+#define NXRRSET ns_r_nxrrset+#define NOTAUTH ns_r_notauth+#define NOTZONE ns_r_notzone++#define DELETE ns_uop_delete+#define ADD ns_uop_add++#define T_A ns_t_a+#define T_NS ns_t_ns+#define T_MD ns_t_md+#define T_MF ns_t_mf+#define T_CNAME ns_t_cname+#define T_SOA ns_t_soa+#define T_MB ns_t_mb+#define T_MG ns_t_mg+#define T_MR ns_t_mr+#define T_NULL ns_t_null+#define T_WKS ns_t_wks+#define T_PTR ns_t_ptr+#define T_HINFO ns_t_hinfo+#define T_MINFO ns_t_minfo+#define T_MX ns_t_mx+#define T_TXT ns_t_txt+#define T_RP ns_t_rp+#define T_AFSDB ns_t_afsdb+#define T_X25 ns_t_x25+#define T_ISDN ns_t_isdn+#define T_RT ns_t_rt+#define T_NSAP ns_t_nsap+#define T_NSAP_PTR ns_t_nsap_ptr+#define T_SIG ns_t_sig+#define T_KEY ns_t_key+#define T_PX ns_t_px+#define T_GPOS ns_t_gpos+#define T_AAAA ns_t_aaaa+#define T_LOC ns_t_loc+#define T_NXT ns_t_nxt+#define T_EID ns_t_eid+#define T_NIMLOC ns_t_nimloc+#define T_SRV ns_t_srv+#define T_ATMA ns_t_atma+#define T_NAPTR ns_t_naptr+#define T_A6 ns_t_a6+#define T_DNAME ns_t_dname+#define T_DS ns_t_ds+#define T_SSHFP ns_t_sshfp+#define T_IPSECKEY ns_t_ipseckey+#define T_RRSIG ns_t_rrsig+#define T_NSEC ns_t_nsec+#define T_DNSKEY ns_t_dnskey+#define T_DHCID ns_t_dhcid+#define T_NSEC3 ns_t_nsec3+#define T_NSEC3PARAM ns_t_nsec3param+#define T_TLSA ns_t_tlsa+#define T_SMIMEA ns_t_smimea+#define T_HIP ns_t_hip+#define T_NINFO ns_t_ninfo+#define T_RKEY ns_t_rkey+#define T_TALINK ns_t_talink+#define T_CDS ns_t_cds+#define T_CDNSKEY ns_t_cdnskey+#define T_OPENPGPKEY ns_t_openpgpkey+#define T_CSYNC ns_t_csync+#define T_SPF ns_t_spf+#define T_UINFO ns_t_uinfo+#define T_UID ns_t_uid+#define T_GID ns_t_gid+#define T_UNSPEC ns_t_unspec+#define T_NID ns_t_nid+#define T_L32 ns_t_l32+#define T_L64 ns_t_l64+#define T_LP ns_t_lp+#define T_EUI48 ns_t_eui48+#define T_EUI64 ns_t_eui64+#define T_TKEY ns_t_tkey+#define T_TSIG ns_t_tsig+#define T_IXFR ns_t_ixfr+#define T_AXFR ns_t_axfr+#define T_MAILB ns_t_mailb+#define T_MAILA ns_t_maila+#define T_ANY ns_t_any+#define T_URI ns_t_uri+#define T_CAA ns_t_caa+#define T_AVC ns_t_avc+#define T_TA ns_t_ta+#define T_DLV ns_t_dlv++#define C_IN ns_c_in+#define C_CHAOS ns_c_chaos+#define C_HS ns_c_hs+#define C_NONE ns_c_none+#define C_ANY ns_c_any++#define GETSHORT NS_GET16+#define GETLONG NS_GET32+#define PUTSHORT NS_PUT16+#define PUTLONG NS_PUT32++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,2 @@+#include <arpa/nameser.h>+
@@ -0,0 +1,251 @@+#ifndef _ARPA_TELNET_H+#define _ARPA_TELNET_H++#define IAC 255+#define DONT 254+#define DO 253+#define WONT 252+#define WILL 251+#define SB 250+#define GA 249+#define EL 248+#define EC 247+#define AYT 246+#define AO 245+#define IP 244+#define BREAK 243+#define DM 242+#define NOP 241+#define SE 240+#define EOR 239+#define ABORT 238+#define SUSP 237+#define xEOF 236++#define SYNCH 242++#define telcmds ((char [][6]){ "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 })++#define TELCMD_FIRST xEOF+#define TELCMD_LAST IAC+#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \+ (unsigned int)(x) >= TELCMD_FIRST)+#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]++#define TELOPT_BINARY 0+#define TELOPT_ECHO 1+#define TELOPT_RCP 2+#define TELOPT_SGA 3+#define TELOPT_NAMS 4+#define TELOPT_STATUS 5+#define TELOPT_TM 6+#define TELOPT_RCTE 7+#define TELOPT_NAOL 8+#define TELOPT_NAOP 9+#define TELOPT_NAOCRD 10+#define TELOPT_NAOHTS 11+#define TELOPT_NAOHTD 12+#define TELOPT_NAOFFD 13+#define TELOPT_NAOVTS 14+#define TELOPT_NAOVTD 15+#define TELOPT_NAOLFD 16+#define TELOPT_XASCII 17+#define TELOPT_LOGOUT 18+#define TELOPT_BM 19+#define TELOPT_DET 20+#define TELOPT_SUPDUP 21+#define TELOPT_SUPDUPOUTPUT 22+#define TELOPT_SNDLOC 23+#define TELOPT_TTYPE 24+#define TELOPT_EOR 25+#define TELOPT_TUID 26+#define TELOPT_OUTMRK 27+#define TELOPT_TTYLOC 28+#define TELOPT_3270REGIME 29+#define TELOPT_X3PAD 30+#define TELOPT_NAWS 31+#define TELOPT_TSPEED 32+#define TELOPT_LFLOW 33+#define TELOPT_LINEMODE 34+#define TELOPT_XDISPLOC 35+#define TELOPT_OLD_ENVIRON 36+#define TELOPT_AUTHENTICATION 37/* Authenticate */+#define TELOPT_ENCRYPT 38+#define TELOPT_NEW_ENVIRON 39+#define TELOPT_EXOPL 255+++#define NTELOPTS (1+TELOPT_NEW_ENVIRON)+#ifdef TELOPTS+char *telopts[NTELOPTS+1] = {+ "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",+ "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",+ "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",+ "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",+ "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",+ "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",+ "TACACS UID", "OUTPUT MARKING", "TTYLOC",+ "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",+ "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",+ "ENCRYPT", "NEW-ENVIRON",+ 0,+};+#define TELOPT_FIRST TELOPT_BINARY+#define TELOPT_LAST TELOPT_NEW_ENVIRON+#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)+#define TELOPT(x) telopts[(x)-TELOPT_FIRST]+#endif++#define TELQUAL_IS 0+#define TELQUAL_SEND 1+#define TELQUAL_INFO 2+#define TELQUAL_REPLY 2+#define TELQUAL_NAME 3++#define LFLOW_OFF 0+#define LFLOW_ON 1+#define LFLOW_RESTART_ANY 2+#define LFLOW_RESTART_XON 3+++#define LM_MODE 1+#define LM_FORWARDMASK 2+#define LM_SLC 3++#define MODE_EDIT 0x01+#define MODE_TRAPSIG 0x02+#define MODE_ACK 0x04+#define MODE_SOFT_TAB 0x08+#define MODE_LIT_ECHO 0x10++#define MODE_MASK 0x1f++#define MODE_FLOW 0x0100+#define MODE_ECHO 0x0200+#define MODE_INBIN 0x0400+#define MODE_OUTBIN 0x0800+#define MODE_FORCE 0x1000++#define SLC_SYNCH 1+#define SLC_BRK 2+#define SLC_IP 3+#define SLC_AO 4+#define SLC_AYT 5+#define SLC_EOR 6+#define SLC_ABORT 7+#define SLC_EOF 8+#define SLC_SUSP 9+#define SLC_EC 10+#define SLC_EL 11+#define SLC_EW 12+#define SLC_RP 13+#define SLC_LNEXT 14+#define SLC_XON 15+#define SLC_XOFF 16+#define SLC_FORW1 17+#define SLC_FORW2 18++#define NSLC 18++#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \+ "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \+ "LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0,+#ifdef SLC_NAMES+char *slc_names[] = {+ SLC_NAMELIST+};+#else+extern char *slc_names[];+#define SLC_NAMES SLC_NAMELIST+#endif++#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)+#define SLC_NAME(x) slc_names[x]++#define SLC_NOSUPPORT 0+#define SLC_CANTCHANGE 1+#define SLC_VARIABLE 2+#define SLC_DEFAULT 3+#define SLC_LEVELBITS 0x03++#define SLC_FUNC 0+#define SLC_FLAGS 1+#define SLC_VALUE 2++#define SLC_ACK 0x80+#define SLC_FLUSHIN 0x40+#define SLC_FLUSHOUT 0x20++#define OLD_ENV_VAR 1+#define OLD_ENV_VALUE 0+#define NEW_ENV_VAR 0+#define NEW_ENV_VALUE 1+#define ENV_ESC 2+#define ENV_USERVAR 3++#define AUTH_WHO_CLIENT 0+#define AUTH_WHO_SERVER 1+#define AUTH_WHO_MASK 1++#define AUTH_HOW_ONE_WAY 0+#define AUTH_HOW_MUTUAL 2+#define AUTH_HOW_MASK 2++#define AUTHTYPE_NULL 0+#define AUTHTYPE_KERBEROS_V4 1+#define AUTHTYPE_KERBEROS_V5 2+#define AUTHTYPE_SPX 3+#define AUTHTYPE_MINK 4+#define AUTHTYPE_CNT 5++#define AUTHTYPE_TEST 99++#ifdef AUTH_NAMES+char *authtype_names[] = {+ "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0,+};+#else+extern char *authtype_names[];+#endif++#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)+#define AUTHTYPE_NAME(x) authtype_names[x]++#define ENCRYPT_IS 0+#define ENCRYPT_SUPPORT 1+#define ENCRYPT_REPLY 2+#define ENCRYPT_START 3+#define ENCRYPT_END 4+#define ENCRYPT_REQSTART 5+#define ENCRYPT_REQEND 6+#define ENCRYPT_ENC_KEYID 7+#define ENCRYPT_DEC_KEYID 8+#define ENCRYPT_CNT 9++#define ENCTYPE_ANY 0+#define ENCTYPE_DES_CFB64 1+#define ENCTYPE_DES_OFB64 2+#define ENCTYPE_CNT 3++#ifdef ENCRYPT_NAMES+char *encrypt_names[] = {+ "IS", "SUPPORT", "REPLY", "START", "END",+ "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",+ 0,+};+char *enctype_names[] = {+ "ANY", "DES_CFB64", "DES_OFB64", 0,+};+#else+extern char *encrypt_names[];+extern char *enctype_names[];+#endif+++#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)+#define ENCRYPT_NAME(x) encrypt_names[x]++#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)+#define ENCTYPE_NAME(x) enctype_names[x]++#endif
@@ -0,0 +1,31 @@+#ifndef _ARPA_TFTP_H+#define _ARPA_TFTP_H+#define SEGSIZE 512+#define RRQ 01+#define WRQ 02+#define DATA 03+#define ACK 04+#define ERROR 05+struct tftphdr {+ short th_opcode;+ union {+ unsigned short tu_block;+ short tu_code;+ char tu_stuff[1];+ } th_u;+ char th_data[1];+};+#define th_block th_u.tu_block+#define th_code th_u.tu_code+#define th_stuff th_u.tu_stuff+#define th_msg th_data+#define EUNDEF 0+#define ENOTFOUND 1+#define EACCESS 2+#define ENOSPACE 3+#define EBADOP 4+#define EBADID 5+#define EEXISTS 6+#define ENOUSER 7+#endif+
@@ -0,0 +1,23 @@+#include <features.h>++#undef assert++#ifdef NDEBUG+#define assert(x) (void)0+#else+#define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0)))+#endif++#if __STDC_VERSION__ >= 201112L && !defined(__cplusplus)+#define static_assert _Static_assert+#endif++#ifdef __cplusplus+extern "C" {+#endif++_Noreturn void __assert_fail (const char *, const char *, int, const char *);++#ifdef __cplusplus+}+#endif
@@ -0,0 +1,408 @@+#define _REDIR_TIME64 1+#define _Addr int+#define _Int64 long long+#define _Reg int++#if __ARMEB__+#define __BYTE_ORDER 4321+#else+#define __BYTE_ORDER 1234+#endif++#define __LONG_MAX 0x7fffffffL++#ifndef __cplusplus+#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)+typedef unsigned wchar_t;+#define __DEFINED_wchar_t+#endif++#endif++#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)+typedef float float_t;+#define __DEFINED_float_t+#endif++#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)+typedef double double_t;+#define __DEFINED_double_t+#endif+++#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)+typedef struct { long long __ll; long double __ld; } max_align_t;+#define __DEFINED_max_align_t+#endif++#define __LITTLE_ENDIAN 1234+#define __BIG_ENDIAN 4321+#define __USE_TIME_BITS64 1++#if defined(__NEED_size_t) && !defined(__DEFINED_size_t)+typedef unsigned _Addr size_t;+#define __DEFINED_size_t+#endif++#if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t)+typedef unsigned _Addr uintptr_t;+#define __DEFINED_uintptr_t+#endif++#if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t)+typedef _Addr ptrdiff_t;+#define __DEFINED_ptrdiff_t+#endif++#if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t)+typedef _Addr ssize_t;+#define __DEFINED_ssize_t+#endif++#if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t)+typedef _Addr intptr_t;+#define __DEFINED_intptr_t+#endif++#if defined(__NEED_regoff_t) && !defined(__DEFINED_regoff_t)+typedef _Addr regoff_t;+#define __DEFINED_regoff_t+#endif++#if defined(__NEED_register_t) && !defined(__DEFINED_register_t)+typedef _Reg register_t;+#define __DEFINED_register_t+#endif++#if defined(__NEED_time_t) && !defined(__DEFINED_time_t)+typedef _Int64 time_t;+#define __DEFINED_time_t+#endif++#if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t)+typedef _Int64 suseconds_t;+#define __DEFINED_suseconds_t+#endif+++#if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t)+typedef signed char int8_t;+#define __DEFINED_int8_t+#endif++#if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t)+typedef signed short int16_t;+#define __DEFINED_int16_t+#endif++#if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t)+typedef signed int int32_t;+#define __DEFINED_int32_t+#endif++#if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t)+typedef signed _Int64 int64_t;+#define __DEFINED_int64_t+#endif++#if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t)+typedef signed _Int64 intmax_t;+#define __DEFINED_intmax_t+#endif++#if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t)+typedef unsigned char uint8_t;+#define __DEFINED_uint8_t+#endif++#if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t)+typedef unsigned short uint16_t;+#define __DEFINED_uint16_t+#endif++#if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t)+typedef unsigned int uint32_t;+#define __DEFINED_uint32_t+#endif++#if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t)+typedef unsigned _Int64 uint64_t;+#define __DEFINED_uint64_t+#endif++#if defined(__NEED_u_int64_t) && !defined(__DEFINED_u_int64_t)+typedef unsigned _Int64 u_int64_t;+#define __DEFINED_u_int64_t+#endif++#if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t)+typedef unsigned _Int64 uintmax_t;+#define __DEFINED_uintmax_t+#endif+++#if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t)+typedef unsigned mode_t;+#define __DEFINED_mode_t+#endif++#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)+typedef unsigned _Reg nlink_t;+#define __DEFINED_nlink_t+#endif++#if defined(__NEED_off_t) && !defined(__DEFINED_off_t)+typedef _Int64 off_t;+#define __DEFINED_off_t+#endif++#if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t)+typedef unsigned _Int64 ino_t;+#define __DEFINED_ino_t+#endif++#if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t)+typedef unsigned _Int64 dev_t;+#define __DEFINED_dev_t+#endif++#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)+typedef long blksize_t;+#define __DEFINED_blksize_t+#endif++#if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t)+typedef _Int64 blkcnt_t;+#define __DEFINED_blkcnt_t+#endif++#if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t)+typedef unsigned _Int64 fsblkcnt_t;+#define __DEFINED_fsblkcnt_t+#endif++#if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t)+typedef unsigned _Int64 fsfilcnt_t;+#define __DEFINED_fsfilcnt_t+#endif+++#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)+typedef unsigned wint_t;+#define __DEFINED_wint_t+#endif++#if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t)+typedef unsigned long wctype_t;+#define __DEFINED_wctype_t+#endif+++#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)+typedef void * timer_t;+#define __DEFINED_timer_t+#endif++#if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t)+typedef int clockid_t;+#define __DEFINED_clockid_t+#endif++#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)+typedef long clock_t;+#define __DEFINED_clock_t+#endif++#if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval)+struct timeval { time_t tv_sec; suseconds_t tv_usec; };+#define __DEFINED_struct_timeval+#endif++#if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec)+struct timespec { time_t tv_sec; int :8*(sizeof(time_t)-sizeof(long))*(__BYTE_ORDER==4321); long tv_nsec; int :8*(sizeof(time_t)-sizeof(long))*(__BYTE_ORDER!=4321); };+#define __DEFINED_struct_timespec+#endif+++#if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t)+typedef int pid_t;+#define __DEFINED_pid_t+#endif++#if defined(__NEED_id_t) && !defined(__DEFINED_id_t)+typedef unsigned id_t;+#define __DEFINED_id_t+#endif++#if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t)+typedef unsigned uid_t;+#define __DEFINED_uid_t+#endif++#if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t)+typedef unsigned gid_t;+#define __DEFINED_gid_t+#endif++#if defined(__NEED_key_t) && !defined(__DEFINED_key_t)+typedef int key_t;+#define __DEFINED_key_t+#endif++#if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t)+typedef unsigned useconds_t;+#define __DEFINED_useconds_t+#endif+++#ifdef __cplusplus+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)+typedef unsigned long pthread_t;+#define __DEFINED_pthread_t+#endif++#else+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)+typedef struct __pthread * pthread_t;+#define __DEFINED_pthread_t+#endif++#endif+#if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t)+typedef int pthread_once_t;+#define __DEFINED_pthread_once_t+#endif++#if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t)+typedef unsigned pthread_key_t;+#define __DEFINED_pthread_key_t+#endif++#if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t)+typedef int pthread_spinlock_t;+#define __DEFINED_pthread_spinlock_t+#endif++#if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t)+typedef struct { unsigned __attr; } pthread_mutexattr_t;+#define __DEFINED_pthread_mutexattr_t+#endif++#if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t)+typedef struct { unsigned __attr; } pthread_condattr_t;+#define __DEFINED_pthread_condattr_t+#endif++#if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t)+typedef struct { unsigned __attr; } pthread_barrierattr_t;+#define __DEFINED_pthread_barrierattr_t+#endif++#if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t)+typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;+#define __DEFINED_pthread_rwlockattr_t+#endif+++#if defined(__NEED_struct__IO_FILE) && !defined(__DEFINED_struct__IO_FILE)+struct _IO_FILE { char __x; };+#define __DEFINED_struct__IO_FILE+#endif++#if defined(__NEED_FILE) && !defined(__DEFINED_FILE)+typedef struct _IO_FILE FILE;+#define __DEFINED_FILE+#endif+++#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)+typedef __builtin_va_list va_list;+#define __DEFINED_va_list+#endif++#if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list)+typedef __builtin_va_list __isoc_va_list;+#define __DEFINED___isoc_va_list+#endif+++#if defined(__NEED_mbstate_t) && !defined(__DEFINED_mbstate_t)+typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t;+#define __DEFINED_mbstate_t+#endif+++#if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t)+typedef struct __locale_struct * locale_t;+#define __DEFINED_locale_t+#endif+++#if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t)+typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;+#define __DEFINED_sigset_t+#endif+++#if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec)+struct iovec { void *iov_base; size_t iov_len; };+#define __DEFINED_struct_iovec+#endif+++#if defined(__NEED_struct_winsize) && !defined(__DEFINED_struct_winsize)+struct winsize { unsigned short ws_row, ws_col, ws_xpixel, ws_ypixel; };+#define __DEFINED_struct_winsize+#endif+++#if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t)+typedef unsigned socklen_t;+#define __DEFINED_socklen_t+#endif++#if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t)+typedef unsigned short sa_family_t;+#define __DEFINED_sa_family_t+#endif+++#if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t)+typedef struct { union { int __i[sizeof(long)==8?14:9]; volatile int __vi[sizeof(long)==8?14:9]; unsigned long __s[sizeof(long)==8?7:9]; } __u; } pthread_attr_t;+#define __DEFINED_pthread_attr_t+#endif++#if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t)+typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } pthread_mutex_t;+#define __DEFINED_pthread_mutex_t+#endif++#if defined(__NEED_mtx_t) && !defined(__DEFINED_mtx_t)+typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } mtx_t;+#define __DEFINED_mtx_t+#endif++#if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t)+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } pthread_cond_t;+#define __DEFINED_pthread_cond_t+#endif++#if defined(__NEED_cnd_t) && !defined(__DEFINED_cnd_t)+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } cnd_t;+#define __DEFINED_cnd_t+#endif++#if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t)+typedef struct { union { int __i[sizeof(long)==8?14:8]; volatile int __vi[sizeof(long)==8?14:8]; void *__p[sizeof(long)==8?7:8]; } __u; } pthread_rwlock_t;+#define __DEFINED_pthread_rwlock_t+#endif++#if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t)+typedef struct { union { int __i[sizeof(long)==8?8:5]; volatile int __vi[sizeof(long)==8?8:5]; void *__p[sizeof(long)==8?4:5]; } __u; } pthread_barrier_t;+#define __DEFINED_pthread_barrier_t+#endif+++#undef _Addr+#undef _Int64+#undef _Reg
@@ -0,0 +1,11 @@+#define _DIRENT_HAVE_D_RECLEN+#define _DIRENT_HAVE_D_OFF+#define _DIRENT_HAVE_D_TYPE++struct dirent {+ ino_t d_ino;+ off_t d_off;+ unsigned short d_reclen;+ unsigned char d_type;+ char d_name[256];+};
@@ -0,0 +1,134 @@+#define EPERM 1+#define ENOENT 2+#define ESRCH 3+#define EINTR 4+#define EIO 5+#define ENXIO 6+#define E2BIG 7+#define ENOEXEC 8+#define EBADF 9+#define ECHILD 10+#define EAGAIN 11+#define ENOMEM 12+#define EACCES 13+#define EFAULT 14+#define ENOTBLK 15+#define EBUSY 16+#define EEXIST 17+#define EXDEV 18+#define ENODEV 19+#define ENOTDIR 20+#define EISDIR 21+#define EINVAL 22+#define ENFILE 23+#define EMFILE 24+#define ENOTTY 25+#define ETXTBSY 26+#define EFBIG 27+#define ENOSPC 28+#define ESPIPE 29+#define EROFS 30+#define EMLINK 31+#define EPIPE 32+#define EDOM 33+#define ERANGE 34+#define EDEADLK 35+#define ENAMETOOLONG 36+#define ENOLCK 37+#define ENOSYS 38+#define ENOTEMPTY 39+#define ELOOP 40+#define EWOULDBLOCK EAGAIN+#define ENOMSG 42+#define EIDRM 43+#define ECHRNG 44+#define EL2NSYNC 45+#define EL3HLT 46+#define EL3RST 47+#define ELNRNG 48+#define EUNATCH 49+#define ENOCSI 50+#define EL2HLT 51+#define EBADE 52+#define EBADR 53+#define EXFULL 54+#define ENOANO 55+#define EBADRQC 56+#define EBADSLT 57+#define EDEADLOCK EDEADLK+#define EBFONT 59+#define ENOSTR 60+#define ENODATA 61+#define ETIME 62+#define ENOSR 63+#define ENONET 64+#define ENOPKG 65+#define EREMOTE 66+#define ENOLINK 67+#define EADV 68+#define ESRMNT 69+#define ECOMM 70+#define EPROTO 71+#define EMULTIHOP 72+#define EDOTDOT 73+#define EBADMSG 74+#define EOVERFLOW 75+#define ENOTUNIQ 76+#define EBADFD 77+#define EREMCHG 78+#define ELIBACC 79+#define ELIBBAD 80+#define ELIBSCN 81+#define ELIBMAX 82+#define ELIBEXEC 83+#define EILSEQ 84+#define ERESTART 85+#define ESTRPIPE 86+#define EUSERS 87+#define ENOTSOCK 88+#define EDESTADDRREQ 89+#define EMSGSIZE 90+#define EPROTOTYPE 91+#define ENOPROTOOPT 92+#define EPROTONOSUPPORT 93+#define ESOCKTNOSUPPORT 94+#define EOPNOTSUPP 95+#define ENOTSUP EOPNOTSUPP+#define EPFNOSUPPORT 96+#define EAFNOSUPPORT 97+#define EADDRINUSE 98+#define EADDRNOTAVAIL 99+#define ENETDOWN 100+#define ENETUNREACH 101+#define ENETRESET 102+#define ECONNABORTED 103+#define ECONNRESET 104+#define ENOBUFS 105+#define EISCONN 106+#define ENOTCONN 107+#define ESHUTDOWN 108+#define ETOOMANYREFS 109+#define ETIMEDOUT 110+#define ECONNREFUSED 111+#define EHOSTDOWN 112+#define EHOSTUNREACH 113+#define EALREADY 114+#define EINPROGRESS 115+#define ESTALE 116+#define EUCLEAN 117+#define ENOTNAM 118+#define ENAVAIL 119+#define EISNAM 120+#define EREMOTEIO 121+#define EDQUOT 122+#define ENOMEDIUM 123+#define EMEDIUMTYPE 124+#define ECANCELED 125+#define ENOKEY 126+#define EKEYEXPIRED 127+#define EKEYREVOKED 128+#define EKEYREJECTED 129+#define EOWNERDEAD 130+#define ENOTRECOVERABLE 131+#define ERFKILL 132+#define EHWPOISON 133
@@ -0,0 +1,40 @@+#define O_CREAT 0100+#define O_EXCL 0200+#define O_NOCTTY 0400+#define O_TRUNC 01000+#define O_APPEND 02000+#define O_NONBLOCK 04000+#define O_DSYNC 010000+#define O_SYNC 04010000+#define O_RSYNC 04010000+#define O_DIRECTORY 040000+#define O_NOFOLLOW 0100000+#define O_CLOEXEC 02000000++#define O_ASYNC 020000+#define O_DIRECT 0200000+#define O_LARGEFILE 0400000+#define O_NOATIME 01000000+#define O_PATH 010000000+#define O_TMPFILE 020040000+#define O_NDELAY O_NONBLOCK++#define F_DUPFD 0+#define F_GETFD 1+#define F_SETFD 2+#define F_GETFL 3+#define F_SETFL 4++#define F_SETOWN 8+#define F_GETOWN 9+#define F_SETSIG 10+#define F_GETSIG 11++#define F_GETLK 12+#define F_SETLK 13+#define F_SETLKW 14++#define F_SETOWN_EX 15+#define F_GETOWN_EX 16++#define F_GETOWNER_UIDS 17
@@ -0,0 +1,23 @@+#ifndef __ARM_PCS_VFP+#define FE_ALL_EXCEPT 0+#define FE_TONEAREST 0+#else+#define FE_INVALID 1+#define FE_DIVBYZERO 2+#define FE_OVERFLOW 4+#define FE_UNDERFLOW 8+#define FE_INEXACT 16+#define FE_ALL_EXCEPT 31+#define FE_TONEAREST 0+#define FE_DOWNWARD 0x800000+#define FE_UPWARD 0x400000+#define FE_TOWARDZERO 0xc00000+#endif++typedef unsigned long fexcept_t;++typedef struct {+ unsigned long __cw;+} fenv_t;++#define FE_DFL_ENV ((const fenv_t *) -1)
@@ -0,0 +1,16 @@+#define FLT_EVAL_METHOD 0++#define LDBL_TRUE_MIN 4.94065645841246544177e-324L+#define LDBL_MIN 2.22507385850720138309e-308L+#define LDBL_MAX 1.79769313486231570815e+308L+#define LDBL_EPSILON 2.22044604925031308085e-16L++#define LDBL_MANT_DIG 53+#define LDBL_MIN_EXP (-1021)+#define LDBL_MAX_EXP 1024++#define LDBL_DIG 15+#define LDBL_MIN_10_EXP (-307)+#define LDBL_MAX_10_EXP 308++#define DECIMAL_DIG 17
@@ -0,0 +1,53 @@+#define HWCAP_SWP (1 << 0)+#define HWCAP_HALF (1 << 1)+#define HWCAP_THUMB (1 << 2)+#define HWCAP_26BIT (1 << 3)+#define HWCAP_FAST_MULT (1 << 4)+#define HWCAP_FPA (1 << 5)+#define HWCAP_VFP (1 << 6)+#define HWCAP_EDSP (1 << 7)+#define HWCAP_JAVA (1 << 8)+#define HWCAP_IWMMXT (1 << 9)+#define HWCAP_CRUNCH (1 << 10)+#define HWCAP_THUMBEE (1 << 11)+#define HWCAP_NEON (1 << 12)+#define HWCAP_VFPv3 (1 << 13)+#define HWCAP_VFPv3D16 (1 << 14)+#define HWCAP_TLS (1 << 15)+#define HWCAP_VFPv4 (1 << 16)+#define HWCAP_IDIVA (1 << 17)+#define HWCAP_IDIVT (1 << 18)+#define HWCAP_VFPD32 (1 << 19)+#define HWCAP_IDIV (HWCAP_IDIVA | HWCAP_IDIVT)+#define HWCAP_LPAE (1 << 20)+#define HWCAP_EVTSTRM (1 << 21)++#define HWCAP2_AES (1 << 0)+#define HWCAP2_PMULL (1 << 1)+#define HWCAP2_SHA1 (1 << 2)+#define HWCAP2_SHA2 (1 << 3)+#define HWCAP2_CRC32 (1 << 4)++#define HWCAP_ARM_SWP (1 << 0)+#define HWCAP_ARM_HALF (1 << 1)+#define HWCAP_ARM_THUMB (1 << 2)+#define HWCAP_ARM_26BIT (1 << 3)+#define HWCAP_ARM_FAST_MULT (1 << 4)+#define HWCAP_ARM_FPA (1 << 5)+#define HWCAP_ARM_VFP (1 << 6)+#define HWCAP_ARM_EDSP (1 << 7)+#define HWCAP_ARM_JAVA (1 << 8)+#define HWCAP_ARM_IWMMXT (1 << 9)+#define HWCAP_ARM_CRUNCH (1 << 10)+#define HWCAP_ARM_THUMBEE (1 << 11)+#define HWCAP_ARM_NEON (1 << 12)+#define HWCAP_ARM_VFPv3 (1 << 13)+#define HWCAP_ARM_VFPv3D16 (1 << 14)+#define HWCAP_ARM_TLS (1 << 15)+#define HWCAP_ARM_VFPv4 (1 << 16)+#define HWCAP_ARM_IDIVA (1 << 17)+#define HWCAP_ARM_IDIVT (1 << 18)+#define HWCAP_ARM_VFPD32 (1 << 19)+#define HWCAP_ARM_IDIV (HWCAP_ARM_IDIVA | HWCAP_ARM_IDIVT)+#define HWCAP_ARM_LPAE (1 << 20)+#define HWCAP_ARM_EVTSTRM (1 << 21)
@@ -0,0 +1,115 @@+#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )+#define _IOC_NONE 0U+#define _IOC_WRITE 1U+#define _IOC_READ 2U++#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)+#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))+#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))+#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))++#define TCGETS 0x5401+#define TCSETS 0x5402+#define TCSETSW 0x5403+#define TCSETSF 0x5404+#define TCGETA 0x5405+#define TCSETA 0x5406+#define TCSETAW 0x5407+#define TCSETAF 0x5408+#define TCSBRK 0x5409+#define TCXONC 0x540A+#define TCFLSH 0x540B+#define TIOCEXCL 0x540C+#define TIOCNXCL 0x540D+#define TIOCSCTTY 0x540E+#define TIOCGPGRP 0x540F+#define TIOCSPGRP 0x5410+#define TIOCOUTQ 0x5411+#define TIOCSTI 0x5412+#define TIOCGWINSZ 0x5413+#define TIOCSWINSZ 0x5414+#define TIOCMGET 0x5415+#define TIOCMBIS 0x5416+#define TIOCMBIC 0x5417+#define TIOCMSET 0x5418+#define TIOCGSOFTCAR 0x5419+#define TIOCSSOFTCAR 0x541A+#define FIONREAD 0x541B+#define TIOCINQ FIONREAD+#define TIOCLINUX 0x541C+#define TIOCCONS 0x541D+#define TIOCGSERIAL 0x541E+#define TIOCSSERIAL 0x541F+#define TIOCPKT 0x5420+#define FIONBIO 0x5421+#define TIOCNOTTY 0x5422+#define TIOCSETD 0x5423+#define TIOCGETD 0x5424+#define TCSBRKP 0x5425+#define TIOCSBRK 0x5427+#define TIOCCBRK 0x5428+#define TIOCGSID 0x5429+#define TIOCGRS485 0x542E+#define TIOCSRS485 0x542F+#define TIOCGPTN 0x80045430+#define TIOCSPTLCK 0x40045431+#define TIOCGDEV 0x80045432+#define TCGETX 0x5432+#define TCSETX 0x5433+#define TCSETXF 0x5434+#define TCSETXW 0x5435+#define TIOCSIG 0x40045436+#define TIOCVHANGUP 0x5437+#define TIOCGPKT 0x80045438+#define TIOCGPTLCK 0x80045439+#define TIOCGEXCL 0x80045440+#define TIOCGPTPEER 0x5441+#define TIOCGISO7816 0x80285442+#define TIOCSISO7816 0xc0285443++#define FIONCLEX 0x5450+#define FIOCLEX 0x5451+#define FIOASYNC 0x5452+#define TIOCSERCONFIG 0x5453+#define TIOCSERGWILD 0x5454+#define TIOCSERSWILD 0x5455+#define TIOCGLCKTRMIOS 0x5456+#define TIOCSLCKTRMIOS 0x5457+#define TIOCSERGSTRUCT 0x5458+#define TIOCSERGETLSR 0x5459+#define TIOCSERGETMULTI 0x545A+#define TIOCSERSETMULTI 0x545B++#define TIOCMIWAIT 0x545C+#define TIOCGICOUNT 0x545D+#define FIOQSIZE 0x5460++#define TIOCM_LE 0x001+#define TIOCM_DTR 0x002+#define TIOCM_RTS 0x004+#define TIOCM_ST 0x008+#define TIOCM_SR 0x010+#define TIOCM_CTS 0x020+#define TIOCM_CAR 0x040+#define TIOCM_RNG 0x080+#define TIOCM_DSR 0x100+#define TIOCM_CD TIOCM_CAR+#define TIOCM_RI TIOCM_RNG+#define TIOCM_OUT1 0x2000+#define TIOCM_OUT2 0x4000+#define TIOCM_LOOP 0x8000++#define FIOSETOWN 0x8901+#define SIOCSPGRP 0x8902+#define FIOGETOWN 0x8903+#define SIOCGPGRP 0x8904+#define SIOCATMARK 0x8905+#if __LONG_MAX == 0x7fffffff+#define SIOCGSTAMP _IOR(0x89, 6, char[16])+#define SIOCGSTAMPNS _IOR(0x89, 7, char[16])+#else+#define SIOCGSTAMP 0x8906+#define SIOCGSTAMPNS 0x8907+#endif++#include <bits/ioctl_fix.h>
@@ -0,0 +1,2 @@+#undef FIOQSIZE+#define FIOQSIZE 0x545e
@@ -0,0 +1,11 @@+struct ipc_perm {+ key_t __ipc_perm_key;+ uid_t uid;+ gid_t gid;+ uid_t cuid;+ gid_t cgid;+ mode_t mode;+ int __ipc_perm_seq;+ long __pad1;+ long __pad2;+};
@@ -0,0 +1,1 @@+#define IPC_STAT 0x102
@@ -0,0 +1,1 @@+#include <linux/kd.h>
@@ -0,0 +1,1 @@+typedef uint32_t Elf_Symndx;
@@ -0,0 +1,18 @@+struct msqid_ds {+ struct ipc_perm msg_perm;+ unsigned long __msg_stime_lo;+ unsigned long __msg_stime_hi;+ unsigned long __msg_rtime_lo;+ unsigned long __msg_rtime_hi;+ unsigned long __msg_ctime_lo;+ unsigned long __msg_ctime_hi;+ unsigned long msg_cbytes;+ msgqnum_t msg_qnum;+ msglen_t msg_qbytes;+ pid_t msg_lspid;+ pid_t msg_lrpid;+ unsigned long __unused[2];+ time_t msg_stime;+ time_t msg_rtime;+ time_t msg_ctime;+};
@@ -0,0 +1,2 @@+#define _POSIX_V6_ILP32_OFFBIG 1+#define _POSIX_V7_ILP32_OFFBIG 1
@@ -0,0 +1,25 @@+#define PTRACE_GETWMMXREGS 18+#define PTRACE_SETWMMXREGS 19+#define PTRACE_GET_THREAD_AREA 22+#define PTRACE_SET_SYSCALL 23+#define PTRACE_GETCRUNCHREGS 25+#define PTRACE_SETCRUNCHREGS 26+#define PTRACE_GETVFPREGS 27+#define PTRACE_SETVFPREGS 28+#define PTRACE_GETHBPREGS 29+#define PTRACE_SETHBPREGS 30+#define PTRACE_GETFDPIC 31+#define PTRACE_GETFDPIC_EXEC 0+#define PTRACE_GETFDPIC_INTERP 1++#define PT_GETWMMXREGS PTRACE_GETWMMXREGS+#define PT_SETWMMXREGS PTRACE_SETWMMXREGS+#define PT_GET_THREAD_AREA PTRACE_GET_THREAD_AREA+#define PT_SET_SYSCALL PTRACE_SET_SYSCALL+#define PT_GETCRUNCHREGS PTRACE_GETCRUNCHREGS+#define PT_SETCRUNCHREGS PTRACE_SETCRUNCHREGS+#define PT_GETVFPREGS PTRACE_GETVFPREGS+#define PT_SETVFPREGS PTRACE_SETVFPREGS+#define PT_GETHBPREGS PTRACE_GETHBPREGS+#define PT_SETHBPREGS PTRACE_SETHBPREGS+#define PT_GETFDPIC PTRACE_GETFDPIC
@@ -0,0 +1,3 @@+#undef __WORDSIZE+#define __WORDSIZE 32+/* FIXME */
@@ -0,0 +1,18 @@+struct semid_ds {+ struct ipc_perm sem_perm;+ unsigned long __sem_otime_lo;+ unsigned long __sem_otime_hi;+ unsigned long __sem_ctime_lo;+ unsigned long __sem_ctime_hi;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned short sem_nsems;+ char __sem_nsems_pad[sizeof(long)-sizeof(short)];+#else+ char __sem_nsems_pad[sizeof(long)-sizeof(short)];+ unsigned short sem_nsems;+#endif+ long __unused3;+ long __unused4;+ time_t sem_otime;+ time_t sem_ctime;+};
@@ -0,0 +1,1 @@+typedef unsigned long long __jmp_buf[32];
@@ -0,0 +1,31 @@+#define SHMLBA 4096++struct shmid_ds {+ struct ipc_perm shm_perm;+ size_t shm_segsz;+ unsigned long __shm_atime_lo;+ unsigned long __shm_atime_hi;+ unsigned long __shm_dtime_lo;+ unsigned long __shm_dtime_hi;+ unsigned long __shm_ctime_lo;+ unsigned long __shm_ctime_hi;+ pid_t shm_cpid;+ pid_t shm_lpid;+ unsigned long shm_nattch;+ unsigned long __pad1;+ unsigned long __pad2;+ unsigned long __pad3;+ time_t shm_atime;+ time_t shm_dtime;+ time_t shm_ctime;+};++struct shminfo {+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];+};++struct shm_info {+ int __used_ids;+ unsigned long shm_tot, shm_rss, shm_swp;+ unsigned long __swap_attempts, __swap_successes;+};
@@ -0,0 +1,86 @@+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define MINSIGSTKSZ 2048+#define SIGSTKSZ 8192+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+typedef int greg_t, gregset_t[18];+typedef struct sigcontext {+ unsigned long trap_no, error_code, oldmask;+ unsigned long arm_r0, arm_r1, arm_r2, arm_r3;+ unsigned long arm_r4, arm_r5, arm_r6, arm_r7;+ unsigned long arm_r8, arm_r9, arm_r10, arm_fp;+ unsigned long arm_ip, arm_sp, arm_lr, arm_pc;+ unsigned long arm_cpsr, fault_address;+} mcontext_t;+#else+typedef struct {+ unsigned long __regs[21];+} mcontext_t;+#endif++struct sigaltstack {+ void *ss_sp;+ int ss_flags;+ size_t ss_size;+};++typedef struct __ucontext {+ unsigned long uc_flags;+ struct __ucontext *uc_link;+ stack_t uc_stack;+ mcontext_t uc_mcontext;+ sigset_t uc_sigmask;+ unsigned long long uc_regspace[64];+} ucontext_t;++#define SA_NOCLDSTOP 1+#define SA_NOCLDWAIT 2+#define SA_SIGINFO 4+#define SA_ONSTACK 0x08000000+#define SA_RESTART 0x10000000+#define SA_NODEFER 0x40000000+#define SA_RESETHAND 0x80000000+#define SA_RESTORER 0x04000000++#endif++#define SIGHUP 1+#define SIGINT 2+#define SIGQUIT 3+#define SIGILL 4+#define SIGTRAP 5+#define SIGABRT 6+#define SIGIOT SIGABRT+#define SIGBUS 7+#define SIGFPE 8+#define SIGKILL 9+#define SIGUSR1 10+#define SIGSEGV 11+#define SIGUSR2 12+#define SIGPIPE 13+#define SIGALRM 14+#define SIGTERM 15+#define SIGSTKFLT 16+#define SIGCHLD 17+#define SIGCONT 18+#define SIGSTOP 19+#define SIGTSTP 20+#define SIGTTIN 21+#define SIGTTOU 22+#define SIGURG 23+#define SIGXCPU 24+#define SIGXFSZ 25+#define SIGVTALRM 26+#define SIGPROF 27+#define SIGWINCH 28+#define SIGIO 29+#define SIGPOLL 29+#define SIGPWR 30+#define SIGSYS 31+#define SIGUNUSED SIGSYS++#define _NSIG 65
@@ -0,0 +1,1 @@+#include <linux/soundcard.h>
@@ -0,0 +1,25 @@+/* copied from kernel definition, but with padding replaced+ * by the corresponding correctly-sized userspace types. */++struct stat {+ dev_t st_dev;+ int __st_dev_padding;+ long __st_ino_truncated;+ mode_t st_mode;+ nlink_t st_nlink;+ uid_t st_uid;+ gid_t st_gid;+ dev_t st_rdev;+ int __st_rdev_padding;+ off_t st_size;+ blksize_t st_blksize;+ blkcnt_t st_blocks;+ struct {+ long tv_sec;+ long tv_nsec;+ } __st_atim32, __st_mtim32, __st_ctim32;+ ino_t st_ino;+ struct timespec st_atim;+ struct timespec st_mtim;+ struct timespec st_ctim;+};
@@ -0,0 +1,7 @@+struct statfs {+ unsigned long f_type, f_bsize;+ fsblkcnt_t f_blocks, f_bfree, f_bavail;+ fsfilcnt_t f_files, f_ffree;+ fsid_t f_fsid;+ unsigned long f_namelen, f_frsize, f_flags, f_spare[4];+};
@@ -0,0 +1,20 @@+typedef int32_t int_fast16_t;+typedef int32_t int_fast32_t;+typedef uint32_t uint_fast16_t;+typedef uint32_t uint_fast32_t;++#define INT_FAST16_MIN INT32_MIN+#define INT_FAST32_MIN INT32_MIN++#define INT_FAST16_MAX INT32_MAX+#define INT_FAST32_MAX INT32_MAX++#define UINT_FAST16_MAX UINT32_MAX+#define UINT_FAST32_MAX UINT32_MAX++#define INTPTR_MIN INT32_MIN+#define INTPTR_MAX INT32_MAX+#define UINTPTR_MAX UINT32_MAX+#define PTRDIFF_MIN INT32_MIN+#define PTRDIFF_MAX INT32_MAX+#define SIZE_MAX UINT32_MAX
@@ -0,0 +1,820 @@+#define __NR_restart_syscall 0+#define __NR_exit 1+#define __NR_fork 2+#define __NR_read 3+#define __NR_write 4+#define __NR_open 5+#define __NR_close 6+#define __NR_creat 8+#define __NR_link 9+#define __NR_unlink 10+#define __NR_execve 11+#define __NR_chdir 12+#define __NR_mknod 14+#define __NR_chmod 15+#define __NR_lchown 16+#define __NR_lseek 19+#define __NR_getpid 20+#define __NR_mount 21+#define __NR_setuid 23+#define __NR_getuid 24+#define __NR_ptrace 26+#define __NR_pause 29+#define __NR_access 33+#define __NR_nice 34+#define __NR_sync 36+#define __NR_kill 37+#define __NR_rename 38+#define __NR_mkdir 39+#define __NR_rmdir 40+#define __NR_dup 41+#define __NR_pipe 42+#define __NR_times 43+#define __NR_brk 45+#define __NR_setgid 46+#define __NR_getgid 47+#define __NR_geteuid 49+#define __NR_getegid 50+#define __NR_acct 51+#define __NR_umount2 52+#define __NR_ioctl 54+#define __NR_fcntl 55+#define __NR_setpgid 57+#define __NR_umask 60+#define __NR_chroot 61+#define __NR_ustat 62+#define __NR_dup2 63+#define __NR_getppid 64+#define __NR_getpgrp 65+#define __NR_setsid 66+#define __NR_sigaction 67+#define __NR_setreuid 70+#define __NR_setregid 71+#define __NR_sigsuspend 72+#define __NR_sigpending 73+#define __NR_sethostname 74+#define __NR_setrlimit 75+#define __NR_getrusage 77+#define __NR_gettimeofday_time32 78+#define __NR_settimeofday_time32 79+#define __NR_getgroups 80+#define __NR_setgroups 81+#define __NR_symlink 83+#define __NR_readlink 85+#define __NR_uselib 86+#define __NR_swapon 87+#define __NR_reboot 88+#define __NR_munmap 91+#define __NR_truncate 92+#define __NR_ftruncate 93+#define __NR_fchmod 94+#define __NR_fchown 95+#define __NR_getpriority 96+#define __NR_setpriority 97+#define __NR_statfs 99+#define __NR_fstatfs 100+#define __NR_syslog 103+#define __NR_setitimer 104+#define __NR_getitimer 105+#define __NR_stat 106+#define __NR_lstat 107+#define __NR_fstat 108+#define __NR_vhangup 111+#define __NR_wait4 114+#define __NR_swapoff 115+#define __NR_sysinfo 116+#define __NR_fsync 118+#define __NR_sigreturn 119+#define __NR_clone 120+#define __NR_setdomainname 121+#define __NR_uname 122+#define __NR_adjtimex 124+#define __NR_mprotect 125+#define __NR_sigprocmask 126+#define __NR_init_module 128+#define __NR_delete_module 129+#define __NR_quotactl 131+#define __NR_getpgid 132+#define __NR_fchdir 133+#define __NR_bdflush 134+#define __NR_sysfs 135+#define __NR_personality 136+#define __NR_setfsuid 138+#define __NR_setfsgid 139+#define __NR__llseek 140+#define __NR_getdents 141+#define __NR__newselect 142+#define __NR_flock 143+#define __NR_msync 144+#define __NR_readv 145+#define __NR_writev 146+#define __NR_getsid 147+#define __NR_fdatasync 148+#define __NR__sysctl 149+#define __NR_mlock 150+#define __NR_munlock 151+#define __NR_mlockall 152+#define __NR_munlockall 153+#define __NR_sched_setparam 154+#define __NR_sched_getparam 155+#define __NR_sched_setscheduler 156+#define __NR_sched_getscheduler 157+#define __NR_sched_yield 158+#define __NR_sched_get_priority_max 159+#define __NR_sched_get_priority_min 160+#define __NR_sched_rr_get_interval 161+#define __NR_nanosleep 162+#define __NR_mremap 163+#define __NR_setresuid 164+#define __NR_getresuid 165+#define __NR_poll 168+#define __NR_nfsservctl 169+#define __NR_setresgid 170+#define __NR_getresgid 171+#define __NR_prctl 172+#define __NR_rt_sigreturn 173+#define __NR_rt_sigaction 174+#define __NR_rt_sigprocmask 175+#define __NR_rt_sigpending 176+#define __NR_rt_sigtimedwait 177+#define __NR_rt_sigqueueinfo 178+#define __NR_rt_sigsuspend 179+#define __NR_pread64 180+#define __NR_pwrite64 181+#define __NR_chown 182+#define __NR_getcwd 183+#define __NR_capget 184+#define __NR_capset 185+#define __NR_sigaltstack 186+#define __NR_sendfile 187+#define __NR_vfork 190+#define __NR_ugetrlimit 191+#define __NR_mmap2 192+#define __NR_truncate64 193+#define __NR_ftruncate64 194+#define __NR_stat64 195+#define __NR_lstat64 196+#define __NR_fstat64 197+#define __NR_lchown32 198+#define __NR_getuid32 199+#define __NR_getgid32 200+#define __NR_geteuid32 201+#define __NR_getegid32 202+#define __NR_setreuid32 203+#define __NR_setregid32 204+#define __NR_getgroups32 205+#define __NR_setgroups32 206+#define __NR_fchown32 207+#define __NR_setresuid32 208+#define __NR_getresuid32 209+#define __NR_setresgid32 210+#define __NR_getresgid32 211+#define __NR_chown32 212+#define __NR_setuid32 213+#define __NR_setgid32 214+#define __NR_setfsuid32 215+#define __NR_setfsgid32 216+#define __NR_getdents64 217+#define __NR_pivot_root 218+#define __NR_mincore 219+#define __NR_madvise 220+#define __NR_fcntl64 221+#define __NR_gettid 224+#define __NR_readahead 225+#define __NR_setxattr 226+#define __NR_lsetxattr 227+#define __NR_fsetxattr 228+#define __NR_getxattr 229+#define __NR_lgetxattr 230+#define __NR_fgetxattr 231+#define __NR_listxattr 232+#define __NR_llistxattr 233+#define __NR_flistxattr 234+#define __NR_removexattr 235+#define __NR_lremovexattr 236+#define __NR_fremovexattr 237+#define __NR_tkill 238+#define __NR_sendfile64 239+#define __NR_futex 240+#define __NR_sched_setaffinity 241+#define __NR_sched_getaffinity 242+#define __NR_io_setup 243+#define __NR_io_destroy 244+#define __NR_io_getevents 245+#define __NR_io_submit 246+#define __NR_io_cancel 247+#define __NR_exit_group 248+#define __NR_lookup_dcookie 249+#define __NR_epoll_create 250+#define __NR_epoll_ctl 251+#define __NR_epoll_wait 252+#define __NR_remap_file_pages 253+#define __NR_set_tid_address 256+#define __NR_timer_create 257+#define __NR_timer_settime32 258+#define __NR_timer_gettime32 259+#define __NR_timer_getoverrun 260+#define __NR_timer_delete 261+#define __NR_clock_settime32 262+#define __NR_clock_gettime32 263+#define __NR_clock_getres_time32 264+#define __NR_clock_nanosleep_time32 265+#define __NR_statfs64 266+#define __NR_fstatfs64 267+#define __NR_tgkill 268+#define __NR_utimes 269+#define __NR_fadvise64_64 270+#define __NR_arm_fadvise64_64 270+#define __NR_pciconfig_iobase 271+#define __NR_pciconfig_read 272+#define __NR_pciconfig_write 273+#define __NR_mq_open 274+#define __NR_mq_unlink 275+#define __NR_mq_timedsend 276+#define __NR_mq_timedreceive 277+#define __NR_mq_notify 278+#define __NR_mq_getsetattr 279+#define __NR_waitid 280+#define __NR_socket 281+#define __NR_bind 282+#define __NR_connect 283+#define __NR_listen 284+#define __NR_accept 285+#define __NR_getsockname 286+#define __NR_getpeername 287+#define __NR_socketpair 288+#define __NR_send 289+#define __NR_sendto 290+#define __NR_recv 291+#define __NR_recvfrom 292+#define __NR_shutdown 293+#define __NR_setsockopt 294+#define __NR_getsockopt 295+#define __NR_sendmsg 296+#define __NR_recvmsg 297+#define __NR_semop 298+#define __NR_semget 299+#define __NR_semctl 300+#define __NR_msgsnd 301+#define __NR_msgrcv 302+#define __NR_msgget 303+#define __NR_msgctl 304+#define __NR_shmat 305+#define __NR_shmdt 306+#define __NR_shmget 307+#define __NR_shmctl 308+#define __NR_add_key 309+#define __NR_request_key 310+#define __NR_keyctl 311+#define __NR_semtimedop 312+#define __NR_vserver 313+#define __NR_ioprio_set 314+#define __NR_ioprio_get 315+#define __NR_inotify_init 316+#define __NR_inotify_add_watch 317+#define __NR_inotify_rm_watch 318+#define __NR_mbind 319+#define __NR_get_mempolicy 320+#define __NR_set_mempolicy 321+#define __NR_openat 322+#define __NR_mkdirat 323+#define __NR_mknodat 324+#define __NR_fchownat 325+#define __NR_futimesat 326+#define __NR_fstatat64 327+#define __NR_unlinkat 328+#define __NR_renameat 329+#define __NR_linkat 330+#define __NR_symlinkat 331+#define __NR_readlinkat 332+#define __NR_fchmodat 333+#define __NR_faccessat 334+#define __NR_pselect6 335+#define __NR_ppoll 336+#define __NR_unshare 337+#define __NR_set_robust_list 338+#define __NR_get_robust_list 339+#define __NR_splice 340+#define __NR_sync_file_range2 341+#define __NR_arm_sync_file_range 341+#define __NR_tee 342+#define __NR_vmsplice 343+#define __NR_move_pages 344+#define __NR_getcpu 345+#define __NR_epoll_pwait 346+#define __NR_kexec_load 347+#define __NR_utimensat 348+#define __NR_signalfd 349+#define __NR_timerfd_create 350+#define __NR_eventfd 351+#define __NR_fallocate 352+#define __NR_timerfd_settime32 353+#define __NR_timerfd_gettime32 354+#define __NR_signalfd4 355+#define __NR_eventfd2 356+#define __NR_epoll_create1 357+#define __NR_dup3 358+#define __NR_pipe2 359+#define __NR_inotify_init1 360+#define __NR_preadv 361+#define __NR_pwritev 362+#define __NR_rt_tgsigqueueinfo 363+#define __NR_perf_event_open 364+#define __NR_recvmmsg 365+#define __NR_accept4 366+#define __NR_fanotify_init 367+#define __NR_fanotify_mark 368+#define __NR_prlimit64 369+#define __NR_name_to_handle_at 370+#define __NR_open_by_handle_at 371+#define __NR_clock_adjtime 372+#define __NR_syncfs 373+#define __NR_sendmmsg 374+#define __NR_setns 375+#define __NR_process_vm_readv 376+#define __NR_process_vm_writev 377+#define __NR_kcmp 378+#define __NR_finit_module 379+#define __NR_sched_setattr 380+#define __NR_sched_getattr 381+#define __NR_renameat2 382+#define __NR_seccomp 383+#define __NR_getrandom 384+#define __NR_memfd_create 385+#define __NR_bpf 386+#define __NR_execveat 387+#define __NR_userfaultfd 388+#define __NR_membarrier 389+#define __NR_mlock2 390+#define __NR_copy_file_range 391+#define __NR_preadv2 392+#define __NR_pwritev2 393+#define __NR_pkey_mprotect 394+#define __NR_pkey_alloc 395+#define __NR_pkey_free 396+#define __NR_statx 397+#define __NR_rseq 398+#define __NR_io_pgetevents 399+#define __NR_migrate_pages 400+#define __NR_kexec_file_load 401+#define __NR_clock_gettime64 403+#define __NR_clock_settime64 404+#define __NR_clock_adjtime64 405+#define __NR_clock_getres_time64 406+#define __NR_clock_nanosleep_time64 407+#define __NR_timer_gettime64 408+#define __NR_timer_settime64 409+#define __NR_timerfd_gettime64 410+#define __NR_timerfd_settime64 411+#define __NR_utimensat_time64 412+#define __NR_pselect6_time64 413+#define __NR_ppoll_time64 414+#define __NR_io_pgetevents_time64 416+#define __NR_recvmmsg_time64 417+#define __NR_mq_timedsend_time64 418+#define __NR_mq_timedreceive_time64 419+#define __NR_semtimedop_time64 420+#define __NR_rt_sigtimedwait_time64 421+#define __NR_futex_time64 422+#define __NR_sched_rr_get_interval_time64 423+#define __NR_pidfd_send_signal 424+#define __NR_io_uring_setup 425+#define __NR_io_uring_enter 426+#define __NR_io_uring_register 427+#define __NR_open_tree 428+#define __NR_move_mount 429+#define __NR_fsopen 430+#define __NR_fsconfig 431+#define __NR_fsmount 432+#define __NR_fspick 433+#define __NR_pidfd_open 434+#define __NR_clone3 435+#define __NR_close_range 436+#define __NR_openat2 437+#define __NR_pidfd_getfd 438+#define __NR_faccessat2 439+#define __NR_process_madvise 440+#define __NR_epoll_pwait2 441+#define __NR_mount_setattr 442+#define __NR_landlock_create_ruleset 444+#define __NR_landlock_add_rule 445+#define __NR_landlock_restrict_self 446+#define __NR_process_mrelease 448+#define __NR_futex_waitv 449+#define __NR_set_mempolicy_home_node 450+#define __NR_cachestat 451+#define __NR_fchmodat2 452++#define __ARM_NR_breakpoint 0x0f0001+#define __ARM_NR_cacheflush 0x0f0002+#define __ARM_NR_usr26 0x0f0003+#define __ARM_NR_usr32 0x0f0004+#define __ARM_NR_set_tls 0x0f0005+#define __ARM_NR_get_tls 0x0f0006++#define SYS_restart_syscall 0+#define SYS_exit 1+#define SYS_fork 2+#define SYS_read 3+#define SYS_write 4+#define SYS_open 5+#define SYS_close 6+#define SYS_creat 8+#define SYS_link 9+#define SYS_unlink 10+#define SYS_execve 11+#define SYS_chdir 12+#define SYS_mknod 14+#define SYS_chmod 15+#define SYS_lchown 16+#define SYS_lseek 19+#define SYS_getpid 20+#define SYS_mount 21+#define SYS_setuid 23+#define SYS_getuid 24+#define SYS_ptrace 26+#define SYS_pause 29+#define SYS_access 33+#define SYS_nice 34+#define SYS_sync 36+#define SYS_kill 37+#define SYS_rename 38+#define SYS_mkdir 39+#define SYS_rmdir 40+#define SYS_dup 41+#define SYS_pipe 42+#define SYS_times 43+#define SYS_brk 45+#define SYS_setgid 46+#define SYS_getgid 47+#define SYS_geteuid 49+#define SYS_getegid 50+#define SYS_acct 51+#define SYS_umount2 52+#define SYS_ioctl 54+#define SYS_fcntl 55+#define SYS_setpgid 57+#define SYS_umask 60+#define SYS_chroot 61+#define SYS_ustat 62+#define SYS_dup2 63+#define SYS_getppid 64+#define SYS_getpgrp 65+#define SYS_setsid 66+#define SYS_sigaction 67+#define SYS_setreuid 70+#define SYS_setregid 71+#define SYS_sigsuspend 72+#define SYS_sigpending 73+#define SYS_sethostname 74+#define SYS_setrlimit 75+#define SYS_getrusage 77+#define SYS_gettimeofday_time32 78+#define SYS_settimeofday_time32 79+#define SYS_getgroups 80+#define SYS_setgroups 81+#define SYS_symlink 83+#define SYS_readlink 85+#define SYS_uselib 86+#define SYS_swapon 87+#define SYS_reboot 88+#define SYS_munmap 91+#define SYS_truncate 92+#define SYS_ftruncate 93+#define SYS_fchmod 94+#define SYS_fchown 95+#define SYS_getpriority 96+#define SYS_setpriority 97+#define SYS_statfs 99+#define SYS_fstatfs 100+#define SYS_syslog 103+#define SYS_setitimer 104+#define SYS_getitimer 105+#define SYS_stat 106+#define SYS_lstat 107+#define SYS_fstat 108+#define SYS_vhangup 111+#define SYS_wait4 114+#define SYS_swapoff 115+#define SYS_sysinfo 116+#define SYS_fsync 118+#define SYS_sigreturn 119+#define SYS_clone 120+#define SYS_setdomainname 121+#define SYS_uname 122+#define SYS_adjtimex 124+#define SYS_mprotect 125+#define SYS_sigprocmask 126+#define SYS_init_module 128+#define SYS_delete_module 129+#define SYS_quotactl 131+#define SYS_getpgid 132+#define SYS_fchdir 133+#define SYS_bdflush 134+#define SYS_sysfs 135+#define SYS_personality 136+#define SYS_setfsuid 138+#define SYS_setfsgid 139+#define SYS__llseek 140+#define SYS_getdents 141+#define SYS__newselect 142+#define SYS_flock 143+#define SYS_msync 144+#define SYS_readv 145+#define SYS_writev 146+#define SYS_getsid 147+#define SYS_fdatasync 148+#define SYS__sysctl 149+#define SYS_mlock 150+#define SYS_munlock 151+#define SYS_mlockall 152+#define SYS_munlockall 153+#define SYS_sched_setparam 154+#define SYS_sched_getparam 155+#define SYS_sched_setscheduler 156+#define SYS_sched_getscheduler 157+#define SYS_sched_yield 158+#define SYS_sched_get_priority_max 159+#define SYS_sched_get_priority_min 160+#define SYS_sched_rr_get_interval 161+#define SYS_nanosleep 162+#define SYS_mremap 163+#define SYS_setresuid 164+#define SYS_getresuid 165+#define SYS_poll 168+#define SYS_nfsservctl 169+#define SYS_setresgid 170+#define SYS_getresgid 171+#define SYS_prctl 172+#define SYS_rt_sigreturn 173+#define SYS_rt_sigaction 174+#define SYS_rt_sigprocmask 175+#define SYS_rt_sigpending 176+#define SYS_rt_sigtimedwait 177+#define SYS_rt_sigqueueinfo 178+#define SYS_rt_sigsuspend 179+#define SYS_pread64 180+#define SYS_pwrite64 181+#define SYS_chown 182+#define SYS_getcwd 183+#define SYS_capget 184+#define SYS_capset 185+#define SYS_sigaltstack 186+#define SYS_sendfile 187+#define SYS_vfork 190+#define SYS_ugetrlimit 191+#define SYS_mmap2 192+#define SYS_truncate64 193+#define SYS_ftruncate64 194+#define SYS_stat64 195+#define SYS_lstat64 196+#define SYS_fstat64 197+#define SYS_lchown32 198+#define SYS_getuid32 199+#define SYS_getgid32 200+#define SYS_geteuid32 201+#define SYS_getegid32 202+#define SYS_setreuid32 203+#define SYS_setregid32 204+#define SYS_getgroups32 205+#define SYS_setgroups32 206+#define SYS_fchown32 207+#define SYS_setresuid32 208+#define SYS_getresuid32 209+#define SYS_setresgid32 210+#define SYS_getresgid32 211+#define SYS_chown32 212+#define SYS_setuid32 213+#define SYS_setgid32 214+#define SYS_setfsuid32 215+#define SYS_setfsgid32 216+#define SYS_getdents64 217+#define SYS_pivot_root 218+#define SYS_mincore 219+#define SYS_madvise 220+#define SYS_fcntl64 221+#define SYS_gettid 224+#define SYS_readahead 225+#define SYS_setxattr 226+#define SYS_lsetxattr 227+#define SYS_fsetxattr 228+#define SYS_getxattr 229+#define SYS_lgetxattr 230+#define SYS_fgetxattr 231+#define SYS_listxattr 232+#define SYS_llistxattr 233+#define SYS_flistxattr 234+#define SYS_removexattr 235+#define SYS_lremovexattr 236+#define SYS_fremovexattr 237+#define SYS_tkill 238+#define SYS_sendfile64 239+#define SYS_futex 240+#define SYS_sched_setaffinity 241+#define SYS_sched_getaffinity 242+#define SYS_io_setup 243+#define SYS_io_destroy 244+#define SYS_io_getevents 245+#define SYS_io_submit 246+#define SYS_io_cancel 247+#define SYS_exit_group 248+#define SYS_lookup_dcookie 249+#define SYS_epoll_create 250+#define SYS_epoll_ctl 251+#define SYS_epoll_wait 252+#define SYS_remap_file_pages 253+#define SYS_set_tid_address 256+#define SYS_timer_create 257+#define SYS_timer_settime32 258+#define SYS_timer_gettime32 259+#define SYS_timer_getoverrun 260+#define SYS_timer_delete 261+#define SYS_clock_settime32 262+#define SYS_clock_gettime32 263+#define SYS_clock_getres_time32 264+#define SYS_clock_nanosleep_time32 265+#define SYS_statfs64 266+#define SYS_fstatfs64 267+#define SYS_tgkill 268+#define SYS_utimes 269+#define SYS_fadvise64_64 270+#define SYS_arm_fadvise64_64 270+#define SYS_pciconfig_iobase 271+#define SYS_pciconfig_read 272+#define SYS_pciconfig_write 273+#define SYS_mq_open 274+#define SYS_mq_unlink 275+#define SYS_mq_timedsend 276+#define SYS_mq_timedreceive 277+#define SYS_mq_notify 278+#define SYS_mq_getsetattr 279+#define SYS_waitid 280+#define SYS_socket 281+#define SYS_bind 282+#define SYS_connect 283+#define SYS_listen 284+#define SYS_accept 285+#define SYS_getsockname 286+#define SYS_getpeername 287+#define SYS_socketpair 288+#define SYS_send 289+#define SYS_sendto 290+#define SYS_recv 291+#define SYS_recvfrom 292+#define SYS_shutdown 293+#define SYS_setsockopt 294+#define SYS_getsockopt 295+#define SYS_sendmsg 296+#define SYS_recvmsg 297+#define SYS_semop 298+#define SYS_semget 299+#define SYS_semctl 300+#define SYS_msgsnd 301+#define SYS_msgrcv 302+#define SYS_msgget 303+#define SYS_msgctl 304+#define SYS_shmat 305+#define SYS_shmdt 306+#define SYS_shmget 307+#define SYS_shmctl 308+#define SYS_add_key 309+#define SYS_request_key 310+#define SYS_keyctl 311+#define SYS_semtimedop 312+#define SYS_vserver 313+#define SYS_ioprio_set 314+#define SYS_ioprio_get 315+#define SYS_inotify_init 316+#define SYS_inotify_add_watch 317+#define SYS_inotify_rm_watch 318+#define SYS_mbind 319+#define SYS_get_mempolicy 320+#define SYS_set_mempolicy 321+#define SYS_openat 322+#define SYS_mkdirat 323+#define SYS_mknodat 324+#define SYS_fchownat 325+#define SYS_futimesat 326+#define SYS_fstatat64 327+#define SYS_unlinkat 328+#define SYS_renameat 329+#define SYS_linkat 330+#define SYS_symlinkat 331+#define SYS_readlinkat 332+#define SYS_fchmodat 333+#define SYS_faccessat 334+#define SYS_pselect6 335+#define SYS_ppoll 336+#define SYS_unshare 337+#define SYS_set_robust_list 338+#define SYS_get_robust_list 339+#define SYS_splice 340+#define SYS_sync_file_range2 341+#define SYS_arm_sync_file_range 341+#define SYS_tee 342+#define SYS_vmsplice 343+#define SYS_move_pages 344+#define SYS_getcpu 345+#define SYS_epoll_pwait 346+#define SYS_kexec_load 347+#define SYS_utimensat 348+#define SYS_signalfd 349+#define SYS_timerfd_create 350+#define SYS_eventfd 351+#define SYS_fallocate 352+#define SYS_timerfd_settime32 353+#define SYS_timerfd_gettime32 354+#define SYS_signalfd4 355+#define SYS_eventfd2 356+#define SYS_epoll_create1 357+#define SYS_dup3 358+#define SYS_pipe2 359+#define SYS_inotify_init1 360+#define SYS_preadv 361+#define SYS_pwritev 362+#define SYS_rt_tgsigqueueinfo 363+#define SYS_perf_event_open 364+#define SYS_recvmmsg 365+#define SYS_accept4 366+#define SYS_fanotify_init 367+#define SYS_fanotify_mark 368+#define SYS_prlimit64 369+#define SYS_name_to_handle_at 370+#define SYS_open_by_handle_at 371+#define SYS_clock_adjtime 372+#define SYS_syncfs 373+#define SYS_sendmmsg 374+#define SYS_setns 375+#define SYS_process_vm_readv 376+#define SYS_process_vm_writev 377+#define SYS_kcmp 378+#define SYS_finit_module 379+#define SYS_sched_setattr 380+#define SYS_sched_getattr 381+#define SYS_renameat2 382+#define SYS_seccomp 383+#define SYS_getrandom 384+#define SYS_memfd_create 385+#define SYS_bpf 386+#define SYS_execveat 387+#define SYS_userfaultfd 388+#define SYS_membarrier 389+#define SYS_mlock2 390+#define SYS_copy_file_range 391+#define SYS_preadv2 392+#define SYS_pwritev2 393+#define SYS_pkey_mprotect 394+#define SYS_pkey_alloc 395+#define SYS_pkey_free 396+#define SYS_statx 397+#define SYS_rseq 398+#define SYS_io_pgetevents 399+#define SYS_migrate_pages 400+#define SYS_kexec_file_load 401+#define SYS_clock_gettime64 403+#define SYS_clock_settime64 404+#define SYS_clock_adjtime64 405+#define SYS_clock_getres_time64 406+#define SYS_clock_nanosleep_time64 407+#define SYS_timer_gettime64 408+#define SYS_timer_settime64 409+#define SYS_timerfd_gettime64 410+#define SYS_timerfd_settime64 411+#define SYS_utimensat_time64 412+#define SYS_pselect6_time64 413+#define SYS_ppoll_time64 414+#define SYS_io_pgetevents_time64 416+#define SYS_recvmmsg_time64 417+#define SYS_mq_timedsend_time64 418+#define SYS_mq_timedreceive_time64 419+#define SYS_semtimedop_time64 420+#define SYS_rt_sigtimedwait_time64 421+#define SYS_futex_time64 422+#define SYS_sched_rr_get_interval_time64 423+#define SYS_pidfd_send_signal 424+#define SYS_io_uring_setup 425+#define SYS_io_uring_enter 426+#define SYS_io_uring_register 427+#define SYS_open_tree 428+#define SYS_move_mount 429+#define SYS_fsopen 430+#define SYS_fsconfig 431+#define SYS_fsmount 432+#define SYS_fspick 433+#define SYS_pidfd_open 434+#define SYS_clone3 435+#define SYS_close_range 436+#define SYS_openat2 437+#define SYS_pidfd_getfd 438+#define SYS_faccessat2 439+#define SYS_process_madvise 440+#define SYS_epoll_pwait2 441+#define SYS_mount_setattr 442+#define SYS_landlock_create_ruleset 444+#define SYS_landlock_add_rule 445+#define SYS_landlock_restrict_self 446+#define SYS_process_mrelease 448+#define SYS_futex_waitv 449+#define SYS_set_mempolicy_home_node 450+#define SYS_cachestat 451+#define SYS_fchmodat2 452
@@ -0,0 +1,166 @@+struct termios {+ tcflag_t c_iflag;+ tcflag_t c_oflag;+ tcflag_t c_cflag;+ tcflag_t c_lflag;+ cc_t c_line;+ cc_t c_cc[NCCS];+ speed_t __c_ispeed;+ speed_t __c_ospeed;+};++#define VINTR 0+#define VQUIT 1+#define VERASE 2+#define VKILL 3+#define VEOF 4+#define VTIME 5+#define VMIN 6+#define VSWTC 7+#define VSTART 8+#define VSTOP 9+#define VSUSP 10+#define VEOL 11+#define VREPRINT 12+#define VDISCARD 13+#define VWERASE 14+#define VLNEXT 15+#define VEOL2 16++#define IGNBRK 0000001+#define BRKINT 0000002+#define IGNPAR 0000004+#define PARMRK 0000010+#define INPCK 0000020+#define ISTRIP 0000040+#define INLCR 0000100+#define IGNCR 0000200+#define ICRNL 0000400+#define IUCLC 0001000+#define IXON 0002000+#define IXANY 0004000+#define IXOFF 0010000+#define IMAXBEL 0020000+#define IUTF8 0040000++#define OPOST 0000001+#define OLCUC 0000002+#define ONLCR 0000004+#define OCRNL 0000010+#define ONOCR 0000020+#define ONLRET 0000040+#define OFILL 0000100+#define OFDEL 0000200+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)+#define NLDLY 0000400+#define NL0 0000000+#define NL1 0000400+#define CRDLY 0003000+#define CR0 0000000+#define CR1 0001000+#define CR2 0002000+#define CR3 0003000+#define TABDLY 0014000+#define TAB0 0000000+#define TAB1 0004000+#define TAB2 0010000+#define TAB3 0014000+#define BSDLY 0020000+#define BS0 0000000+#define BS1 0020000+#define FFDLY 0100000+#define FF0 0000000+#define FF1 0100000+#endif++#define VTDLY 0040000+#define VT0 0000000+#define VT1 0040000++#define B0 0000000+#define B50 0000001+#define B75 0000002+#define B110 0000003+#define B134 0000004+#define B150 0000005+#define B200 0000006+#define B300 0000007+#define B600 0000010+#define B1200 0000011+#define B1800 0000012+#define B2400 0000013+#define B4800 0000014+#define B9600 0000015+#define B19200 0000016+#define B38400 0000017++#define B57600 0010001+#define B115200 0010002+#define B230400 0010003+#define B460800 0010004+#define B500000 0010005+#define B576000 0010006+#define B921600 0010007+#define B1000000 0010010+#define B1152000 0010011+#define B1500000 0010012+#define B2000000 0010013+#define B2500000 0010014+#define B3000000 0010015+#define B3500000 0010016+#define B4000000 0010017++#define CSIZE 0000060+#define CS5 0000000+#define CS6 0000020+#define CS7 0000040+#define CS8 0000060+#define CSTOPB 0000100+#define CREAD 0000200+#define PARENB 0000400+#define PARODD 0001000+#define HUPCL 0002000+#define CLOCAL 0004000++#define ISIG 0000001+#define ICANON 0000002+#define ECHO 0000010+#define ECHOE 0000020+#define ECHOK 0000040+#define ECHONL 0000100+#define NOFLSH 0000200+#define TOSTOP 0000400+#define IEXTEN 0100000++#define TCOOFF 0+#define TCOON 1+#define TCIOFF 2+#define TCION 3++#define TCIFLUSH 0+#define TCOFLUSH 1+#define TCIOFLUSH 2++#define TCSANOW 0+#define TCSADRAIN 1+#define TCSAFLUSH 2++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define EXTA 0000016+#define EXTB 0000017+#define CBAUD 0010017+#define CBAUDEX 0010000+#define CIBAUD 002003600000+#define CMSPAR 010000000000+#define CRTSCTS 020000000000++#define XCASE 0000004+#define ECHOCTL 0001000+#define ECHOPRT 0002000+#define ECHOKE 0004000+#define FLUSHO 0010000+#define PENDIN 0040000+#define EXTPROC 0200000++#define XTABS 0014000+#endif
@@ -0,0 +1,36 @@+typedef struct user_fpregs {+ struct fp_reg {+ unsigned sign1:1;+ unsigned unused:15;+ unsigned sign2:1;+ unsigned exponent:14;+ unsigned j:1;+ unsigned mantissa1:31;+ unsigned mantissa0:32;+ } fpregs[8];+ unsigned fpsr:32;+ unsigned fpcr:32;+ unsigned char ftype[8];+ unsigned int init_flag;+} elf_fpregset_t;++struct user_regs {+ unsigned long uregs[18];+};+#define ELF_NGREG 18+typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];++struct user {+ struct user_regs regs;+ int u_fpvalid;+ unsigned long u_tsize, u_dsize, u_ssize;+ unsigned long start_code, start_stack;+ long signal;+ int reserved;+ struct user_regs *u_ar0;+ unsigned long magic;+ char u_comm[32];+ int u_debugreg[8];+ struct user_fpregs u_fp;+ struct user_fpregs *u_fp0;+};
@@ -0,0 +1,1 @@+#include <linux/vt.h>
@@ -0,0 +1,26 @@+#ifndef _BYTESWAP_H+#define _BYTESWAP_H++#include <features.h>+#include <stdint.h>++static __inline uint16_t __bswap_16(uint16_t __x)+{+ return __x<<8 | __x>>8;+}++static __inline uint32_t __bswap_32(uint32_t __x)+{+ return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;+}++static __inline uint64_t __bswap_64(uint64_t __x)+{+ return __bswap_32(__x)+0ULL<<32 | __bswap_32(__x>>32);+}++#define bswap_16(x) __bswap_16(x)+#define bswap_32(x) __bswap_32(x)+#define bswap_64(x) __bswap_64(x)++#endif
@@ -0,0 +1,133 @@+#ifndef _COMPLEX_H+#define _COMPLEX_H++#ifdef __cplusplus+extern "C" {+#endif++#define complex _Complex+#ifdef __GNUC__+#define _Complex_I (__extension__ (0.0f+1.0fi))+#else+#define _Complex_I (0.0f+1.0fi)+#endif+#define I _Complex_I++double complex cacos(double complex);+float complex cacosf(float complex);+long double complex cacosl(long double complex);++double complex casin(double complex);+float complex casinf(float complex);+long double complex casinl(long double complex);++double complex catan(double complex);+float complex catanf(float complex);+long double complex catanl(long double complex);++double complex ccos(double complex);+float complex ccosf(float complex);+long double complex ccosl(long double complex);++double complex csin(double complex);+float complex csinf(float complex);+long double complex csinl(long double complex);++double complex ctan(double complex);+float complex ctanf(float complex);+long double complex ctanl(long double complex);++double complex cacosh(double complex);+float complex cacoshf(float complex);+long double complex cacoshl(long double complex);++double complex casinh(double complex);+float complex casinhf(float complex);+long double complex casinhl(long double complex);++double complex catanh(double complex);+float complex catanhf(float complex);+long double complex catanhl(long double complex);++double complex ccosh(double complex);+float complex ccoshf(float complex);+long double complex ccoshl(long double complex);++double complex csinh(double complex);+float complex csinhf(float complex);+long double complex csinhl(long double complex);++double complex ctanh(double complex);+float complex ctanhf(float complex);+long double complex ctanhl(long double complex);++double complex cexp(double complex);+float complex cexpf(float complex);+long double complex cexpl(long double complex);++double complex clog(double complex);+float complex clogf(float complex);+long double complex clogl(long double complex);++double cabs(double complex);+float cabsf(float complex);+long double cabsl(long double complex);++double complex cpow(double complex, double complex);+float complex cpowf(float complex, float complex);+long double complex cpowl(long double complex, long double complex);++double complex csqrt(double complex);+float complex csqrtf(float complex);+long double complex csqrtl(long double complex);++double carg(double complex);+float cargf(float complex);+long double cargl(long double complex);++double cimag(double complex);+float cimagf(float complex);+long double cimagl(long double complex);++double complex conj(double complex);+float complex conjf(float complex);+long double complex conjl(long double complex);++double complex cproj(double complex);+float complex cprojf(float complex);+long double complex cprojl(long double complex);++double creal(double complex);+float crealf(float complex);+long double creall(long double complex);++#ifndef __cplusplus+#define __CIMAG(x, t) \+ (+(union { _Complex t __z; t __xy[2]; }){(_Complex t)(x)}.__xy[1])++#define creal(x) ((double)(x))+#define crealf(x) ((float)(x))+#define creall(x) ((long double)(x))++#define cimag(x) __CIMAG(x, double)+#define cimagf(x) __CIMAG(x, float)+#define cimagl(x) __CIMAG(x, long double)+#endif++#if __STDC_VERSION__ >= 201112L+#if defined(_Imaginary_I)+#define __CMPLX(x, y, t) ((t)(x) + _Imaginary_I*(t)(y))+#elif defined(__clang__)+#define __CMPLX(x, y, t) (+(_Complex t){ (t)(x), (t)(y) })+#else+#define __CMPLX(x, y, t) (__builtin_complex((t)(x), (t)(y)))+#endif+#define CMPLX(x, y) __CMPLX(x, y, double)+#define CMPLXF(x, y) __CMPLX(x, y, float)+#define CMPLXL(x, y) __CMPLX(x, y, long double)+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,29 @@+#ifndef _CPIO_H+#define _CPIO_H++#define MAGIC "070707"++#define C_IRUSR 000400+#define C_IWUSR 000200+#define C_IXUSR 000100+#define C_IRGRP 000040+#define C_IWGRP 000020+#define C_IXGRP 000010+#define C_IROTH 000004+#define C_IWOTH 000002+#define C_IXOTH 000001++#define C_ISUID 004000+#define C_ISGID 002000+#define C_ISVTX 001000++#define C_ISBLK 060000+#define C_ISCHR 020000+#define C_ISDIR 040000+#define C_ISFIFO 010000+#define C_ISSOCK 0140000+#define C_ISLNK 0120000+#define C_ISCTG 0110000+#define C_ISREG 0100000++#endif
@@ -0,0 +1,20 @@+#ifndef _CRYPT_H+#define _CRYPT_H++#ifdef __cplusplus+extern "C" {+#endif++struct crypt_data {+ int initialized;+ char __buf[256];+};++char *crypt(const char *, const char *);+char *crypt_r(const char *, const char *, struct crypt_data *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,77 @@+#ifndef _CTYPE_H+#define _CTYPE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++int isalnum(int);+int isalpha(int);+int isblank(int);+int iscntrl(int);+int isdigit(int);+int isgraph(int);+int islower(int);+int isprint(int);+int ispunct(int);+int isspace(int);+int isupper(int);+int isxdigit(int);+int tolower(int);+int toupper(int);++#ifndef __cplusplus+static __inline int __isspace(int _c)+{+ return _c == ' ' || (unsigned)_c-'\t' < 5;+}++#define isalpha(a) (0 ? isalpha(a) : (((unsigned)(a)|32)-'a') < 26)+#define isdigit(a) (0 ? isdigit(a) : ((unsigned)(a)-'0') < 10)+#define islower(a) (0 ? islower(a) : ((unsigned)(a)-'a') < 26)+#define isupper(a) (0 ? isupper(a) : ((unsigned)(a)-'A') < 26)+#define isprint(a) (0 ? isprint(a) : ((unsigned)(a)-0x20) < 0x5f)+#define isgraph(a) (0 ? isgraph(a) : ((unsigned)(a)-0x21) < 0x5e)+#define isspace(a) __isspace(a)+#endif+++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++#define __NEED_locale_t+#include <bits/alltypes.h>++int isalnum_l(int, locale_t);+int isalpha_l(int, locale_t);+int isblank_l(int, locale_t);+int iscntrl_l(int, locale_t);+int isdigit_l(int, locale_t);+int isgraph_l(int, locale_t);+int islower_l(int, locale_t);+int isprint_l(int, locale_t);+int ispunct_l(int, locale_t);+int isspace_l(int, locale_t);+int isupper_l(int, locale_t);+int isxdigit_l(int, locale_t);+int tolower_l(int, locale_t);+int toupper_l(int, locale_t);++int isascii(int);+int toascii(int);+#define _tolower(a) ((a)|0x20)+#define _toupper(a) ((a)&0x5f)+#ifndef __cplusplus+#define isascii(a) (0 ? isascii(a) : (unsigned)(a) < 128)+#endif++#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,75 @@+#ifndef _DIRENT_H+#define _DIRENT_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_ino_t+#define __NEED_off_t+#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+#define __NEED_size_t+#endif++#include <bits/alltypes.h>++#include <bits/dirent.h>++typedef struct __dirstream DIR;++#define d_fileno d_ino++int closedir(DIR *);+DIR *fdopendir(int);+DIR *opendir(const char *);+struct dirent *readdir(DIR *);+int readdir_r(DIR *__restrict, struct dirent *__restrict, struct dirent **__restrict);+void rewinddir(DIR *);+int dirfd(DIR *);++int alphasort(const struct dirent **, const struct dirent **);+int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **));++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+void seekdir(DIR *, long);+long telldir(DIR *);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define DT_UNKNOWN 0+#define DT_FIFO 1+#define DT_CHR 2+#define DT_DIR 4+#define DT_BLK 6+#define DT_REG 8+#define DT_LNK 10+#define DT_SOCK 12+#define DT_WHT 14+#define IFTODT(x) ((x)>>12 & 017)+#define DTTOIF(x) ((x)<<12)+int getdents(int, struct dirent *, size_t);+#endif++#ifdef _GNU_SOURCE+int versionsort(const struct dirent **, const struct dirent **);+#endif++#if defined(_LARGEFILE64_SOURCE)+#define dirent64 dirent+#define readdir64 readdir+#define readdir64_r readdir_r+#define scandir64 scandir+#define alphasort64 alphasort+#define versionsort64 versionsort+#define off64_t off_t+#define ino64_t ino_t+#define getdents64 getdents+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,46 @@+#ifndef _DLFCN_H+#define _DLFCN_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define RTLD_LAZY 1+#define RTLD_NOW 2+#define RTLD_NOLOAD 4+#define RTLD_NODELETE 4096+#define RTLD_GLOBAL 256+#define RTLD_LOCAL 0++#define RTLD_NEXT ((void *)-1)+#define RTLD_DEFAULT ((void *)0)++#define RTLD_DI_LINKMAP 2++int dlclose(void *);+char *dlerror(void);+void *dlopen(const char *, int);+void *dlsym(void *__restrict, const char *__restrict);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+typedef struct {+ const char *dli_fname;+ void *dli_fbase;+ const char *dli_sname;+ void *dli_saddr;+} Dl_info;+int dladdr(const void *, Dl_info *);+int dlinfo(void *, int, void *);+#endif++#if _REDIR_TIME64+__REDIR(dlsym, __dlsym_time64);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,3414 @@+#ifndef _ELF_H+#define _ELF_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>++typedef uint16_t Elf32_Half;+typedef uint16_t Elf64_Half;++typedef uint32_t Elf32_Word;+typedef int32_t Elf32_Sword;+typedef uint32_t Elf64_Word;+typedef int32_t Elf64_Sword;++typedef uint64_t Elf32_Xword;+typedef int64_t Elf32_Sxword;+typedef uint64_t Elf64_Xword;+typedef int64_t Elf64_Sxword;++typedef uint32_t Elf32_Addr;+typedef uint64_t Elf64_Addr;++typedef uint32_t Elf32_Off;+typedef uint64_t Elf64_Off;++typedef uint16_t Elf32_Section;+typedef uint16_t Elf64_Section;++typedef Elf32_Half Elf32_Versym;+typedef Elf64_Half Elf64_Versym;++#define EI_NIDENT (16)++typedef struct {+ unsigned char e_ident[EI_NIDENT];+ Elf32_Half e_type;+ Elf32_Half e_machine;+ Elf32_Word e_version;+ Elf32_Addr e_entry;+ Elf32_Off e_phoff;+ Elf32_Off e_shoff;+ Elf32_Word e_flags;+ Elf32_Half e_ehsize;+ Elf32_Half e_phentsize;+ Elf32_Half e_phnum;+ Elf32_Half e_shentsize;+ Elf32_Half e_shnum;+ Elf32_Half e_shstrndx;+} Elf32_Ehdr;++typedef struct {+ unsigned char e_ident[EI_NIDENT];+ Elf64_Half e_type;+ Elf64_Half e_machine;+ Elf64_Word e_version;+ Elf64_Addr e_entry;+ Elf64_Off e_phoff;+ Elf64_Off e_shoff;+ Elf64_Word e_flags;+ Elf64_Half e_ehsize;+ Elf64_Half e_phentsize;+ Elf64_Half e_phnum;+ Elf64_Half e_shentsize;+ Elf64_Half e_shnum;+ Elf64_Half e_shstrndx;+} Elf64_Ehdr;++#define EI_MAG0 0+#define ELFMAG0 0x7f++#define EI_MAG1 1+#define ELFMAG1 'E'++#define EI_MAG2 2+#define ELFMAG2 'L'++#define EI_MAG3 3+#define ELFMAG3 'F'+++#define ELFMAG "\177ELF"+#define SELFMAG 4++#define EI_CLASS 4+#define ELFCLASSNONE 0+#define ELFCLASS32 1+#define ELFCLASS64 2+#define ELFCLASSNUM 3++#define EI_DATA 5+#define ELFDATANONE 0+#define ELFDATA2LSB 1+#define ELFDATA2MSB 2+#define ELFDATANUM 3++#define EI_VERSION 6+++#define EI_OSABI 7+#define ELFOSABI_NONE 0+#define ELFOSABI_SYSV 0+#define ELFOSABI_HPUX 1+#define ELFOSABI_NETBSD 2+#define ELFOSABI_LINUX 3+#define ELFOSABI_GNU 3+#define ELFOSABI_SOLARIS 6+#define ELFOSABI_AIX 7+#define ELFOSABI_IRIX 8+#define ELFOSABI_FREEBSD 9+#define ELFOSABI_TRU64 10+#define ELFOSABI_MODESTO 11+#define ELFOSABI_OPENBSD 12+#define ELFOSABI_ARM 97+#define ELFOSABI_STANDALONE 255++#define EI_ABIVERSION 8++#define EI_PAD 9++++#define ET_NONE 0+#define ET_REL 1+#define ET_EXEC 2+#define ET_DYN 3+#define ET_CORE 4+#define ET_NUM 5+#define ET_LOOS 0xfe00+#define ET_HIOS 0xfeff+#define ET_LOPROC 0xff00+#define ET_HIPROC 0xffff++++#define EM_NONE 0+#define EM_M32 1+#define EM_SPARC 2+#define EM_386 3+#define EM_68K 4+#define EM_88K 5+#define EM_860 7+#define EM_MIPS 8+#define EM_S370 9+#define EM_MIPS_RS3_LE 10++#define EM_PARISC 15+#define EM_VPP500 17+#define EM_SPARC32PLUS 18+#define EM_960 19+#define EM_PPC 20+#define EM_PPC64 21+#define EM_S390 22++#define EM_V800 36+#define EM_FR20 37+#define EM_RH32 38+#define EM_RCE 39+#define EM_ARM 40+#define EM_FAKE_ALPHA 41+#define EM_SH 42+#define EM_SPARCV9 43+#define EM_TRICORE 44+#define EM_ARC 45+#define EM_H8_300 46+#define EM_H8_300H 47+#define EM_H8S 48+#define EM_H8_500 49+#define EM_IA_64 50+#define EM_MIPS_X 51+#define EM_COLDFIRE 52+#define EM_68HC12 53+#define EM_MMA 54+#define EM_PCP 55+#define EM_NCPU 56+#define EM_NDR1 57+#define EM_STARCORE 58+#define EM_ME16 59+#define EM_ST100 60+#define EM_TINYJ 61+#define EM_X86_64 62+#define EM_PDSP 63++#define EM_FX66 66+#define EM_ST9PLUS 67+#define EM_ST7 68+#define EM_68HC16 69+#define EM_68HC11 70+#define EM_68HC08 71+#define EM_68HC05 72+#define EM_SVX 73+#define EM_ST19 74+#define EM_VAX 75+#define EM_CRIS 76+#define EM_JAVELIN 77+#define EM_FIREPATH 78+#define EM_ZSP 79+#define EM_MMIX 80+#define EM_HUANY 81+#define EM_PRISM 82+#define EM_AVR 83+#define EM_FR30 84+#define EM_D10V 85+#define EM_D30V 86+#define EM_V850 87+#define EM_M32R 88+#define EM_MN10300 89+#define EM_MN10200 90+#define EM_PJ 91+#define EM_OR1K 92+#define EM_OPENRISC 92+#define EM_ARC_A5 93+#define EM_ARC_COMPACT 93+#define EM_XTENSA 94+#define EM_VIDEOCORE 95+#define EM_TMM_GPP 96+#define EM_NS32K 97+#define EM_TPC 98+#define EM_SNP1K 99+#define EM_ST200 100+#define EM_IP2K 101+#define EM_MAX 102+#define EM_CR 103+#define EM_F2MC16 104+#define EM_MSP430 105+#define EM_BLACKFIN 106+#define EM_SE_C33 107+#define EM_SEP 108+#define EM_ARCA 109+#define EM_UNICORE 110+#define EM_EXCESS 111+#define EM_DXP 112+#define EM_ALTERA_NIOS2 113+#define EM_CRX 114+#define EM_XGATE 115+#define EM_C166 116+#define EM_M16C 117+#define EM_DSPIC30F 118+#define EM_CE 119+#define EM_M32C 120+#define EM_TSK3000 131+#define EM_RS08 132+#define EM_SHARC 133+#define EM_ECOG2 134+#define EM_SCORE7 135+#define EM_DSP24 136+#define EM_VIDEOCORE3 137+#define EM_LATTICEMICO32 138+#define EM_SE_C17 139+#define EM_TI_C6000 140+#define EM_TI_C2000 141+#define EM_TI_C5500 142+#define EM_TI_ARP32 143+#define EM_TI_PRU 144+#define EM_MMDSP_PLUS 160+#define EM_CYPRESS_M8C 161+#define EM_R32C 162+#define EM_TRIMEDIA 163+#define EM_QDSP6 164+#define EM_8051 165+#define EM_STXP7X 166+#define EM_NDS32 167+#define EM_ECOG1X 168+#define EM_MAXQ30 169+#define EM_XIMO16 170+#define EM_MANIK 171+#define EM_CRAYNV2 172+#define EM_RX 173+#define EM_METAG 174+#define EM_MCST_ELBRUS 175+#define EM_ECOG16 176+#define EM_CR16 177+#define EM_ETPU 178+#define EM_SLE9X 179+#define EM_L10M 180+#define EM_K10M 181+#define EM_AARCH64 183+#define EM_AVR32 185+#define EM_STM8 186+#define EM_TILE64 187+#define EM_TILEPRO 188+#define EM_MICROBLAZE 189+#define EM_CUDA 190+#define EM_TILEGX 191+#define EM_CLOUDSHIELD 192+#define EM_COREA_1ST 193+#define EM_COREA_2ND 194+#define EM_ARC_COMPACT2 195+#define EM_OPEN8 196+#define EM_RL78 197+#define EM_VIDEOCORE5 198+#define EM_78KOR 199+#define EM_56800EX 200+#define EM_BA1 201+#define EM_BA2 202+#define EM_XCORE 203+#define EM_MCHP_PIC 204+#define EM_KM32 210+#define EM_KMX32 211+#define EM_EMX16 212+#define EM_EMX8 213+#define EM_KVARC 214+#define EM_CDP 215+#define EM_COGE 216+#define EM_COOL 217+#define EM_NORC 218+#define EM_CSR_KALIMBA 219+#define EM_Z80 220+#define EM_VISIUM 221+#define EM_FT32 222+#define EM_MOXIE 223+#define EM_AMDGPU 224+#define EM_RISCV 243+#define EM_BPF 247+#define EM_CSKY 252+#define EM_LOONGARCH 258+#define EM_NUM 259++#define EM_ALPHA 0x9026++#define EV_NONE 0+#define EV_CURRENT 1+#define EV_NUM 2++typedef struct {+ Elf32_Word sh_name;+ Elf32_Word sh_type;+ Elf32_Word sh_flags;+ Elf32_Addr sh_addr;+ Elf32_Off sh_offset;+ Elf32_Word sh_size;+ Elf32_Word sh_link;+ Elf32_Word sh_info;+ Elf32_Word sh_addralign;+ Elf32_Word sh_entsize;+} Elf32_Shdr;++typedef struct {+ Elf64_Word sh_name;+ Elf64_Word sh_type;+ Elf64_Xword sh_flags;+ Elf64_Addr sh_addr;+ Elf64_Off sh_offset;+ Elf64_Xword sh_size;+ Elf64_Word sh_link;+ Elf64_Word sh_info;+ Elf64_Xword sh_addralign;+ Elf64_Xword sh_entsize;+} Elf64_Shdr;++++#define SHN_UNDEF 0+#define SHN_LORESERVE 0xff00+#define SHN_LOPROC 0xff00+#define SHN_BEFORE 0xff00++#define SHN_AFTER 0xff01++#define SHN_HIPROC 0xff1f+#define SHN_LOOS 0xff20+#define SHN_HIOS 0xff3f+#define SHN_ABS 0xfff1+#define SHN_COMMON 0xfff2+#define SHN_XINDEX 0xffff+#define SHN_HIRESERVE 0xffff++++#define SHT_NULL 0+#define SHT_PROGBITS 1+#define SHT_SYMTAB 2+#define SHT_STRTAB 3+#define SHT_RELA 4+#define SHT_HASH 5+#define SHT_DYNAMIC 6+#define SHT_NOTE 7+#define SHT_NOBITS 8+#define SHT_REL 9+#define SHT_SHLIB 10+#define SHT_DYNSYM 11+#define SHT_INIT_ARRAY 14+#define SHT_FINI_ARRAY 15+#define SHT_PREINIT_ARRAY 16+#define SHT_GROUP 17+#define SHT_SYMTAB_SHNDX 18+#define SHT_RELR 19+#define SHT_NUM 20+#define SHT_LOOS 0x60000000+#define SHT_GNU_ATTRIBUTES 0x6ffffff5+#define SHT_GNU_HASH 0x6ffffff6+#define SHT_GNU_LIBLIST 0x6ffffff7+#define SHT_CHECKSUM 0x6ffffff8+#define SHT_LOSUNW 0x6ffffffa+#define SHT_SUNW_move 0x6ffffffa+#define SHT_SUNW_COMDAT 0x6ffffffb+#define SHT_SUNW_syminfo 0x6ffffffc+#define SHT_GNU_verdef 0x6ffffffd+#define SHT_GNU_verneed 0x6ffffffe+#define SHT_GNU_versym 0x6fffffff+#define SHT_HISUNW 0x6fffffff+#define SHT_HIOS 0x6fffffff+#define SHT_LOPROC 0x70000000+#define SHT_HIPROC 0x7fffffff+#define SHT_LOUSER 0x80000000+#define SHT_HIUSER 0x8fffffff++#define SHF_WRITE (1 << 0)+#define SHF_ALLOC (1 << 1)+#define SHF_EXECINSTR (1 << 2)+#define SHF_MERGE (1 << 4)+#define SHF_STRINGS (1 << 5)+#define SHF_INFO_LINK (1 << 6)+#define SHF_LINK_ORDER (1 << 7)+#define SHF_OS_NONCONFORMING (1 << 8)++#define SHF_GROUP (1 << 9)+#define SHF_TLS (1 << 10)+#define SHF_COMPRESSED (1 << 11)+#define SHF_MASKOS 0x0ff00000+#define SHF_MASKPROC 0xf0000000+#define SHF_ORDERED (1 << 30)+#define SHF_EXCLUDE (1U << 31)++typedef struct {+ Elf32_Word ch_type;+ Elf32_Word ch_size;+ Elf32_Word ch_addralign;+} Elf32_Chdr;++typedef struct {+ Elf64_Word ch_type;+ Elf64_Word ch_reserved;+ Elf64_Xword ch_size;+ Elf64_Xword ch_addralign;+} Elf64_Chdr;++#define ELFCOMPRESS_ZLIB 1+#define ELFCOMPRESS_ZSTD 2+#define ELFCOMPRESS_LOOS 0x60000000+#define ELFCOMPRESS_HIOS 0x6fffffff+#define ELFCOMPRESS_LOPROC 0x70000000+#define ELFCOMPRESS_HIPROC 0x7fffffff+++#define GRP_COMDAT 0x1++typedef struct {+ Elf32_Word st_name;+ Elf32_Addr st_value;+ Elf32_Word st_size;+ unsigned char st_info;+ unsigned char st_other;+ Elf32_Section st_shndx;+} Elf32_Sym;++typedef struct {+ Elf64_Word st_name;+ unsigned char st_info;+ unsigned char st_other;+ Elf64_Section st_shndx;+ Elf64_Addr st_value;+ Elf64_Xword st_size;+} Elf64_Sym;++typedef struct {+ Elf32_Half si_boundto;+ Elf32_Half si_flags;+} Elf32_Syminfo;++typedef struct {+ Elf64_Half si_boundto;+ Elf64_Half si_flags;+} Elf64_Syminfo;++#define SYMINFO_BT_SELF 0xffff+#define SYMINFO_BT_PARENT 0xfffe+#define SYMINFO_BT_LOWRESERVE 0xff00++#define SYMINFO_FLG_DIRECT 0x0001+#define SYMINFO_FLG_PASSTHRU 0x0002+#define SYMINFO_FLG_COPY 0x0004+#define SYMINFO_FLG_LAZYLOAD 0x0008++#define SYMINFO_NONE 0+#define SYMINFO_CURRENT 1+#define SYMINFO_NUM 2++#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)+#define ELF32_ST_TYPE(val) ((val) & 0xf)+#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))++#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)+#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)+#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))++#define STB_LOCAL 0+#define STB_GLOBAL 1+#define STB_WEAK 2+#define STB_NUM 3+#define STB_LOOS 10+#define STB_GNU_UNIQUE 10+#define STB_HIOS 12+#define STB_LOPROC 13+#define STB_HIPROC 15++#define STT_NOTYPE 0+#define STT_OBJECT 1+#define STT_FUNC 2+#define STT_SECTION 3+#define STT_FILE 4+#define STT_COMMON 5+#define STT_TLS 6+#define STT_NUM 7+#define STT_LOOS 10+#define STT_GNU_IFUNC 10+#define STT_HIOS 12+#define STT_LOPROC 13+#define STT_HIPROC 15++#define STN_UNDEF 0++#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)+#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)++#define STV_DEFAULT 0+#define STV_INTERNAL 1+#define STV_HIDDEN 2+#define STV_PROTECTED 3+++++typedef struct {+ Elf32_Addr r_offset;+ Elf32_Word r_info;+} Elf32_Rel;++typedef struct {+ Elf64_Addr r_offset;+ Elf64_Xword r_info;+} Elf64_Rel;++++typedef struct {+ Elf32_Addr r_offset;+ Elf32_Word r_info;+ Elf32_Sword r_addend;+} Elf32_Rela;++typedef struct {+ Elf64_Addr r_offset;+ Elf64_Xword r_info;+ Elf64_Sxword r_addend;+} Elf64_Rela;++++typedef Elf32_Word Elf32_Relr;+typedef Elf64_Xword Elf64_Relr;++++#define ELF32_R_SYM(val) ((val) >> 8)+#define ELF32_R_TYPE(val) ((val) & 0xff)+#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))++#define ELF64_R_SYM(i) ((i) >> 32)+#define ELF64_R_TYPE(i) ((i) & 0xffffffff)+#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))++++typedef struct {+ Elf32_Word p_type;+ Elf32_Off p_offset;+ Elf32_Addr p_vaddr;+ Elf32_Addr p_paddr;+ Elf32_Word p_filesz;+ Elf32_Word p_memsz;+ Elf32_Word p_flags;+ Elf32_Word p_align;+} Elf32_Phdr;++typedef struct {+ Elf64_Word p_type;+ Elf64_Word p_flags;+ Elf64_Off p_offset;+ Elf64_Addr p_vaddr;+ Elf64_Addr p_paddr;+ Elf64_Xword p_filesz;+ Elf64_Xword p_memsz;+ Elf64_Xword p_align;+} Elf64_Phdr;++++#define PT_NULL 0+#define PT_LOAD 1+#define PT_DYNAMIC 2+#define PT_INTERP 3+#define PT_NOTE 4+#define PT_SHLIB 5+#define PT_PHDR 6+#define PT_TLS 7+#define PT_NUM 8+#define PT_LOOS 0x60000000+#define PT_GNU_EH_FRAME 0x6474e550+#define PT_GNU_STACK 0x6474e551+#define PT_GNU_RELRO 0x6474e552+#define PT_GNU_PROPERTY 0x6474e553+#define PT_LOSUNW 0x6ffffffa+#define PT_SUNWBSS 0x6ffffffa+#define PT_SUNWSTACK 0x6ffffffb+#define PT_HISUNW 0x6fffffff+#define PT_HIOS 0x6fffffff+#define PT_LOPROC 0x70000000+#define PT_HIPROC 0x7fffffff+++#define PN_XNUM 0xffff+++#define PF_X (1 << 0)+#define PF_W (1 << 1)+#define PF_R (1 << 2)+#define PF_MASKOS 0x0ff00000+#define PF_MASKPROC 0xf0000000++++#define NT_PRSTATUS 1+#define NT_PRFPREG 2+#define NT_FPREGSET 2+#define NT_PRPSINFO 3+#define NT_PRXREG 4+#define NT_TASKSTRUCT 4+#define NT_PLATFORM 5+#define NT_AUXV 6+#define NT_GWINDOWS 7+#define NT_ASRS 8+#define NT_PSTATUS 10+#define NT_PSINFO 13+#define NT_PRCRED 14+#define NT_UTSNAME 15+#define NT_LWPSTATUS 16+#define NT_LWPSINFO 17+#define NT_PRFPXREG 20+#define NT_SIGINFO 0x53494749+#define NT_FILE 0x46494c45+#define NT_PRXFPREG 0x46e62b7f+#define NT_PPC_VMX 0x100+#define NT_PPC_SPE 0x101+#define NT_PPC_VSX 0x102+#define NT_PPC_TAR 0x103+#define NT_PPC_PPR 0x104+#define NT_PPC_DSCR 0x105+#define NT_PPC_EBB 0x106+#define NT_PPC_PMU 0x107+#define NT_PPC_TM_CGPR 0x108+#define NT_PPC_TM_CFPR 0x109+#define NT_PPC_TM_CVMX 0x10a+#define NT_PPC_TM_CVSX 0x10b+#define NT_PPC_TM_SPR 0x10c+#define NT_PPC_TM_CTAR 0x10d+#define NT_PPC_TM_CPPR 0x10e+#define NT_PPC_TM_CDSCR 0x10f+#define NT_386_TLS 0x200+#define NT_386_IOPERM 0x201+#define NT_X86_XSTATE 0x202+#define NT_S390_HIGH_GPRS 0x300+#define NT_S390_TIMER 0x301+#define NT_S390_TODCMP 0x302+#define NT_S390_TODPREG 0x303+#define NT_S390_CTRS 0x304+#define NT_S390_PREFIX 0x305+#define NT_S390_LAST_BREAK 0x306+#define NT_S390_SYSTEM_CALL 0x307+#define NT_S390_TDB 0x308+#define NT_S390_VXRS_LOW 0x309+#define NT_S390_VXRS_HIGH 0x30a+#define NT_S390_GS_CB 0x30b+#define NT_S390_GS_BC 0x30c+#define NT_S390_RI_CB 0x30d+#define NT_ARM_VFP 0x400+#define NT_ARM_TLS 0x401+#define NT_ARM_HW_BREAK 0x402+#define NT_ARM_HW_WATCH 0x403+#define NT_ARM_SYSTEM_CALL 0x404+#define NT_ARM_SVE 0x405+#define NT_ARM_PAC_MASK 0x406+#define NT_ARM_PACA_KEYS 0x407+#define NT_ARM_PACG_KEYS 0x408+#define NT_ARM_TAGGED_ADDR_CTRL 0x409+#define NT_ARM_PAC_ENABLED_KEYS 0x40a+#define NT_METAG_CBUF 0x500+#define NT_METAG_RPIPE 0x501+#define NT_METAG_TLS 0x502+#define NT_ARC_V2 0x600+#define NT_VMCOREDD 0x700+#define NT_MIPS_DSP 0x800+#define NT_MIPS_FP_MODE 0x801+#define NT_MIPS_MSA 0x802+#define NT_RISCV_CSR 0x900+#define NT_RISCV_VECTOR 0x901+#define NT_VERSION 1+#define NT_LOONGARCH_CPUCFG 0xa00+#define NT_LOONGARCH_CSR 0xa01+#define NT_LOONGARCH_LSX 0xa02+#define NT_LOONGARCH_LASX 0xa03+#define NT_LOONGARCH_LBT 0xa04+++++typedef struct {+ Elf32_Sword d_tag;+ union {+ Elf32_Word d_val;+ Elf32_Addr d_ptr;+ } d_un;+} Elf32_Dyn;++typedef struct {+ Elf64_Sxword d_tag;+ union {+ Elf64_Xword d_val;+ Elf64_Addr d_ptr;+ } d_un;+} Elf64_Dyn;++++#define DT_NULL 0+#define DT_NEEDED 1+#define DT_PLTRELSZ 2+#define DT_PLTGOT 3+#define DT_HASH 4+#define DT_STRTAB 5+#define DT_SYMTAB 6+#define DT_RELA 7+#define DT_RELASZ 8+#define DT_RELAENT 9+#define DT_STRSZ 10+#define DT_SYMENT 11+#define DT_INIT 12+#define DT_FINI 13+#define DT_SONAME 14+#define DT_RPATH 15+#define DT_SYMBOLIC 16+#define DT_REL 17+#define DT_RELSZ 18+#define DT_RELENT 19+#define DT_PLTREL 20+#define DT_DEBUG 21+#define DT_TEXTREL 22+#define DT_JMPREL 23+#define DT_BIND_NOW 24+#define DT_INIT_ARRAY 25+#define DT_FINI_ARRAY 26+#define DT_INIT_ARRAYSZ 27+#define DT_FINI_ARRAYSZ 28+#define DT_RUNPATH 29+#define DT_FLAGS 30+#define DT_ENCODING 32+#define DT_PREINIT_ARRAY 32+#define DT_PREINIT_ARRAYSZ 33+#define DT_SYMTAB_SHNDX 34+#define DT_RELRSZ 35+#define DT_RELR 36+#define DT_RELRENT 37+#define DT_NUM 38+#define DT_LOOS 0x6000000d+#define DT_HIOS 0x6ffff000+#define DT_LOPROC 0x70000000+#define DT_HIPROC 0x7fffffff+#define DT_PROCNUM DT_MIPS_NUM++#define DT_VALRNGLO 0x6ffffd00+#define DT_GNU_PRELINKED 0x6ffffdf5+#define DT_GNU_CONFLICTSZ 0x6ffffdf6+#define DT_GNU_LIBLISTSZ 0x6ffffdf7+#define DT_CHECKSUM 0x6ffffdf8+#define DT_PLTPADSZ 0x6ffffdf9+#define DT_MOVEENT 0x6ffffdfa+#define DT_MOVESZ 0x6ffffdfb+#define DT_FEATURE_1 0x6ffffdfc+#define DT_POSFLAG_1 0x6ffffdfd++#define DT_SYMINSZ 0x6ffffdfe+#define DT_SYMINENT 0x6ffffdff+#define DT_VALRNGHI 0x6ffffdff+#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag))+#define DT_VALNUM 12++#define DT_ADDRRNGLO 0x6ffffe00+#define DT_GNU_HASH 0x6ffffef5+#define DT_TLSDESC_PLT 0x6ffffef6+#define DT_TLSDESC_GOT 0x6ffffef7+#define DT_GNU_CONFLICT 0x6ffffef8+#define DT_GNU_LIBLIST 0x6ffffef9+#define DT_CONFIG 0x6ffffefa+#define DT_DEPAUDIT 0x6ffffefb+#define DT_AUDIT 0x6ffffefc+#define DT_PLTPAD 0x6ffffefd+#define DT_MOVETAB 0x6ffffefe+#define DT_SYMINFO 0x6ffffeff+#define DT_ADDRRNGHI 0x6ffffeff+#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag))+#define DT_ADDRNUM 11++++#define DT_VERSYM 0x6ffffff0++#define DT_RELACOUNT 0x6ffffff9+#define DT_RELCOUNT 0x6ffffffa+++#define DT_FLAGS_1 0x6ffffffb+#define DT_VERDEF 0x6ffffffc++#define DT_VERDEFNUM 0x6ffffffd+#define DT_VERNEED 0x6ffffffe++#define DT_VERNEEDNUM 0x6fffffff+#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))+#define DT_VERSIONTAGNUM 16++++#define DT_AUXILIARY 0x7ffffffd+#define DT_FILTER 0x7fffffff+#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)+#define DT_EXTRANUM 3+++#define DF_ORIGIN 0x00000001+#define DF_SYMBOLIC 0x00000002+#define DF_TEXTREL 0x00000004+#define DF_BIND_NOW 0x00000008+#define DF_STATIC_TLS 0x00000010++++#define DF_1_NOW 0x00000001+#define DF_1_GLOBAL 0x00000002+#define DF_1_GROUP 0x00000004+#define DF_1_NODELETE 0x00000008+#define DF_1_LOADFLTR 0x00000010+#define DF_1_INITFIRST 0x00000020+#define DF_1_NOOPEN 0x00000040+#define DF_1_ORIGIN 0x00000080+#define DF_1_DIRECT 0x00000100+#define DF_1_TRANS 0x00000200+#define DF_1_INTERPOSE 0x00000400+#define DF_1_NODEFLIB 0x00000800+#define DF_1_NODUMP 0x00001000+#define DF_1_CONFALT 0x00002000+#define DF_1_ENDFILTEE 0x00004000+#define DF_1_DISPRELDNE 0x00008000+#define DF_1_DISPRELPND 0x00010000+#define DF_1_NODIRECT 0x00020000+#define DF_1_IGNMULDEF 0x00040000+#define DF_1_NOKSYMS 0x00080000+#define DF_1_NOHDR 0x00100000+#define DF_1_EDITED 0x00200000+#define DF_1_NORELOC 0x00400000+#define DF_1_SYMINTPOSE 0x00800000+#define DF_1_GLOBAUDIT 0x01000000+#define DF_1_SINGLETON 0x02000000+#define DF_1_STUB 0x04000000+#define DF_1_PIE 0x08000000++#define DTF_1_PARINIT 0x00000001+#define DTF_1_CONFEXP 0x00000002+++#define DF_P1_LAZYLOAD 0x00000001+#define DF_P1_GROUPPERM 0x00000002+++++typedef struct {+ Elf32_Half vd_version;+ Elf32_Half vd_flags;+ Elf32_Half vd_ndx;+ Elf32_Half vd_cnt;+ Elf32_Word vd_hash;+ Elf32_Word vd_aux;+ Elf32_Word vd_next;+} Elf32_Verdef;++typedef struct {+ Elf64_Half vd_version;+ Elf64_Half vd_flags;+ Elf64_Half vd_ndx;+ Elf64_Half vd_cnt;+ Elf64_Word vd_hash;+ Elf64_Word vd_aux;+ Elf64_Word vd_next;+} Elf64_Verdef;++++#define VER_DEF_NONE 0+#define VER_DEF_CURRENT 1+#define VER_DEF_NUM 2+++#define VER_FLG_BASE 0x1+#define VER_FLG_WEAK 0x2+++#define VER_NDX_LOCAL 0+#define VER_NDX_GLOBAL 1+#define VER_NDX_LORESERVE 0xff00+#define VER_NDX_ELIMINATE 0xff01++++typedef struct {+ Elf32_Word vda_name;+ Elf32_Word vda_next;+} Elf32_Verdaux;++typedef struct {+ Elf64_Word vda_name;+ Elf64_Word vda_next;+} Elf64_Verdaux;+++++typedef struct {+ Elf32_Half vn_version;+ Elf32_Half vn_cnt;+ Elf32_Word vn_file;+ Elf32_Word vn_aux;+ Elf32_Word vn_next;+} Elf32_Verneed;++typedef struct {+ Elf64_Half vn_version;+ Elf64_Half vn_cnt;+ Elf64_Word vn_file;+ Elf64_Word vn_aux;+ Elf64_Word vn_next;+} Elf64_Verneed;++++#define VER_NEED_NONE 0+#define VER_NEED_CURRENT 1+#define VER_NEED_NUM 2++++typedef struct {+ Elf32_Word vna_hash;+ Elf32_Half vna_flags;+ Elf32_Half vna_other;+ Elf32_Word vna_name;+ Elf32_Word vna_next;+} Elf32_Vernaux;++typedef struct {+ Elf64_Word vna_hash;+ Elf64_Half vna_flags;+ Elf64_Half vna_other;+ Elf64_Word vna_name;+ Elf64_Word vna_next;+} Elf64_Vernaux;++++#define VER_FLG_WEAK 0x2++++typedef struct {+ uint32_t a_type;+ union {+ uint32_t a_val;+ } a_un;+} Elf32_auxv_t;++typedef struct {+ uint64_t a_type;+ union {+ uint64_t a_val;+ } a_un;+} Elf64_auxv_t;++++#define AT_NULL 0+#define AT_IGNORE 1+#define AT_EXECFD 2+#define AT_PHDR 3+#define AT_PHENT 4+#define AT_PHNUM 5+#define AT_PAGESZ 6+#define AT_BASE 7+#define AT_FLAGS 8+#define AT_ENTRY 9+#define AT_NOTELF 10+#define AT_UID 11+#define AT_EUID 12+#define AT_GID 13+#define AT_EGID 14+#define AT_CLKTCK 17+++#define AT_PLATFORM 15+#define AT_HWCAP 16+++++#define AT_FPUCW 18+++#define AT_DCACHEBSIZE 19+#define AT_ICACHEBSIZE 20+#define AT_UCACHEBSIZE 21++++#define AT_IGNOREPPC 22++#define AT_SECURE 23++#define AT_BASE_PLATFORM 24++#define AT_RANDOM 25++#define AT_HWCAP2 26++#define AT_EXECFN 31++++#define AT_SYSINFO 32+#define AT_SYSINFO_EHDR 33++++#define AT_L1I_CACHESHAPE 34+#define AT_L1D_CACHESHAPE 35+#define AT_L2_CACHESHAPE 36+#define AT_L3_CACHESHAPE 37++#define AT_L1I_CACHESIZE 40+#define AT_L1I_CACHEGEOMETRY 41+#define AT_L1D_CACHESIZE 42+#define AT_L1D_CACHEGEOMETRY 43+#define AT_L2_CACHESIZE 44+#define AT_L2_CACHEGEOMETRY 45+#define AT_L3_CACHESIZE 46+#define AT_L3_CACHEGEOMETRY 47++#define AT_MINSIGSTKSZ 51+++typedef struct {+ Elf32_Word n_namesz;+ Elf32_Word n_descsz;+ Elf32_Word n_type;+} Elf32_Nhdr;++typedef struct {+ Elf64_Word n_namesz;+ Elf64_Word n_descsz;+ Elf64_Word n_type;+} Elf64_Nhdr;+++++#define ELF_NOTE_SOLARIS "SUNW Solaris"+++#define ELF_NOTE_GNU "GNU"++++++#define ELF_NOTE_PAGESIZE_HINT 1+++#define NT_GNU_ABI_TAG 1+#define ELF_NOTE_ABI NT_GNU_ABI_TAG++++#define ELF_NOTE_OS_LINUX 0+#define ELF_NOTE_OS_GNU 1+#define ELF_NOTE_OS_SOLARIS2 2+#define ELF_NOTE_OS_FREEBSD 3++#define NT_GNU_BUILD_ID 3+#define NT_GNU_GOLD_VERSION 4+#define NT_GNU_PROPERTY_TYPE_0 5++++typedef struct {+ Elf32_Xword m_value;+ Elf32_Word m_info;+ Elf32_Word m_poffset;+ Elf32_Half m_repeat;+ Elf32_Half m_stride;+} Elf32_Move;++typedef struct {+ Elf64_Xword m_value;+ Elf64_Xword m_info;+ Elf64_Xword m_poffset;+ Elf64_Half m_repeat;+ Elf64_Half m_stride;+} Elf64_Move;+++#define ELF32_M_SYM(info) ((info) >> 8)+#define ELF32_M_SIZE(info) ((unsigned char) (info))+#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))++#define ELF64_M_SYM(info) ELF32_M_SYM (info)+#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)+#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)++#define EF_CPU32 0x00810000++#define R_68K_NONE 0+#define R_68K_32 1+#define R_68K_16 2+#define R_68K_8 3+#define R_68K_PC32 4+#define R_68K_PC16 5+#define R_68K_PC8 6+#define R_68K_GOT32 7+#define R_68K_GOT16 8+#define R_68K_GOT8 9+#define R_68K_GOT32O 10+#define R_68K_GOT16O 11+#define R_68K_GOT8O 12+#define R_68K_PLT32 13+#define R_68K_PLT16 14+#define R_68K_PLT8 15+#define R_68K_PLT32O 16+#define R_68K_PLT16O 17+#define R_68K_PLT8O 18+#define R_68K_COPY 19+#define R_68K_GLOB_DAT 20+#define R_68K_JMP_SLOT 21+#define R_68K_RELATIVE 22+#define R_68K_TLS_GD32 25+#define R_68K_TLS_GD16 26+#define R_68K_TLS_GD8 27+#define R_68K_TLS_LDM32 28+#define R_68K_TLS_LDM16 29+#define R_68K_TLS_LDM8 30+#define R_68K_TLS_LDO32 31+#define R_68K_TLS_LDO16 32+#define R_68K_TLS_LDO8 33+#define R_68K_TLS_IE32 34+#define R_68K_TLS_IE16 35+#define R_68K_TLS_IE8 36+#define R_68K_TLS_LE32 37+#define R_68K_TLS_LE16 38+#define R_68K_TLS_LE8 39+#define R_68K_TLS_DTPMOD32 40+#define R_68K_TLS_DTPREL32 41+#define R_68K_TLS_TPREL32 42+#define R_68K_NUM 43++#define R_386_NONE 0+#define R_386_32 1+#define R_386_PC32 2+#define R_386_GOT32 3+#define R_386_PLT32 4+#define R_386_COPY 5+#define R_386_GLOB_DAT 6+#define R_386_JMP_SLOT 7+#define R_386_RELATIVE 8+#define R_386_GOTOFF 9+#define R_386_GOTPC 10+#define R_386_32PLT 11+#define R_386_TLS_TPOFF 14+#define R_386_TLS_IE 15+#define R_386_TLS_GOTIE 16+#define R_386_TLS_LE 17+#define R_386_TLS_GD 18+#define R_386_TLS_LDM 19+#define R_386_16 20+#define R_386_PC16 21+#define R_386_8 22+#define R_386_PC8 23+#define R_386_TLS_GD_32 24+#define R_386_TLS_GD_PUSH 25+#define R_386_TLS_GD_CALL 26+#define R_386_TLS_GD_POP 27+#define R_386_TLS_LDM_32 28+#define R_386_TLS_LDM_PUSH 29+#define R_386_TLS_LDM_CALL 30+#define R_386_TLS_LDM_POP 31+#define R_386_TLS_LDO_32 32+#define R_386_TLS_IE_32 33+#define R_386_TLS_LE_32 34+#define R_386_TLS_DTPMOD32 35+#define R_386_TLS_DTPOFF32 36+#define R_386_TLS_TPOFF32 37+#define R_386_SIZE32 38+#define R_386_TLS_GOTDESC 39+#define R_386_TLS_DESC_CALL 40+#define R_386_TLS_DESC 41+#define R_386_IRELATIVE 42+#define R_386_GOT32X 43+#define R_386_NUM 44++++++#define STT_SPARC_REGISTER 13++++#define EF_SPARCV9_MM 3+#define EF_SPARCV9_TSO 0+#define EF_SPARCV9_PSO 1+#define EF_SPARCV9_RMO 2+#define EF_SPARC_LEDATA 0x800000+#define EF_SPARC_EXT_MASK 0xFFFF00+#define EF_SPARC_32PLUS 0x000100+#define EF_SPARC_SUN_US1 0x000200+#define EF_SPARC_HAL_R1 0x000400+#define EF_SPARC_SUN_US3 0x000800++++#define R_SPARC_NONE 0+#define R_SPARC_8 1+#define R_SPARC_16 2+#define R_SPARC_32 3+#define R_SPARC_DISP8 4+#define R_SPARC_DISP16 5+#define R_SPARC_DISP32 6+#define R_SPARC_WDISP30 7+#define R_SPARC_WDISP22 8+#define R_SPARC_HI22 9+#define R_SPARC_22 10+#define R_SPARC_13 11+#define R_SPARC_LO10 12+#define R_SPARC_GOT10 13+#define R_SPARC_GOT13 14+#define R_SPARC_GOT22 15+#define R_SPARC_PC10 16+#define R_SPARC_PC22 17+#define R_SPARC_WPLT30 18+#define R_SPARC_COPY 19+#define R_SPARC_GLOB_DAT 20+#define R_SPARC_JMP_SLOT 21+#define R_SPARC_RELATIVE 22+#define R_SPARC_UA32 23++++#define R_SPARC_PLT32 24+#define R_SPARC_HIPLT22 25+#define R_SPARC_LOPLT10 26+#define R_SPARC_PCPLT32 27+#define R_SPARC_PCPLT22 28+#define R_SPARC_PCPLT10 29+#define R_SPARC_10 30+#define R_SPARC_11 31+#define R_SPARC_64 32+#define R_SPARC_OLO10 33+#define R_SPARC_HH22 34+#define R_SPARC_HM10 35+#define R_SPARC_LM22 36+#define R_SPARC_PC_HH22 37+#define R_SPARC_PC_HM10 38+#define R_SPARC_PC_LM22 39+#define R_SPARC_WDISP16 40+#define R_SPARC_WDISP19 41+#define R_SPARC_GLOB_JMP 42+#define R_SPARC_7 43+#define R_SPARC_5 44+#define R_SPARC_6 45+#define R_SPARC_DISP64 46+#define R_SPARC_PLT64 47+#define R_SPARC_HIX22 48+#define R_SPARC_LOX10 49+#define R_SPARC_H44 50+#define R_SPARC_M44 51+#define R_SPARC_L44 52+#define R_SPARC_REGISTER 53+#define R_SPARC_UA64 54+#define R_SPARC_UA16 55+#define R_SPARC_TLS_GD_HI22 56+#define R_SPARC_TLS_GD_LO10 57+#define R_SPARC_TLS_GD_ADD 58+#define R_SPARC_TLS_GD_CALL 59+#define R_SPARC_TLS_LDM_HI22 60+#define R_SPARC_TLS_LDM_LO10 61+#define R_SPARC_TLS_LDM_ADD 62+#define R_SPARC_TLS_LDM_CALL 63+#define R_SPARC_TLS_LDO_HIX22 64+#define R_SPARC_TLS_LDO_LOX10 65+#define R_SPARC_TLS_LDO_ADD 66+#define R_SPARC_TLS_IE_HI22 67+#define R_SPARC_TLS_IE_LO10 68+#define R_SPARC_TLS_IE_LD 69+#define R_SPARC_TLS_IE_LDX 70+#define R_SPARC_TLS_IE_ADD 71+#define R_SPARC_TLS_LE_HIX22 72+#define R_SPARC_TLS_LE_LOX10 73+#define R_SPARC_TLS_DTPMOD32 74+#define R_SPARC_TLS_DTPMOD64 75+#define R_SPARC_TLS_DTPOFF32 76+#define R_SPARC_TLS_DTPOFF64 77+#define R_SPARC_TLS_TPOFF32 78+#define R_SPARC_TLS_TPOFF64 79+#define R_SPARC_GOTDATA_HIX22 80+#define R_SPARC_GOTDATA_LOX10 81+#define R_SPARC_GOTDATA_OP_HIX22 82+#define R_SPARC_GOTDATA_OP_LOX10 83+#define R_SPARC_GOTDATA_OP 84+#define R_SPARC_H34 85+#define R_SPARC_SIZE32 86+#define R_SPARC_SIZE64 87+#define R_SPARC_GNU_VTINHERIT 250+#define R_SPARC_GNU_VTENTRY 251+#define R_SPARC_REV32 252++#define R_SPARC_NUM 253++++#define DT_SPARC_REGISTER 0x70000001+#define DT_SPARC_NUM 2+++#define EF_MIPS_NOREORDER 1+#define EF_MIPS_PIC 2+#define EF_MIPS_CPIC 4+#define EF_MIPS_XGOT 8+#define EF_MIPS_64BIT_WHIRL 16+#define EF_MIPS_ABI2 32+#define EF_MIPS_ABI_ON32 64+#define EF_MIPS_FP64 512+#define EF_MIPS_NAN2008 1024+#define EF_MIPS_ARCH 0xf0000000++++#define EF_MIPS_ARCH_1 0x00000000+#define EF_MIPS_ARCH_2 0x10000000+#define EF_MIPS_ARCH_3 0x20000000+#define EF_MIPS_ARCH_4 0x30000000+#define EF_MIPS_ARCH_5 0x40000000+#define EF_MIPS_ARCH_32 0x50000000+#define EF_MIPS_ARCH_64 0x60000000+#define EF_MIPS_ARCH_32R2 0x70000000+#define EF_MIPS_ARCH_64R2 0x80000000+++#define E_MIPS_ARCH_1 0x00000000+#define E_MIPS_ARCH_2 0x10000000+#define E_MIPS_ARCH_3 0x20000000+#define E_MIPS_ARCH_4 0x30000000+#define E_MIPS_ARCH_5 0x40000000+#define E_MIPS_ARCH_32 0x50000000+#define E_MIPS_ARCH_64 0x60000000++++#define SHN_MIPS_ACOMMON 0xff00+#define SHN_MIPS_TEXT 0xff01+#define SHN_MIPS_DATA 0xff02+#define SHN_MIPS_SCOMMON 0xff03+#define SHN_MIPS_SUNDEFINED 0xff04++++#define SHT_MIPS_LIBLIST 0x70000000+#define SHT_MIPS_MSYM 0x70000001+#define SHT_MIPS_CONFLICT 0x70000002+#define SHT_MIPS_GPTAB 0x70000003+#define SHT_MIPS_UCODE 0x70000004+#define SHT_MIPS_DEBUG 0x70000005+#define SHT_MIPS_REGINFO 0x70000006+#define SHT_MIPS_PACKAGE 0x70000007+#define SHT_MIPS_PACKSYM 0x70000008+#define SHT_MIPS_RELD 0x70000009+#define SHT_MIPS_IFACE 0x7000000b+#define SHT_MIPS_CONTENT 0x7000000c+#define SHT_MIPS_OPTIONS 0x7000000d+#define SHT_MIPS_SHDR 0x70000010+#define SHT_MIPS_FDESC 0x70000011+#define SHT_MIPS_EXTSYM 0x70000012+#define SHT_MIPS_DENSE 0x70000013+#define SHT_MIPS_PDESC 0x70000014+#define SHT_MIPS_LOCSYM 0x70000015+#define SHT_MIPS_AUXSYM 0x70000016+#define SHT_MIPS_OPTSYM 0x70000017+#define SHT_MIPS_LOCSTR 0x70000018+#define SHT_MIPS_LINE 0x70000019+#define SHT_MIPS_RFDESC 0x7000001a+#define SHT_MIPS_DELTASYM 0x7000001b+#define SHT_MIPS_DELTAINST 0x7000001c+#define SHT_MIPS_DELTACLASS 0x7000001d+#define SHT_MIPS_DWARF 0x7000001e+#define SHT_MIPS_DELTADECL 0x7000001f+#define SHT_MIPS_SYMBOL_LIB 0x70000020+#define SHT_MIPS_EVENTS 0x70000021+#define SHT_MIPS_TRANSLATE 0x70000022+#define SHT_MIPS_PIXIE 0x70000023+#define SHT_MIPS_XLATE 0x70000024+#define SHT_MIPS_XLATE_DEBUG 0x70000025+#define SHT_MIPS_WHIRL 0x70000026+#define SHT_MIPS_EH_REGION 0x70000027+#define SHT_MIPS_XLATE_OLD 0x70000028+#define SHT_MIPS_PDR_EXCEPTION 0x70000029++++#define SHF_MIPS_GPREL 0x10000000+#define SHF_MIPS_MERGE 0x20000000+#define SHF_MIPS_ADDR 0x40000000+#define SHF_MIPS_STRINGS 0x80000000+#define SHF_MIPS_NOSTRIP 0x08000000+#define SHF_MIPS_LOCAL 0x04000000+#define SHF_MIPS_NAMES 0x02000000+#define SHF_MIPS_NODUPE 0x01000000++++++#define STO_MIPS_DEFAULT 0x0+#define STO_MIPS_INTERNAL 0x1+#define STO_MIPS_HIDDEN 0x2+#define STO_MIPS_PROTECTED 0x3+#define STO_MIPS_PLT 0x8+#define STO_MIPS_SC_ALIGN_UNUSED 0xff+++#define STB_MIPS_SPLIT_COMMON 13++++typedef union {+ struct {+ Elf32_Word gt_current_g_value;+ Elf32_Word gt_unused;+ } gt_header;+ struct {+ Elf32_Word gt_g_value;+ Elf32_Word gt_bytes;+ } gt_entry;+} Elf32_gptab;++++typedef struct {+ Elf32_Word ri_gprmask;+ Elf32_Word ri_cprmask[4];+ Elf32_Sword ri_gp_value;+} Elf32_RegInfo;++++typedef struct {+ unsigned char kind;++ unsigned char size;+ Elf32_Section section;++ Elf32_Word info;+} Elf_Options;++++#define ODK_NULL 0+#define ODK_REGINFO 1+#define ODK_EXCEPTIONS 2+#define ODK_PAD 3+#define ODK_HWPATCH 4+#define ODK_FILL 5+#define ODK_TAGS 6+#define ODK_HWAND 7+#define ODK_HWOR 8++++#define OEX_FPU_MIN 0x1f+#define OEX_FPU_MAX 0x1f00+#define OEX_PAGE0 0x10000+#define OEX_SMM 0x20000+#define OEX_FPDBUG 0x40000+#define OEX_PRECISEFP OEX_FPDBUG+#define OEX_DISMISS 0x80000++#define OEX_FPU_INVAL 0x10+#define OEX_FPU_DIV0 0x08+#define OEX_FPU_OFLO 0x04+#define OEX_FPU_UFLO 0x02+#define OEX_FPU_INEX 0x01++++#define OHW_R4KEOP 0x1+#define OHW_R8KPFETCH 0x2+#define OHW_R5KEOP 0x4+#define OHW_R5KCVTL 0x8++#define OPAD_PREFIX 0x1+#define OPAD_POSTFIX 0x2+#define OPAD_SYMBOL 0x4++++typedef struct {+ Elf32_Word hwp_flags1;+ Elf32_Word hwp_flags2;+} Elf_Options_Hw;++++#define OHWA0_R4KEOP_CHECKED 0x00000001+#define OHWA1_R4KEOP_CLEAN 0x00000002++++#define R_MIPS_NONE 0+#define R_MIPS_16 1+#define R_MIPS_32 2+#define R_MIPS_REL32 3+#define R_MIPS_26 4+#define R_MIPS_HI16 5+#define R_MIPS_LO16 6+#define R_MIPS_GPREL16 7+#define R_MIPS_LITERAL 8+#define R_MIPS_GOT16 9+#define R_MIPS_PC16 10+#define R_MIPS_CALL16 11+#define R_MIPS_GPREL32 12++#define R_MIPS_SHIFT5 16+#define R_MIPS_SHIFT6 17+#define R_MIPS_64 18+#define R_MIPS_GOT_DISP 19+#define R_MIPS_GOT_PAGE 20+#define R_MIPS_GOT_OFST 21+#define R_MIPS_GOT_HI16 22+#define R_MIPS_GOT_LO16 23+#define R_MIPS_SUB 24+#define R_MIPS_INSERT_A 25+#define R_MIPS_INSERT_B 26+#define R_MIPS_DELETE 27+#define R_MIPS_HIGHER 28+#define R_MIPS_HIGHEST 29+#define R_MIPS_CALL_HI16 30+#define R_MIPS_CALL_LO16 31+#define R_MIPS_SCN_DISP 32+#define R_MIPS_REL16 33+#define R_MIPS_ADD_IMMEDIATE 34+#define R_MIPS_PJUMP 35+#define R_MIPS_RELGOT 36+#define R_MIPS_JALR 37+#define R_MIPS_TLS_DTPMOD32 38+#define R_MIPS_TLS_DTPREL32 39+#define R_MIPS_TLS_DTPMOD64 40+#define R_MIPS_TLS_DTPREL64 41+#define R_MIPS_TLS_GD 42+#define R_MIPS_TLS_LDM 43+#define R_MIPS_TLS_DTPREL_HI16 44+#define R_MIPS_TLS_DTPREL_LO16 45+#define R_MIPS_TLS_GOTTPREL 46+#define R_MIPS_TLS_TPREL32 47+#define R_MIPS_TLS_TPREL64 48+#define R_MIPS_TLS_TPREL_HI16 49+#define R_MIPS_TLS_TPREL_LO16 50+#define R_MIPS_GLOB_DAT 51+#define R_MIPS_COPY 126+#define R_MIPS_JUMP_SLOT 127++#define R_MIPS_NUM 128++++#define PT_MIPS_REGINFO 0x70000000+#define PT_MIPS_RTPROC 0x70000001+#define PT_MIPS_OPTIONS 0x70000002+#define PT_MIPS_ABIFLAGS 0x70000003++++#define PF_MIPS_LOCAL 0x10000000++++#define DT_MIPS_RLD_VERSION 0x70000001+#define DT_MIPS_TIME_STAMP 0x70000002+#define DT_MIPS_ICHECKSUM 0x70000003+#define DT_MIPS_IVERSION 0x70000004+#define DT_MIPS_FLAGS 0x70000005+#define DT_MIPS_BASE_ADDRESS 0x70000006+#define DT_MIPS_MSYM 0x70000007+#define DT_MIPS_CONFLICT 0x70000008+#define DT_MIPS_LIBLIST 0x70000009+#define DT_MIPS_LOCAL_GOTNO 0x7000000a+#define DT_MIPS_CONFLICTNO 0x7000000b+#define DT_MIPS_LIBLISTNO 0x70000010+#define DT_MIPS_SYMTABNO 0x70000011+#define DT_MIPS_UNREFEXTNO 0x70000012+#define DT_MIPS_GOTSYM 0x70000013+#define DT_MIPS_HIPAGENO 0x70000014+#define DT_MIPS_RLD_MAP 0x70000016+#define DT_MIPS_DELTA_CLASS 0x70000017+#define DT_MIPS_DELTA_CLASS_NO 0x70000018++#define DT_MIPS_DELTA_INSTANCE 0x70000019+#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a++#define DT_MIPS_DELTA_RELOC 0x7000001b+#define DT_MIPS_DELTA_RELOC_NO 0x7000001c++#define DT_MIPS_DELTA_SYM 0x7000001d++#define DT_MIPS_DELTA_SYM_NO 0x7000001e++#define DT_MIPS_DELTA_CLASSSYM 0x70000020++#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021++#define DT_MIPS_CXX_FLAGS 0x70000022+#define DT_MIPS_PIXIE_INIT 0x70000023+#define DT_MIPS_SYMBOL_LIB 0x70000024+#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025+#define DT_MIPS_LOCAL_GOTIDX 0x70000026+#define DT_MIPS_HIDDEN_GOTIDX 0x70000027+#define DT_MIPS_PROTECTED_GOTIDX 0x70000028+#define DT_MIPS_OPTIONS 0x70000029+#define DT_MIPS_INTERFACE 0x7000002a+#define DT_MIPS_DYNSTR_ALIGN 0x7000002b+#define DT_MIPS_INTERFACE_SIZE 0x7000002c+#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d++#define DT_MIPS_PERF_SUFFIX 0x7000002e++#define DT_MIPS_COMPACT_SIZE 0x7000002f+#define DT_MIPS_GP_VALUE 0x70000030+#define DT_MIPS_AUX_DYNAMIC 0x70000031++#define DT_MIPS_PLTGOT 0x70000032++#define DT_MIPS_RWPLT 0x70000034+#define DT_MIPS_RLD_MAP_REL 0x70000035+#define DT_MIPS_NUM 0x36++++#define RHF_NONE 0+#define RHF_QUICKSTART (1 << 0)+#define RHF_NOTPOT (1 << 1)+#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)+#define RHF_NO_MOVE (1 << 3)+#define RHF_SGI_ONLY (1 << 4)+#define RHF_GUARANTEE_INIT (1 << 5)+#define RHF_DELTA_C_PLUS_PLUS (1 << 6)+#define RHF_GUARANTEE_START_INIT (1 << 7)+#define RHF_PIXIE (1 << 8)+#define RHF_DEFAULT_DELAY_LOAD (1 << 9)+#define RHF_REQUICKSTART (1 << 10)+#define RHF_REQUICKSTARTED (1 << 11)+#define RHF_CORD (1 << 12)+#define RHF_NO_UNRES_UNDEF (1 << 13)+#define RHF_RLD_ORDER_SAFE (1 << 14)++++typedef struct {+ Elf32_Word l_name;+ Elf32_Word l_time_stamp;+ Elf32_Word l_checksum;+ Elf32_Word l_version;+ Elf32_Word l_flags;+} Elf32_Lib;++typedef struct {+ Elf64_Word l_name;+ Elf64_Word l_time_stamp;+ Elf64_Word l_checksum;+ Elf64_Word l_version;+ Elf64_Word l_flags;+} Elf64_Lib;+++++#define LL_NONE 0+#define LL_EXACT_MATCH (1 << 0)+#define LL_IGNORE_INT_VER (1 << 1)+#define LL_REQUIRE_MINOR (1 << 2)+#define LL_EXPORTS (1 << 3)+#define LL_DELAY_LOAD (1 << 4)+#define LL_DELTA (1 << 5)++++typedef Elf32_Addr Elf32_Conflict;++typedef struct {+ Elf32_Half version;+ unsigned char isa_level;+ unsigned char isa_rev;+ unsigned char gpr_size;+ unsigned char cpr1_size;+ unsigned char cpr2_size;+ unsigned char fp_abi;+ Elf32_Word isa_ext;+ Elf32_Word ases;+ Elf32_Word flags1;+ Elf32_Word flags2;+} Elf_MIPS_ABIFlags_v0;++#define MIPS_AFL_REG_NONE 0x00+#define MIPS_AFL_REG_32 0x01+#define MIPS_AFL_REG_64 0x02+#define MIPS_AFL_REG_128 0x03++#define MIPS_AFL_ASE_DSP 0x00000001+#define MIPS_AFL_ASE_DSPR2 0x00000002+#define MIPS_AFL_ASE_EVA 0x00000004+#define MIPS_AFL_ASE_MCU 0x00000008+#define MIPS_AFL_ASE_MDMX 0x00000010+#define MIPS_AFL_ASE_MIPS3D 0x00000020+#define MIPS_AFL_ASE_MT 0x00000040+#define MIPS_AFL_ASE_SMARTMIPS 0x00000080+#define MIPS_AFL_ASE_VIRT 0x00000100+#define MIPS_AFL_ASE_MSA 0x00000200+#define MIPS_AFL_ASE_MIPS16 0x00000400+#define MIPS_AFL_ASE_MICROMIPS 0x00000800+#define MIPS_AFL_ASE_XPA 0x00001000+#define MIPS_AFL_ASE_MASK 0x00001fff++#define MIPS_AFL_EXT_XLR 1+#define MIPS_AFL_EXT_OCTEON2 2+#define MIPS_AFL_EXT_OCTEONP 3+#define MIPS_AFL_EXT_LOONGSON_3A 4+#define MIPS_AFL_EXT_OCTEON 5+#define MIPS_AFL_EXT_5900 6+#define MIPS_AFL_EXT_4650 7+#define MIPS_AFL_EXT_4010 8+#define MIPS_AFL_EXT_4100 9+#define MIPS_AFL_EXT_3900 10+#define MIPS_AFL_EXT_10000 11+#define MIPS_AFL_EXT_SB1 12+#define MIPS_AFL_EXT_4111 13+#define MIPS_AFL_EXT_4120 14+#define MIPS_AFL_EXT_5400 15+#define MIPS_AFL_EXT_5500 16+#define MIPS_AFL_EXT_LOONGSON_2E 17+#define MIPS_AFL_EXT_LOONGSON_2F 18++#define MIPS_AFL_FLAGS1_ODDSPREG 1++enum+{+ Val_GNU_MIPS_ABI_FP_ANY = 0,+ Val_GNU_MIPS_ABI_FP_DOUBLE = 1,+ Val_GNU_MIPS_ABI_FP_SINGLE = 2,+ Val_GNU_MIPS_ABI_FP_SOFT = 3,+ Val_GNU_MIPS_ABI_FP_OLD_64 = 4,+ Val_GNU_MIPS_ABI_FP_XX = 5,+ Val_GNU_MIPS_ABI_FP_64 = 6,+ Val_GNU_MIPS_ABI_FP_64A = 7,+ Val_GNU_MIPS_ABI_FP_MAX = 7+};+++++#define EF_PARISC_TRAPNIL 0x00010000+#define EF_PARISC_EXT 0x00020000+#define EF_PARISC_LSB 0x00040000+#define EF_PARISC_WIDE 0x00080000+#define EF_PARISC_NO_KABP 0x00100000++#define EF_PARISC_LAZYSWAP 0x00400000+#define EF_PARISC_ARCH 0x0000ffff++++#define EFA_PARISC_1_0 0x020b+#define EFA_PARISC_1_1 0x0210+#define EFA_PARISC_2_0 0x0214++++#define SHN_PARISC_ANSI_COMMON 0xff00++#define SHN_PARISC_HUGE_COMMON 0xff01++++#define SHT_PARISC_EXT 0x70000000+#define SHT_PARISC_UNWIND 0x70000001+#define SHT_PARISC_DOC 0x70000002++++#define SHF_PARISC_SHORT 0x20000000+#define SHF_PARISC_HUGE 0x40000000+#define SHF_PARISC_SBP 0x80000000++++#define STT_PARISC_MILLICODE 13++#define STT_HP_OPAQUE (STT_LOOS + 0x1)+#define STT_HP_STUB (STT_LOOS + 0x2)++++#define R_PARISC_NONE 0+#define R_PARISC_DIR32 1+#define R_PARISC_DIR21L 2+#define R_PARISC_DIR17R 3+#define R_PARISC_DIR17F 4+#define R_PARISC_DIR14R 6+#define R_PARISC_PCREL32 9+#define R_PARISC_PCREL21L 10+#define R_PARISC_PCREL17R 11+#define R_PARISC_PCREL17F 12+#define R_PARISC_PCREL14R 14+#define R_PARISC_DPREL21L 18+#define R_PARISC_DPREL14R 22+#define R_PARISC_GPREL21L 26+#define R_PARISC_GPREL14R 30+#define R_PARISC_LTOFF21L 34+#define R_PARISC_LTOFF14R 38+#define R_PARISC_SECREL32 41+#define R_PARISC_SEGBASE 48+#define R_PARISC_SEGREL32 49+#define R_PARISC_PLTOFF21L 50+#define R_PARISC_PLTOFF14R 54+#define R_PARISC_LTOFF_FPTR32 57+#define R_PARISC_LTOFF_FPTR21L 58+#define R_PARISC_LTOFF_FPTR14R 62+#define R_PARISC_FPTR64 64+#define R_PARISC_PLABEL32 65+#define R_PARISC_PLABEL21L 66+#define R_PARISC_PLABEL14R 70+#define R_PARISC_PCREL64 72+#define R_PARISC_PCREL22F 74+#define R_PARISC_PCREL14WR 75+#define R_PARISC_PCREL14DR 76+#define R_PARISC_PCREL16F 77+#define R_PARISC_PCREL16WF 78+#define R_PARISC_PCREL16DF 79+#define R_PARISC_DIR64 80+#define R_PARISC_DIR14WR 83+#define R_PARISC_DIR14DR 84+#define R_PARISC_DIR16F 85+#define R_PARISC_DIR16WF 86+#define R_PARISC_DIR16DF 87+#define R_PARISC_GPREL64 88+#define R_PARISC_GPREL14WR 91+#define R_PARISC_GPREL14DR 92+#define R_PARISC_GPREL16F 93+#define R_PARISC_GPREL16WF 94+#define R_PARISC_GPREL16DF 95+#define R_PARISC_LTOFF64 96+#define R_PARISC_LTOFF14WR 99+#define R_PARISC_LTOFF14DR 100+#define R_PARISC_LTOFF16F 101+#define R_PARISC_LTOFF16WF 102+#define R_PARISC_LTOFF16DF 103+#define R_PARISC_SECREL64 104+#define R_PARISC_SEGREL64 112+#define R_PARISC_PLTOFF14WR 115+#define R_PARISC_PLTOFF14DR 116+#define R_PARISC_PLTOFF16F 117+#define R_PARISC_PLTOFF16WF 118+#define R_PARISC_PLTOFF16DF 119+#define R_PARISC_LTOFF_FPTR64 120+#define R_PARISC_LTOFF_FPTR14WR 123+#define R_PARISC_LTOFF_FPTR14DR 124+#define R_PARISC_LTOFF_FPTR16F 125+#define R_PARISC_LTOFF_FPTR16WF 126+#define R_PARISC_LTOFF_FPTR16DF 127+#define R_PARISC_LORESERVE 128+#define R_PARISC_COPY 128+#define R_PARISC_IPLT 129+#define R_PARISC_EPLT 130+#define R_PARISC_TPREL32 153+#define R_PARISC_TPREL21L 154+#define R_PARISC_TPREL14R 158+#define R_PARISC_LTOFF_TP21L 162+#define R_PARISC_LTOFF_TP14R 166+#define R_PARISC_LTOFF_TP14F 167+#define R_PARISC_TPREL64 216+#define R_PARISC_TPREL14WR 219+#define R_PARISC_TPREL14DR 220+#define R_PARISC_TPREL16F 221+#define R_PARISC_TPREL16WF 222+#define R_PARISC_TPREL16DF 223+#define R_PARISC_LTOFF_TP64 224+#define R_PARISC_LTOFF_TP14WR 227+#define R_PARISC_LTOFF_TP14DR 228+#define R_PARISC_LTOFF_TP16F 229+#define R_PARISC_LTOFF_TP16WF 230+#define R_PARISC_LTOFF_TP16DF 231+#define R_PARISC_GNU_VTENTRY 232+#define R_PARISC_GNU_VTINHERIT 233+#define R_PARISC_TLS_GD21L 234+#define R_PARISC_TLS_GD14R 235+#define R_PARISC_TLS_GDCALL 236+#define R_PARISC_TLS_LDM21L 237+#define R_PARISC_TLS_LDM14R 238+#define R_PARISC_TLS_LDMCALL 239+#define R_PARISC_TLS_LDO21L 240+#define R_PARISC_TLS_LDO14R 241+#define R_PARISC_TLS_DTPMOD32 242+#define R_PARISC_TLS_DTPMOD64 243+#define R_PARISC_TLS_DTPOFF32 244+#define R_PARISC_TLS_DTPOFF64 245+#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L+#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R+#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L+#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R+#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32+#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64+#define R_PARISC_HIRESERVE 255++++#define PT_HP_TLS (PT_LOOS + 0x0)+#define PT_HP_CORE_NONE (PT_LOOS + 0x1)+#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)+#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)+#define PT_HP_CORE_COMM (PT_LOOS + 0x4)+#define PT_HP_CORE_PROC (PT_LOOS + 0x5)+#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)+#define PT_HP_CORE_STACK (PT_LOOS + 0x7)+#define PT_HP_CORE_SHM (PT_LOOS + 0x8)+#define PT_HP_CORE_MMF (PT_LOOS + 0x9)+#define PT_HP_PARALLEL (PT_LOOS + 0x10)+#define PT_HP_FASTBIND (PT_LOOS + 0x11)+#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)+#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)+#define PT_HP_STACK (PT_LOOS + 0x14)++#define PT_PARISC_ARCHEXT 0x70000000+#define PT_PARISC_UNWIND 0x70000001++++#define PF_PARISC_SBP 0x08000000++#define PF_HP_PAGE_SIZE 0x00100000+#define PF_HP_FAR_SHARED 0x00200000+#define PF_HP_NEAR_SHARED 0x00400000+#define PF_HP_CODE 0x01000000+#define PF_HP_MODIFY 0x02000000+#define PF_HP_LAZYSWAP 0x04000000+#define PF_HP_SBP 0x08000000+++++++#define EF_ALPHA_32BIT 1+#define EF_ALPHA_CANRELAX 2+++++#define SHT_ALPHA_DEBUG 0x70000001+#define SHT_ALPHA_REGINFO 0x70000002++++#define SHF_ALPHA_GPREL 0x10000000+++#define STO_ALPHA_NOPV 0x80+#define STO_ALPHA_STD_GPLOAD 0x88++++#define R_ALPHA_NONE 0+#define R_ALPHA_REFLONG 1+#define R_ALPHA_REFQUAD 2+#define R_ALPHA_GPREL32 3+#define R_ALPHA_LITERAL 4+#define R_ALPHA_LITUSE 5+#define R_ALPHA_GPDISP 6+#define R_ALPHA_BRADDR 7+#define R_ALPHA_HINT 8+#define R_ALPHA_SREL16 9+#define R_ALPHA_SREL32 10+#define R_ALPHA_SREL64 11+#define R_ALPHA_GPRELHIGH 17+#define R_ALPHA_GPRELLOW 18+#define R_ALPHA_GPREL16 19+#define R_ALPHA_COPY 24+#define R_ALPHA_GLOB_DAT 25+#define R_ALPHA_JMP_SLOT 26+#define R_ALPHA_RELATIVE 27+#define R_ALPHA_TLS_GD_HI 28+#define R_ALPHA_TLSGD 29+#define R_ALPHA_TLS_LDM 30+#define R_ALPHA_DTPMOD64 31+#define R_ALPHA_GOTDTPREL 32+#define R_ALPHA_DTPREL64 33+#define R_ALPHA_DTPRELHI 34+#define R_ALPHA_DTPRELLO 35+#define R_ALPHA_DTPREL16 36+#define R_ALPHA_GOTTPREL 37+#define R_ALPHA_TPREL64 38+#define R_ALPHA_TPRELHI 39+#define R_ALPHA_TPRELLO 40+#define R_ALPHA_TPREL16 41++#define R_ALPHA_NUM 46+++#define LITUSE_ALPHA_ADDR 0+#define LITUSE_ALPHA_BASE 1+#define LITUSE_ALPHA_BYTOFF 2+#define LITUSE_ALPHA_JSR 3+#define LITUSE_ALPHA_TLS_GD 4+#define LITUSE_ALPHA_TLS_LDM 5+++#define DT_ALPHA_PLTRO (DT_LOPROC + 0)+#define DT_ALPHA_NUM 1+++++#define EF_PPC_EMB 0x80000000+++#define EF_PPC_RELOCATABLE 0x00010000+#define EF_PPC_RELOCATABLE_LIB 0x00008000++++#define R_PPC_NONE 0+#define R_PPC_ADDR32 1+#define R_PPC_ADDR24 2+#define R_PPC_ADDR16 3+#define R_PPC_ADDR16_LO 4+#define R_PPC_ADDR16_HI 5+#define R_PPC_ADDR16_HA 6+#define R_PPC_ADDR14 7+#define R_PPC_ADDR14_BRTAKEN 8+#define R_PPC_ADDR14_BRNTAKEN 9+#define R_PPC_REL24 10+#define R_PPC_REL14 11+#define R_PPC_REL14_BRTAKEN 12+#define R_PPC_REL14_BRNTAKEN 13+#define R_PPC_GOT16 14+#define R_PPC_GOT16_LO 15+#define R_PPC_GOT16_HI 16+#define R_PPC_GOT16_HA 17+#define R_PPC_PLTREL24 18+#define R_PPC_COPY 19+#define R_PPC_GLOB_DAT 20+#define R_PPC_JMP_SLOT 21+#define R_PPC_RELATIVE 22+#define R_PPC_LOCAL24PC 23+#define R_PPC_UADDR32 24+#define R_PPC_UADDR16 25+#define R_PPC_REL32 26+#define R_PPC_PLT32 27+#define R_PPC_PLTREL32 28+#define R_PPC_PLT16_LO 29+#define R_PPC_PLT16_HI 30+#define R_PPC_PLT16_HA 31+#define R_PPC_SDAREL16 32+#define R_PPC_SECTOFF 33+#define R_PPC_SECTOFF_LO 34+#define R_PPC_SECTOFF_HI 35+#define R_PPC_SECTOFF_HA 36+++#define R_PPC_TLS 67+#define R_PPC_DTPMOD32 68+#define R_PPC_TPREL16 69+#define R_PPC_TPREL16_LO 70+#define R_PPC_TPREL16_HI 71+#define R_PPC_TPREL16_HA 72+#define R_PPC_TPREL32 73+#define R_PPC_DTPREL16 74+#define R_PPC_DTPREL16_LO 75+#define R_PPC_DTPREL16_HI 76+#define R_PPC_DTPREL16_HA 77+#define R_PPC_DTPREL32 78+#define R_PPC_GOT_TLSGD16 79+#define R_PPC_GOT_TLSGD16_LO 80+#define R_PPC_GOT_TLSGD16_HI 81+#define R_PPC_GOT_TLSGD16_HA 82+#define R_PPC_GOT_TLSLD16 83+#define R_PPC_GOT_TLSLD16_LO 84+#define R_PPC_GOT_TLSLD16_HI 85+#define R_PPC_GOT_TLSLD16_HA 86+#define R_PPC_GOT_TPREL16 87+#define R_PPC_GOT_TPREL16_LO 88+#define R_PPC_GOT_TPREL16_HI 89+#define R_PPC_GOT_TPREL16_HA 90+#define R_PPC_GOT_DTPREL16 91+#define R_PPC_GOT_DTPREL16_LO 92+#define R_PPC_GOT_DTPREL16_HI 93+#define R_PPC_GOT_DTPREL16_HA 94+#define R_PPC_TLSGD 95+#define R_PPC_TLSLD 96+++#define R_PPC_EMB_NADDR32 101+#define R_PPC_EMB_NADDR16 102+#define R_PPC_EMB_NADDR16_LO 103+#define R_PPC_EMB_NADDR16_HI 104+#define R_PPC_EMB_NADDR16_HA 105+#define R_PPC_EMB_SDAI16 106+#define R_PPC_EMB_SDA2I16 107+#define R_PPC_EMB_SDA2REL 108+#define R_PPC_EMB_SDA21 109+#define R_PPC_EMB_MRKREF 110+#define R_PPC_EMB_RELSEC16 111+#define R_PPC_EMB_RELST_LO 112+#define R_PPC_EMB_RELST_HI 113+#define R_PPC_EMB_RELST_HA 114+#define R_PPC_EMB_BIT_FLD 115+#define R_PPC_EMB_RELSDA 116+++#define R_PPC_DIAB_SDA21_LO 180+#define R_PPC_DIAB_SDA21_HI 181+#define R_PPC_DIAB_SDA21_HA 182+#define R_PPC_DIAB_RELSDA_LO 183+#define R_PPC_DIAB_RELSDA_HI 184+#define R_PPC_DIAB_RELSDA_HA 185+++#define R_PPC_IRELATIVE 248+++#define R_PPC_REL16 249+#define R_PPC_REL16_LO 250+#define R_PPC_REL16_HI 251+#define R_PPC_REL16_HA 252++++#define R_PPC_TOC16 255+++#define DT_PPC_GOT (DT_LOPROC + 0)+#define DT_PPC_OPT (DT_LOPROC + 1)+#define DT_PPC_NUM 2++#define PPC_OPT_TLS 1+++#define R_PPC64_NONE R_PPC_NONE+#define R_PPC64_ADDR32 R_PPC_ADDR32+#define R_PPC64_ADDR24 R_PPC_ADDR24+#define R_PPC64_ADDR16 R_PPC_ADDR16+#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO+#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI+#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA+#define R_PPC64_ADDR14 R_PPC_ADDR14+#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN+#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN+#define R_PPC64_REL24 R_PPC_REL24+#define R_PPC64_REL14 R_PPC_REL14+#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN+#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN+#define R_PPC64_GOT16 R_PPC_GOT16+#define R_PPC64_GOT16_LO R_PPC_GOT16_LO+#define R_PPC64_GOT16_HI R_PPC_GOT16_HI+#define R_PPC64_GOT16_HA R_PPC_GOT16_HA++#define R_PPC64_COPY R_PPC_COPY+#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT+#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT+#define R_PPC64_RELATIVE R_PPC_RELATIVE++#define R_PPC64_UADDR32 R_PPC_UADDR32+#define R_PPC64_UADDR16 R_PPC_UADDR16+#define R_PPC64_REL32 R_PPC_REL32+#define R_PPC64_PLT32 R_PPC_PLT32+#define R_PPC64_PLTREL32 R_PPC_PLTREL32+#define R_PPC64_PLT16_LO R_PPC_PLT16_LO+#define R_PPC64_PLT16_HI R_PPC_PLT16_HI+#define R_PPC64_PLT16_HA R_PPC_PLT16_HA++#define R_PPC64_SECTOFF R_PPC_SECTOFF+#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO+#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI+#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA+#define R_PPC64_ADDR30 37+#define R_PPC64_ADDR64 38+#define R_PPC64_ADDR16_HIGHER 39+#define R_PPC64_ADDR16_HIGHERA 40+#define R_PPC64_ADDR16_HIGHEST 41+#define R_PPC64_ADDR16_HIGHESTA 42+#define R_PPC64_UADDR64 43+#define R_PPC64_REL64 44+#define R_PPC64_PLT64 45+#define R_PPC64_PLTREL64 46+#define R_PPC64_TOC16 47+#define R_PPC64_TOC16_LO 48+#define R_PPC64_TOC16_HI 49+#define R_PPC64_TOC16_HA 50+#define R_PPC64_TOC 51+#define R_PPC64_PLTGOT16 52+#define R_PPC64_PLTGOT16_LO 53+#define R_PPC64_PLTGOT16_HI 54+#define R_PPC64_PLTGOT16_HA 55++#define R_PPC64_ADDR16_DS 56+#define R_PPC64_ADDR16_LO_DS 57+#define R_PPC64_GOT16_DS 58+#define R_PPC64_GOT16_LO_DS 59+#define R_PPC64_PLT16_LO_DS 60+#define R_PPC64_SECTOFF_DS 61+#define R_PPC64_SECTOFF_LO_DS 62+#define R_PPC64_TOC16_DS 63+#define R_PPC64_TOC16_LO_DS 64+#define R_PPC64_PLTGOT16_DS 65+#define R_PPC64_PLTGOT16_LO_DS 66+++#define R_PPC64_TLS 67+#define R_PPC64_DTPMOD64 68+#define R_PPC64_TPREL16 69+#define R_PPC64_TPREL16_LO 70+#define R_PPC64_TPREL16_HI 71+#define R_PPC64_TPREL16_HA 72+#define R_PPC64_TPREL64 73+#define R_PPC64_DTPREL16 74+#define R_PPC64_DTPREL16_LO 75+#define R_PPC64_DTPREL16_HI 76+#define R_PPC64_DTPREL16_HA 77+#define R_PPC64_DTPREL64 78+#define R_PPC64_GOT_TLSGD16 79+#define R_PPC64_GOT_TLSGD16_LO 80+#define R_PPC64_GOT_TLSGD16_HI 81+#define R_PPC64_GOT_TLSGD16_HA 82+#define R_PPC64_GOT_TLSLD16 83+#define R_PPC64_GOT_TLSLD16_LO 84+#define R_PPC64_GOT_TLSLD16_HI 85+#define R_PPC64_GOT_TLSLD16_HA 86+#define R_PPC64_GOT_TPREL16_DS 87+#define R_PPC64_GOT_TPREL16_LO_DS 88+#define R_PPC64_GOT_TPREL16_HI 89+#define R_PPC64_GOT_TPREL16_HA 90+#define R_PPC64_GOT_DTPREL16_DS 91+#define R_PPC64_GOT_DTPREL16_LO_DS 92+#define R_PPC64_GOT_DTPREL16_HI 93+#define R_PPC64_GOT_DTPREL16_HA 94+#define R_PPC64_TPREL16_DS 95+#define R_PPC64_TPREL16_LO_DS 96+#define R_PPC64_TPREL16_HIGHER 97+#define R_PPC64_TPREL16_HIGHERA 98+#define R_PPC64_TPREL16_HIGHEST 99+#define R_PPC64_TPREL16_HIGHESTA 100+#define R_PPC64_DTPREL16_DS 101+#define R_PPC64_DTPREL16_LO_DS 102+#define R_PPC64_DTPREL16_HIGHER 103+#define R_PPC64_DTPREL16_HIGHERA 104+#define R_PPC64_DTPREL16_HIGHEST 105+#define R_PPC64_DTPREL16_HIGHESTA 106+#define R_PPC64_TLSGD 107+#define R_PPC64_TLSLD 108+#define R_PPC64_TOCSAVE 109+#define R_PPC64_ADDR16_HIGH 110+#define R_PPC64_ADDR16_HIGHA 111+#define R_PPC64_TPREL16_HIGH 112+#define R_PPC64_TPREL16_HIGHA 113+#define R_PPC64_DTPREL16_HIGH 114+#define R_PPC64_DTPREL16_HIGHA 115+++#define R_PPC64_JMP_IREL 247+#define R_PPC64_IRELATIVE 248+#define R_PPC64_REL16 249+#define R_PPC64_REL16_LO 250+#define R_PPC64_REL16_HI 251+#define R_PPC64_REL16_HA 252++#define EF_PPC64_ABI 3++#define DT_PPC64_GLINK (DT_LOPROC + 0)+#define DT_PPC64_OPD (DT_LOPROC + 1)+#define DT_PPC64_OPDSZ (DT_LOPROC + 2)+#define DT_PPC64_OPT (DT_LOPROC + 3)+#define DT_PPC64_NUM 4++#define PPC64_OPT_TLS 1+#define PPC64_OPT_MULTI_TOC 2+#define PPC64_OPT_LOCALENTRY 4++#define STO_PPC64_LOCAL_BIT 5+#define STO_PPC64_LOCAL_MASK 0xe0+#define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc)+++#define EF_ARM_RELEXEC 0x01+#define EF_ARM_HASENTRY 0x02+#define EF_ARM_INTERWORK 0x04+#define EF_ARM_APCS_26 0x08+#define EF_ARM_APCS_FLOAT 0x10+#define EF_ARM_PIC 0x20+#define EF_ARM_ALIGN8 0x40+#define EF_ARM_NEW_ABI 0x80+#define EF_ARM_OLD_ABI 0x100+#define EF_ARM_SOFT_FLOAT 0x200+#define EF_ARM_VFP_FLOAT 0x400+#define EF_ARM_MAVERICK_FLOAT 0x800++#define EF_ARM_ABI_FLOAT_SOFT 0x200+#define EF_ARM_ABI_FLOAT_HARD 0x400+++#define EF_ARM_SYMSARESORTED 0x04+#define EF_ARM_DYNSYMSUSESEGIDX 0x08+#define EF_ARM_MAPSYMSFIRST 0x10+#define EF_ARM_EABIMASK 0XFF000000+++#define EF_ARM_BE8 0x00800000+#define EF_ARM_LE8 0x00400000++#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)+#define EF_ARM_EABI_UNKNOWN 0x00000000+#define EF_ARM_EABI_VER1 0x01000000+#define EF_ARM_EABI_VER2 0x02000000+#define EF_ARM_EABI_VER3 0x03000000+#define EF_ARM_EABI_VER4 0x04000000+#define EF_ARM_EABI_VER5 0x05000000+++#define STT_ARM_TFUNC STT_LOPROC+#define STT_ARM_16BIT STT_HIPROC+++#define SHF_ARM_ENTRYSECT 0x10000000+#define SHF_ARM_COMDEF 0x80000000++++#define PF_ARM_SB 0x10000000++#define PF_ARM_PI 0x20000000+#define PF_ARM_ABS 0x40000000+++#define PT_ARM_EXIDX (PT_LOPROC + 1)+++#define SHT_ARM_EXIDX (SHT_LOPROC + 1)+#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2)+#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)++#define R_AARCH64_NONE 0+#define R_AARCH64_P32_ABS32 1+#define R_AARCH64_P32_COPY 180+#define R_AARCH64_P32_GLOB_DAT 181+#define R_AARCH64_P32_JUMP_SLOT 182+#define R_AARCH64_P32_RELATIVE 183+#define R_AARCH64_P32_TLS_DTPMOD 184+#define R_AARCH64_P32_TLS_DTPREL 185+#define R_AARCH64_P32_TLS_TPREL 186+#define R_AARCH64_P32_TLSDESC 187+#define R_AARCH64_P32_IRELATIVE 188+#define R_AARCH64_ABS64 257+#define R_AARCH64_ABS32 258+#define R_AARCH64_ABS16 259+#define R_AARCH64_PREL64 260+#define R_AARCH64_PREL32 261+#define R_AARCH64_PREL16 262+#define R_AARCH64_MOVW_UABS_G0 263+#define R_AARCH64_MOVW_UABS_G0_NC 264+#define R_AARCH64_MOVW_UABS_G1 265+#define R_AARCH64_MOVW_UABS_G1_NC 266+#define R_AARCH64_MOVW_UABS_G2 267+#define R_AARCH64_MOVW_UABS_G2_NC 268+#define R_AARCH64_MOVW_UABS_G3 269+#define R_AARCH64_MOVW_SABS_G0 270+#define R_AARCH64_MOVW_SABS_G1 271+#define R_AARCH64_MOVW_SABS_G2 272+#define R_AARCH64_LD_PREL_LO19 273+#define R_AARCH64_ADR_PREL_LO21 274+#define R_AARCH64_ADR_PREL_PG_HI21 275+#define R_AARCH64_ADR_PREL_PG_HI21_NC 276+#define R_AARCH64_ADD_ABS_LO12_NC 277+#define R_AARCH64_LDST8_ABS_LO12_NC 278+#define R_AARCH64_TSTBR14 279+#define R_AARCH64_CONDBR19 280+#define R_AARCH64_JUMP26 282+#define R_AARCH64_CALL26 283+#define R_AARCH64_LDST16_ABS_LO12_NC 284+#define R_AARCH64_LDST32_ABS_LO12_NC 285+#define R_AARCH64_LDST64_ABS_LO12_NC 286+#define R_AARCH64_MOVW_PREL_G0 287+#define R_AARCH64_MOVW_PREL_G0_NC 288+#define R_AARCH64_MOVW_PREL_G1 289+#define R_AARCH64_MOVW_PREL_G1_NC 290+#define R_AARCH64_MOVW_PREL_G2 291+#define R_AARCH64_MOVW_PREL_G2_NC 292+#define R_AARCH64_MOVW_PREL_G3 293+#define R_AARCH64_LDST128_ABS_LO12_NC 299+#define R_AARCH64_MOVW_GOTOFF_G0 300+#define R_AARCH64_MOVW_GOTOFF_G0_NC 301+#define R_AARCH64_MOVW_GOTOFF_G1 302+#define R_AARCH64_MOVW_GOTOFF_G1_NC 303+#define R_AARCH64_MOVW_GOTOFF_G2 304+#define R_AARCH64_MOVW_GOTOFF_G2_NC 305+#define R_AARCH64_MOVW_GOTOFF_G3 306+#define R_AARCH64_GOTREL64 307+#define R_AARCH64_GOTREL32 308+#define R_AARCH64_GOT_LD_PREL19 309+#define R_AARCH64_LD64_GOTOFF_LO15 310+#define R_AARCH64_ADR_GOT_PAGE 311+#define R_AARCH64_LD64_GOT_LO12_NC 312+#define R_AARCH64_LD64_GOTPAGE_LO15 313+#define R_AARCH64_TLSGD_ADR_PREL21 512+#define R_AARCH64_TLSGD_ADR_PAGE21 513+#define R_AARCH64_TLSGD_ADD_LO12_NC 514+#define R_AARCH64_TLSGD_MOVW_G1 515+#define R_AARCH64_TLSGD_MOVW_G0_NC 516+#define R_AARCH64_TLSLD_ADR_PREL21 517+#define R_AARCH64_TLSLD_ADR_PAGE21 518+#define R_AARCH64_TLSLD_ADD_LO12_NC 519+#define R_AARCH64_TLSLD_MOVW_G1 520+#define R_AARCH64_TLSLD_MOVW_G0_NC 521+#define R_AARCH64_TLSLD_LD_PREL19 522+#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527+#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540+#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541+#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542+#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543+#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544+#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545+#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546+#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547+#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548+#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549+#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550+#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559+#define R_AARCH64_TLSDESC_LD_PREL19 560+#define R_AARCH64_TLSDESC_ADR_PREL21 561+#define R_AARCH64_TLSDESC_ADR_PAGE21 562+#define R_AARCH64_TLSDESC_LD64_LO12 563+#define R_AARCH64_TLSDESC_ADD_LO12 564+#define R_AARCH64_TLSDESC_OFF_G1 565+#define R_AARCH64_TLSDESC_OFF_G0_NC 566+#define R_AARCH64_TLSDESC_LDR 567+#define R_AARCH64_TLSDESC_ADD 568+#define R_AARCH64_TLSDESC_CALL 569+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573+#define R_AARCH64_COPY 1024+#define R_AARCH64_GLOB_DAT 1025+#define R_AARCH64_JUMP_SLOT 1026+#define R_AARCH64_RELATIVE 1027+#define R_AARCH64_TLS_DTPMOD 1028+#define R_AARCH64_TLS_DTPMOD64 1028+#define R_AARCH64_TLS_DTPREL 1029+#define R_AARCH64_TLS_DTPREL64 1029+#define R_AARCH64_TLS_TPREL 1030+#define R_AARCH64_TLS_TPREL64 1030+#define R_AARCH64_TLSDESC 1031+++#define R_ARM_NONE 0+#define R_ARM_PC24 1+#define R_ARM_ABS32 2+#define R_ARM_REL32 3+#define R_ARM_PC13 4+#define R_ARM_ABS16 5+#define R_ARM_ABS12 6+#define R_ARM_THM_ABS5 7+#define R_ARM_ABS8 8+#define R_ARM_SBREL32 9+#define R_ARM_THM_PC22 10+#define R_ARM_THM_PC8 11+#define R_ARM_AMP_VCALL9 12+#define R_ARM_TLS_DESC 13+#define R_ARM_THM_SWI8 14+#define R_ARM_XPC25 15+#define R_ARM_THM_XPC22 16+#define R_ARM_TLS_DTPMOD32 17+#define R_ARM_TLS_DTPOFF32 18+#define R_ARM_TLS_TPOFF32 19+#define R_ARM_COPY 20+#define R_ARM_GLOB_DAT 21+#define R_ARM_JUMP_SLOT 22+#define R_ARM_RELATIVE 23+#define R_ARM_GOTOFF 24+#define R_ARM_GOTPC 25+#define R_ARM_GOT32 26+#define R_ARM_PLT32 27+#define R_ARM_CALL 28+#define R_ARM_JUMP24 29+#define R_ARM_THM_JUMP24 30+#define R_ARM_BASE_ABS 31+#define R_ARM_ALU_PCREL_7_0 32+#define R_ARM_ALU_PCREL_15_8 33+#define R_ARM_ALU_PCREL_23_15 34+#define R_ARM_LDR_SBREL_11_0 35+#define R_ARM_ALU_SBREL_19_12 36+#define R_ARM_ALU_SBREL_27_20 37+#define R_ARM_TARGET1 38+#define R_ARM_SBREL31 39+#define R_ARM_V4BX 40+#define R_ARM_TARGET2 41+#define R_ARM_PREL31 42+#define R_ARM_MOVW_ABS_NC 43+#define R_ARM_MOVT_ABS 44+#define R_ARM_MOVW_PREL_NC 45+#define R_ARM_MOVT_PREL 46+#define R_ARM_THM_MOVW_ABS_NC 47+#define R_ARM_THM_MOVT_ABS 48+#define R_ARM_THM_MOVW_PREL_NC 49+#define R_ARM_THM_MOVT_PREL 50+#define R_ARM_THM_JUMP19 51+#define R_ARM_THM_JUMP6 52+#define R_ARM_THM_ALU_PREL_11_0 53+#define R_ARM_THM_PC12 54+#define R_ARM_ABS32_NOI 55+#define R_ARM_REL32_NOI 56+#define R_ARM_ALU_PC_G0_NC 57+#define R_ARM_ALU_PC_G0 58+#define R_ARM_ALU_PC_G1_NC 59+#define R_ARM_ALU_PC_G1 60+#define R_ARM_ALU_PC_G2 61+#define R_ARM_LDR_PC_G1 62+#define R_ARM_LDR_PC_G2 63+#define R_ARM_LDRS_PC_G0 64+#define R_ARM_LDRS_PC_G1 65+#define R_ARM_LDRS_PC_G2 66+#define R_ARM_LDC_PC_G0 67+#define R_ARM_LDC_PC_G1 68+#define R_ARM_LDC_PC_G2 69+#define R_ARM_ALU_SB_G0_NC 70+#define R_ARM_ALU_SB_G0 71+#define R_ARM_ALU_SB_G1_NC 72+#define R_ARM_ALU_SB_G1 73+#define R_ARM_ALU_SB_G2 74+#define R_ARM_LDR_SB_G0 75+#define R_ARM_LDR_SB_G1 76+#define R_ARM_LDR_SB_G2 77+#define R_ARM_LDRS_SB_G0 78+#define R_ARM_LDRS_SB_G1 79+#define R_ARM_LDRS_SB_G2 80+#define R_ARM_LDC_SB_G0 81+#define R_ARM_LDC_SB_G1 82+#define R_ARM_LDC_SB_G2 83+#define R_ARM_MOVW_BREL_NC 84+#define R_ARM_MOVT_BREL 85+#define R_ARM_MOVW_BREL 86+#define R_ARM_THM_MOVW_BREL_NC 87+#define R_ARM_THM_MOVT_BREL 88+#define R_ARM_THM_MOVW_BREL 89+#define R_ARM_TLS_GOTDESC 90+#define R_ARM_TLS_CALL 91+#define R_ARM_TLS_DESCSEQ 92+#define R_ARM_THM_TLS_CALL 93+#define R_ARM_PLT32_ABS 94+#define R_ARM_GOT_ABS 95+#define R_ARM_GOT_PREL 96+#define R_ARM_GOT_BREL12 97+#define R_ARM_GOTOFF12 98+#define R_ARM_GOTRELAX 99+#define R_ARM_GNU_VTENTRY 100+#define R_ARM_GNU_VTINHERIT 101+#define R_ARM_THM_PC11 102+#define R_ARM_THM_PC9 103+#define R_ARM_TLS_GD32 104++#define R_ARM_TLS_LDM32 105++#define R_ARM_TLS_LDO32 106++#define R_ARM_TLS_IE32 107++#define R_ARM_TLS_LE32 108+#define R_ARM_TLS_LDO12 109+#define R_ARM_TLS_LE12 110+#define R_ARM_TLS_IE12GP 111+#define R_ARM_ME_TOO 128+#define R_ARM_THM_TLS_DESCSEQ 129+#define R_ARM_THM_TLS_DESCSEQ16 129+#define R_ARM_THM_TLS_DESCSEQ32 130+#define R_ARM_THM_GOT_BREL12 131+#define R_ARM_IRELATIVE 160+#define R_ARM_RXPC25 249+#define R_ARM_RSBREL32 250+#define R_ARM_THM_RPC22 251+#define R_ARM_RREL32 252+#define R_ARM_RABS22 253+#define R_ARM_RPC24 254+#define R_ARM_RBASE 255++#define R_ARM_NUM 256+++#define R_CKCORE_NONE 0+#define R_CKCORE_ADDR32 1+#define R_CKCORE_PCRELIMM8BY4 2+#define R_CKCORE_PCRELIMM11BY2 3+#define R_CKCORE_PCREL32 5+#define R_CKCORE_PCRELJSR_IMM11BY2 6+#define R_CKCORE_RELATIVE 9+#define R_CKCORE_COPY 10+#define R_CKCORE_GLOB_DAT 11+#define R_CKCORE_JUMP_SLOT 12+#define R_CKCORE_GOTOFF 13+#define R_CKCORE_GOTPC 14+#define R_CKCORE_GOT32 15+#define R_CKCORE_PLT32 16+#define R_CKCORE_ADDRGOT 17+#define R_CKCORE_ADDRPLT 18+#define R_CKCORE_PCREL_IMM26BY2 19+#define R_CKCORE_PCREL_IMM16BY2 20+#define R_CKCORE_PCREL_IMM16BY4 21+#define R_CKCORE_PCREL_IMM10BY2 22+#define R_CKCORE_PCREL_IMM10BY4 23+#define R_CKCORE_ADDR_HI16 24+#define R_CKCORE_ADDR_LO16 25+#define R_CKCORE_GOTPC_HI16 26+#define R_CKCORE_GOTPC_LO16 27+#define R_CKCORE_GOTOFF_HI16 28+#define R_CKCORE_GOTOFF_LO16 29+#define R_CKCORE_GOT12 30+#define R_CKCORE_GOT_HI16 31+#define R_CKCORE_GOT_LO16 32+#define R_CKCORE_PLT12 33+#define R_CKCORE_PLT_HI16 34+#define R_CKCORE_PLT_LO16 35+#define R_CKCORE_ADDRGOT_HI16 36+#define R_CKCORE_ADDRGOT_LO16 37+#define R_CKCORE_ADDRPLT_HI16 38+#define R_CKCORE_ADDRPLT_LO16 39+#define R_CKCORE_PCREL_JSR_IMM26BY2 40+#define R_CKCORE_TOFFSET_LO16 41+#define R_CKCORE_DOFFSET_LO16 42+#define R_CKCORE_PCREL_IMM18BY2 43+#define R_CKCORE_DOFFSET_IMM18 44+#define R_CKCORE_DOFFSET_IMM18BY2 45+#define R_CKCORE_DOFFSET_IMM18BY4 46+#define R_CKCORE_GOT_IMM18BY4 48+#define R_CKCORE_PLT_IMM18BY4 49+#define R_CKCORE_PCREL_IMM7BY4 50+#define R_CKCORE_TLS_LE32 51+#define R_CKCORE_TLS_IE32 52+#define R_CKCORE_TLS_GD32 53+#define R_CKCORE_TLS_LDM32 54+#define R_CKCORE_TLS_LDO32 55+#define R_CKCORE_TLS_DTPMOD32 56+#define R_CKCORE_TLS_DTPOFF32 57+#define R_CKCORE_TLS_TPOFF32 58+++#define EF_IA_64_MASKOS 0x0000000f+#define EF_IA_64_ABI64 0x00000010+#define EF_IA_64_ARCH 0xff000000+++#define PT_IA_64_ARCHEXT (PT_LOPROC + 0)+#define PT_IA_64_UNWIND (PT_LOPROC + 1)+#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)+#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)+#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)+++#define PF_IA_64_NORECOV 0x80000000+++#define SHT_IA_64_EXT (SHT_LOPROC + 0)+#define SHT_IA_64_UNWIND (SHT_LOPROC + 1)+++#define SHF_IA_64_SHORT 0x10000000+#define SHF_IA_64_NORECOV 0x20000000+++#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)+#define DT_IA_64_NUM 1+++#define R_IA64_NONE 0x00+#define R_IA64_IMM14 0x21+#define R_IA64_IMM22 0x22+#define R_IA64_IMM64 0x23+#define R_IA64_DIR32MSB 0x24+#define R_IA64_DIR32LSB 0x25+#define R_IA64_DIR64MSB 0x26+#define R_IA64_DIR64LSB 0x27+#define R_IA64_GPREL22 0x2a+#define R_IA64_GPREL64I 0x2b+#define R_IA64_GPREL32MSB 0x2c+#define R_IA64_GPREL32LSB 0x2d+#define R_IA64_GPREL64MSB 0x2e+#define R_IA64_GPREL64LSB 0x2f+#define R_IA64_LTOFF22 0x32+#define R_IA64_LTOFF64I 0x33+#define R_IA64_PLTOFF22 0x3a+#define R_IA64_PLTOFF64I 0x3b+#define R_IA64_PLTOFF64MSB 0x3e+#define R_IA64_PLTOFF64LSB 0x3f+#define R_IA64_FPTR64I 0x43+#define R_IA64_FPTR32MSB 0x44+#define R_IA64_FPTR32LSB 0x45+#define R_IA64_FPTR64MSB 0x46+#define R_IA64_FPTR64LSB 0x47+#define R_IA64_PCREL60B 0x48+#define R_IA64_PCREL21B 0x49+#define R_IA64_PCREL21M 0x4a+#define R_IA64_PCREL21F 0x4b+#define R_IA64_PCREL32MSB 0x4c+#define R_IA64_PCREL32LSB 0x4d+#define R_IA64_PCREL64MSB 0x4e+#define R_IA64_PCREL64LSB 0x4f+#define R_IA64_LTOFF_FPTR22 0x52+#define R_IA64_LTOFF_FPTR64I 0x53+#define R_IA64_LTOFF_FPTR32MSB 0x54+#define R_IA64_LTOFF_FPTR32LSB 0x55+#define R_IA64_LTOFF_FPTR64MSB 0x56+#define R_IA64_LTOFF_FPTR64LSB 0x57+#define R_IA64_SEGREL32MSB 0x5c+#define R_IA64_SEGREL32LSB 0x5d+#define R_IA64_SEGREL64MSB 0x5e+#define R_IA64_SEGREL64LSB 0x5f+#define R_IA64_SECREL32MSB 0x64+#define R_IA64_SECREL32LSB 0x65+#define R_IA64_SECREL64MSB 0x66+#define R_IA64_SECREL64LSB 0x67+#define R_IA64_REL32MSB 0x6c+#define R_IA64_REL32LSB 0x6d+#define R_IA64_REL64MSB 0x6e+#define R_IA64_REL64LSB 0x6f+#define R_IA64_LTV32MSB 0x74+#define R_IA64_LTV32LSB 0x75+#define R_IA64_LTV64MSB 0x76+#define R_IA64_LTV64LSB 0x77+#define R_IA64_PCREL21BI 0x79+#define R_IA64_PCREL22 0x7a+#define R_IA64_PCREL64I 0x7b+#define R_IA64_IPLTMSB 0x80+#define R_IA64_IPLTLSB 0x81+#define R_IA64_COPY 0x84+#define R_IA64_SUB 0x85+#define R_IA64_LTOFF22X 0x86+#define R_IA64_LDXMOV 0x87+#define R_IA64_TPREL14 0x91+#define R_IA64_TPREL22 0x92+#define R_IA64_TPREL64I 0x93+#define R_IA64_TPREL64MSB 0x96+#define R_IA64_TPREL64LSB 0x97+#define R_IA64_LTOFF_TPREL22 0x9a+#define R_IA64_DTPMOD64MSB 0xa6+#define R_IA64_DTPMOD64LSB 0xa7+#define R_IA64_LTOFF_DTPMOD22 0xaa+#define R_IA64_DTPREL14 0xb1+#define R_IA64_DTPREL22 0xb2+#define R_IA64_DTPREL64I 0xb3+#define R_IA64_DTPREL32MSB 0xb4+#define R_IA64_DTPREL32LSB 0xb5+#define R_IA64_DTPREL64MSB 0xb6+#define R_IA64_DTPREL64LSB 0xb7+#define R_IA64_LTOFF_DTPREL22 0xba+++#define EF_SH_MACH_MASK 0x1f+#define EF_SH_UNKNOWN 0x0+#define EF_SH1 0x1+#define EF_SH2 0x2+#define EF_SH3 0x3+#define EF_SH_DSP 0x4+#define EF_SH3_DSP 0x5+#define EF_SH4AL_DSP 0x6+#define EF_SH3E 0x8+#define EF_SH4 0x9+#define EF_SH2E 0xb+#define EF_SH4A 0xc+#define EF_SH2A 0xd+#define EF_SH4_NOFPU 0x10+#define EF_SH4A_NOFPU 0x11+#define EF_SH4_NOMMU_NOFPU 0x12+#define EF_SH2A_NOFPU 0x13+#define EF_SH3_NOMMU 0x14+#define EF_SH2A_SH4_NOFPU 0x15+#define EF_SH2A_SH3_NOFPU 0x16+#define EF_SH2A_SH4 0x17+#define EF_SH2A_SH3E 0x18++#define R_SH_NONE 0+#define R_SH_DIR32 1+#define R_SH_REL32 2+#define R_SH_DIR8WPN 3+#define R_SH_IND12W 4+#define R_SH_DIR8WPL 5+#define R_SH_DIR8WPZ 6+#define R_SH_DIR8BP 7+#define R_SH_DIR8W 8+#define R_SH_DIR8L 9+#define R_SH_SWITCH16 25+#define R_SH_SWITCH32 26+#define R_SH_USES 27+#define R_SH_COUNT 28+#define R_SH_ALIGN 29+#define R_SH_CODE 30+#define R_SH_DATA 31+#define R_SH_LABEL 32+#define R_SH_SWITCH8 33+#define R_SH_GNU_VTINHERIT 34+#define R_SH_GNU_VTENTRY 35+#define R_SH_TLS_GD_32 144+#define R_SH_TLS_LD_32 145+#define R_SH_TLS_LDO_32 146+#define R_SH_TLS_IE_32 147+#define R_SH_TLS_LE_32 148+#define R_SH_TLS_DTPMOD32 149+#define R_SH_TLS_DTPOFF32 150+#define R_SH_TLS_TPOFF32 151+#define R_SH_GOT32 160+#define R_SH_PLT32 161+#define R_SH_COPY 162+#define R_SH_GLOB_DAT 163+#define R_SH_JMP_SLOT 164+#define R_SH_RELATIVE 165+#define R_SH_GOTOFF 166+#define R_SH_GOTPC 167+#define R_SH_GOT20 201+#define R_SH_GOTOFF20 202+#define R_SH_GOTFUNCDESC 203+#define R_SH_GOTFUNCDEST20 204+#define R_SH_GOTOFFFUNCDESC 205+#define R_SH_GOTOFFFUNCDEST20 206+#define R_SH_FUNCDESC 207+#define R_SH_FUNCDESC_VALUE 208++#define R_SH_NUM 256++++#define R_390_NONE 0+#define R_390_8 1+#define R_390_12 2+#define R_390_16 3+#define R_390_32 4+#define R_390_PC32 5+#define R_390_GOT12 6+#define R_390_GOT32 7+#define R_390_PLT32 8+#define R_390_COPY 9+#define R_390_GLOB_DAT 10+#define R_390_JMP_SLOT 11+#define R_390_RELATIVE 12+#define R_390_GOTOFF32 13+#define R_390_GOTPC 14+#define R_390_GOT16 15+#define R_390_PC16 16+#define R_390_PC16DBL 17+#define R_390_PLT16DBL 18+#define R_390_PC32DBL 19+#define R_390_PLT32DBL 20+#define R_390_GOTPCDBL 21+#define R_390_64 22+#define R_390_PC64 23+#define R_390_GOT64 24+#define R_390_PLT64 25+#define R_390_GOTENT 26+#define R_390_GOTOFF16 27+#define R_390_GOTOFF64 28+#define R_390_GOTPLT12 29+#define R_390_GOTPLT16 30+#define R_390_GOTPLT32 31+#define R_390_GOTPLT64 32+#define R_390_GOTPLTENT 33+#define R_390_PLTOFF16 34+#define R_390_PLTOFF32 35+#define R_390_PLTOFF64 36+#define R_390_TLS_LOAD 37+#define R_390_TLS_GDCALL 38++#define R_390_TLS_LDCALL 39++#define R_390_TLS_GD32 40++#define R_390_TLS_GD64 41++#define R_390_TLS_GOTIE12 42++#define R_390_TLS_GOTIE32 43++#define R_390_TLS_GOTIE64 44++#define R_390_TLS_LDM32 45++#define R_390_TLS_LDM64 46++#define R_390_TLS_IE32 47++#define R_390_TLS_IE64 48++#define R_390_TLS_IEENT 49++#define R_390_TLS_LE32 50++#define R_390_TLS_LE64 51++#define R_390_TLS_LDO32 52++#define R_390_TLS_LDO64 53++#define R_390_TLS_DTPMOD 54+#define R_390_TLS_DTPOFF 55+#define R_390_TLS_TPOFF 56++#define R_390_20 57+#define R_390_GOT20 58+#define R_390_GOTPLT20 59+#define R_390_TLS_GOTIE20 60+++#define R_390_NUM 61++++#define R_CRIS_NONE 0+#define R_CRIS_8 1+#define R_CRIS_16 2+#define R_CRIS_32 3+#define R_CRIS_8_PCREL 4+#define R_CRIS_16_PCREL 5+#define R_CRIS_32_PCREL 6+#define R_CRIS_GNU_VTINHERIT 7+#define R_CRIS_GNU_VTENTRY 8+#define R_CRIS_COPY 9+#define R_CRIS_GLOB_DAT 10+#define R_CRIS_JUMP_SLOT 11+#define R_CRIS_RELATIVE 12+#define R_CRIS_16_GOT 13+#define R_CRIS_32_GOT 14+#define R_CRIS_16_GOTPLT 15+#define R_CRIS_32_GOTPLT 16+#define R_CRIS_32_GOTREL 17+#define R_CRIS_32_PLT_GOTREL 18+#define R_CRIS_32_PLT_PCREL 19++#define R_CRIS_NUM 20++++#define R_X86_64_NONE 0+#define R_X86_64_64 1+#define R_X86_64_PC32 2+#define R_X86_64_GOT32 3+#define R_X86_64_PLT32 4+#define R_X86_64_COPY 5+#define R_X86_64_GLOB_DAT 6+#define R_X86_64_JUMP_SLOT 7+#define R_X86_64_RELATIVE 8+#define R_X86_64_GOTPCREL 9++#define R_X86_64_32 10+#define R_X86_64_32S 11+#define R_X86_64_16 12+#define R_X86_64_PC16 13+#define R_X86_64_8 14+#define R_X86_64_PC8 15+#define R_X86_64_DTPMOD64 16+#define R_X86_64_DTPOFF64 17+#define R_X86_64_TPOFF64 18+#define R_X86_64_TLSGD 19++#define R_X86_64_TLSLD 20++#define R_X86_64_DTPOFF32 21+#define R_X86_64_GOTTPOFF 22++#define R_X86_64_TPOFF32 23+#define R_X86_64_PC64 24+#define R_X86_64_GOTOFF64 25+#define R_X86_64_GOTPC32 26+#define R_X86_64_GOT64 27+#define R_X86_64_GOTPCREL64 28+#define R_X86_64_GOTPC64 29+#define R_X86_64_GOTPLT64 30+#define R_X86_64_PLTOFF64 31+#define R_X86_64_SIZE32 32+#define R_X86_64_SIZE64 33++#define R_X86_64_GOTPC32_TLSDESC 34+#define R_X86_64_TLSDESC_CALL 35++#define R_X86_64_TLSDESC 36+#define R_X86_64_IRELATIVE 37+#define R_X86_64_RELATIVE64 38+#define R_X86_64_GOTPCRELX 41+#define R_X86_64_REX_GOTPCRELX 42+#define R_X86_64_NUM 43++++#define R_MN10300_NONE 0+#define R_MN10300_32 1+#define R_MN10300_16 2+#define R_MN10300_8 3+#define R_MN10300_PCREL32 4+#define R_MN10300_PCREL16 5+#define R_MN10300_PCREL8 6+#define R_MN10300_GNU_VTINHERIT 7+#define R_MN10300_GNU_VTENTRY 8+#define R_MN10300_24 9+#define R_MN10300_GOTPC32 10+#define R_MN10300_GOTPC16 11+#define R_MN10300_GOTOFF32 12+#define R_MN10300_GOTOFF24 13+#define R_MN10300_GOTOFF16 14+#define R_MN10300_PLT32 15+#define R_MN10300_PLT16 16+#define R_MN10300_GOT32 17+#define R_MN10300_GOT24 18+#define R_MN10300_GOT16 19+#define R_MN10300_COPY 20+#define R_MN10300_GLOB_DAT 21+#define R_MN10300_JMP_SLOT 22+#define R_MN10300_RELATIVE 23++#define R_MN10300_NUM 24++++#define R_M32R_NONE 0+#define R_M32R_16 1+#define R_M32R_32 2+#define R_M32R_24 3+#define R_M32R_10_PCREL 4+#define R_M32R_18_PCREL 5+#define R_M32R_26_PCREL 6+#define R_M32R_HI16_ULO 7+#define R_M32R_HI16_SLO 8+#define R_M32R_LO16 9+#define R_M32R_SDA16 10+#define R_M32R_GNU_VTINHERIT 11+#define R_M32R_GNU_VTENTRY 12++#define R_M32R_16_RELA 33+#define R_M32R_32_RELA 34+#define R_M32R_24_RELA 35+#define R_M32R_10_PCREL_RELA 36+#define R_M32R_18_PCREL_RELA 37+#define R_M32R_26_PCREL_RELA 38+#define R_M32R_HI16_ULO_RELA 39+#define R_M32R_HI16_SLO_RELA 40+#define R_M32R_LO16_RELA 41+#define R_M32R_SDA16_RELA 42+#define R_M32R_RELA_GNU_VTINHERIT 43+#define R_M32R_RELA_GNU_VTENTRY 44+#define R_M32R_REL32 45++#define R_M32R_GOT24 48+#define R_M32R_26_PLTREL 49+#define R_M32R_COPY 50+#define R_M32R_GLOB_DAT 51+#define R_M32R_JMP_SLOT 52+#define R_M32R_RELATIVE 53+#define R_M32R_GOTOFF 54+#define R_M32R_GOTPC24 55+#define R_M32R_GOT16_HI_ULO 56++#define R_M32R_GOT16_HI_SLO 57++#define R_M32R_GOT16_LO 58+#define R_M32R_GOTPC_HI_ULO 59++#define R_M32R_GOTPC_HI_SLO 60++#define R_M32R_GOTPC_LO 61++#define R_M32R_GOTOFF_HI_ULO 62++#define R_M32R_GOTOFF_HI_SLO 63++#define R_M32R_GOTOFF_LO 64+#define R_M32R_NUM 256++#define R_MICROBLAZE_NONE 0+#define R_MICROBLAZE_32 1+#define R_MICROBLAZE_32_PCREL 2+#define R_MICROBLAZE_64_PCREL 3+#define R_MICROBLAZE_32_PCREL_LO 4+#define R_MICROBLAZE_64 5+#define R_MICROBLAZE_32_LO 6+#define R_MICROBLAZE_SRO32 7+#define R_MICROBLAZE_SRW32 8+#define R_MICROBLAZE_64_NONE 9+#define R_MICROBLAZE_32_SYM_OP_SYM 10+#define R_MICROBLAZE_GNU_VTINHERIT 11+#define R_MICROBLAZE_GNU_VTENTRY 12+#define R_MICROBLAZE_GOTPC_64 13+#define R_MICROBLAZE_GOT_64 14+#define R_MICROBLAZE_PLT_64 15+#define R_MICROBLAZE_REL 16+#define R_MICROBLAZE_JUMP_SLOT 17+#define R_MICROBLAZE_GLOB_DAT 18+#define R_MICROBLAZE_GOTOFF_64 19+#define R_MICROBLAZE_GOTOFF_32 20+#define R_MICROBLAZE_COPY 21+#define R_MICROBLAZE_TLS 22+#define R_MICROBLAZE_TLSGD 23+#define R_MICROBLAZE_TLSLD 24+#define R_MICROBLAZE_TLSDTPMOD32 25+#define R_MICROBLAZE_TLSDTPREL32 26+#define R_MICROBLAZE_TLSDTPREL64 27+#define R_MICROBLAZE_TLSGOTTPREL32 28+#define R_MICROBLAZE_TLSTPREL32 29++#define DT_NIOS2_GP 0x70000002++#define R_NIOS2_NONE 0+#define R_NIOS2_S16 1+#define R_NIOS2_U16 2+#define R_NIOS2_PCREL16 3+#define R_NIOS2_CALL26 4+#define R_NIOS2_IMM5 5+#define R_NIOS2_CACHE_OPX 6+#define R_NIOS2_IMM6 7+#define R_NIOS2_IMM8 8+#define R_NIOS2_HI16 9+#define R_NIOS2_LO16 10+#define R_NIOS2_HIADJ16 11+#define R_NIOS2_BFD_RELOC_32 12+#define R_NIOS2_BFD_RELOC_16 13+#define R_NIOS2_BFD_RELOC_8 14+#define R_NIOS2_GPREL 15+#define R_NIOS2_GNU_VTINHERIT 16+#define R_NIOS2_GNU_VTENTRY 17+#define R_NIOS2_UJMP 18+#define R_NIOS2_CJMP 19+#define R_NIOS2_CALLR 20+#define R_NIOS2_ALIGN 21+#define R_NIOS2_GOT16 22+#define R_NIOS2_CALL16 23+#define R_NIOS2_GOTOFF_LO 24+#define R_NIOS2_GOTOFF_HA 25+#define R_NIOS2_PCREL_LO 26+#define R_NIOS2_PCREL_HA 27+#define R_NIOS2_TLS_GD16 28+#define R_NIOS2_TLS_LDM16 29+#define R_NIOS2_TLS_LDO16 30+#define R_NIOS2_TLS_IE16 31+#define R_NIOS2_TLS_LE16 32+#define R_NIOS2_TLS_DTPMOD 33+#define R_NIOS2_TLS_DTPREL 34+#define R_NIOS2_TLS_TPREL 35+#define R_NIOS2_COPY 36+#define R_NIOS2_GLOB_DAT 37+#define R_NIOS2_JUMP_SLOT 38+#define R_NIOS2_RELATIVE 39+#define R_NIOS2_GOTOFF 40+#define R_NIOS2_CALL26_NOAT 41+#define R_NIOS2_GOT_LO 42+#define R_NIOS2_GOT_HA 43+#define R_NIOS2_CALL_LO 44+#define R_NIOS2_CALL_HA 45++#define R_OR1K_NONE 0+#define R_OR1K_32 1+#define R_OR1K_16 2+#define R_OR1K_8 3+#define R_OR1K_LO_16_IN_INSN 4+#define R_OR1K_HI_16_IN_INSN 5+#define R_OR1K_INSN_REL_26 6+#define R_OR1K_GNU_VTENTRY 7+#define R_OR1K_GNU_VTINHERIT 8+#define R_OR1K_32_PCREL 9+#define R_OR1K_16_PCREL 10+#define R_OR1K_8_PCREL 11+#define R_OR1K_GOTPC_HI16 12+#define R_OR1K_GOTPC_LO16 13+#define R_OR1K_GOT16 14+#define R_OR1K_PLT26 15+#define R_OR1K_GOTOFF_HI16 16+#define R_OR1K_GOTOFF_LO16 17+#define R_OR1K_COPY 18+#define R_OR1K_GLOB_DAT 19+#define R_OR1K_JMP_SLOT 20+#define R_OR1K_RELATIVE 21+#define R_OR1K_TLS_GD_HI16 22+#define R_OR1K_TLS_GD_LO16 23+#define R_OR1K_TLS_LDM_HI16 24+#define R_OR1K_TLS_LDM_LO16 25+#define R_OR1K_TLS_LDO_HI16 26+#define R_OR1K_TLS_LDO_LO16 27+#define R_OR1K_TLS_IE_HI16 28+#define R_OR1K_TLS_IE_LO16 29+#define R_OR1K_TLS_LE_HI16 30+#define R_OR1K_TLS_LE_LO16 31+#define R_OR1K_TLS_TPOFF 32+#define R_OR1K_TLS_DTPOFF 33+#define R_OR1K_TLS_DTPMOD 34++#define R_BPF_NONE 0+#define R_BPF_MAP_FD 1++#define R_RISCV_NONE 0+#define R_RISCV_32 1+#define R_RISCV_64 2+#define R_RISCV_RELATIVE 3+#define R_RISCV_COPY 4+#define R_RISCV_JUMP_SLOT 5+#define R_RISCV_TLS_DTPMOD32 6+#define R_RISCV_TLS_DTPMOD64 7+#define R_RISCV_TLS_DTPREL32 8+#define R_RISCV_TLS_DTPREL64 9+#define R_RISCV_TLS_TPREL32 10+#define R_RISCV_TLS_TPREL64 11+#define R_RISCV_TLSDESC 12++#define R_RISCV_BRANCH 16+#define R_RISCV_JAL 17+#define R_RISCV_CALL 18+#define R_RISCV_CALL_PLT 19+#define R_RISCV_GOT_HI20 20+#define R_RISCV_TLS_GOT_HI20 21+#define R_RISCV_TLS_GD_HI20 22+#define R_RISCV_PCREL_HI20 23+#define R_RISCV_PCREL_LO12_I 24+#define R_RISCV_PCREL_LO12_S 25+#define R_RISCV_HI20 26+#define R_RISCV_LO12_I 27+#define R_RISCV_LO12_S 28+#define R_RISCV_TPREL_HI20 29+#define R_RISCV_TPREL_LO12_I 30+#define R_RISCV_TPREL_LO12_S 31+#define R_RISCV_TPREL_ADD 32+#define R_RISCV_ADD8 33+#define R_RISCV_ADD16 34+#define R_RISCV_ADD32 35+#define R_RISCV_ADD64 36+#define R_RISCV_SUB8 37+#define R_RISCV_SUB16 38+#define R_RISCV_SUB32 39+#define R_RISCV_SUB64 40+#define R_RISCV_GOT32_PCREL 41+#define R_RISCV_ALIGN 43+#define R_RISCV_RVC_BRANCH 44+#define R_RISCV_RVC_JUMP 45+#define R_RISCV_RVC_LUI 46+#define R_RISCV_RELAX 51+#define R_RISCV_SUB6 52+#define R_RISCV_SET6 53+#define R_RISCV_SET8 54+#define R_RISCV_SET16 55+#define R_RISCV_SET32 56+#define R_RISCV_32_PCREL 57+#define R_RISCV_IRELATIVE 58+#define R_RISCV_PLT32 59+#define R_RISCV_SET_ULEB128 60+#define R_RISCV_SUB_ULEB128 61+#define R_RISCV_TLSDESC_HI20 62+#define R_RISCV_TLSDESC_LOAD_LO12 63+#define R_RISCV_TLSDESC_ADD_LO12 64+#define R_RISCV_TLSDESC_CALL 65++#define EF_LARCH_ABI_MODIFIER_MASK 0x07+#define EF_LARCH_ABI_SOFT_FLOAT 0x01+#define EF_LARCH_ABI_SINGLE_FLOAT 0x02+#define EF_LARCH_ABI_DOUBLE_FLOAT 0x03+#define EF_LARCH_OBJABI_V1 0x40++#define R_LARCH_NONE 0+#define R_LARCH_32 1+#define R_LARCH_64 2+#define R_LARCH_RELATIVE 3+#define R_LARCH_COPY 4+#define R_LARCH_JUMP_SLOT 5+#define R_LARCH_TLS_DTPMOD32 6+#define R_LARCH_TLS_DTPMOD64 7+#define R_LARCH_TLS_DTPREL32 8+#define R_LARCH_TLS_DTPREL64 9+#define R_LARCH_TLS_TPREL32 10+#define R_LARCH_TLS_TPREL64 11+#define R_LARCH_IRELATIVE 12+#define R_LARCH_MARK_LA 20+#define R_LARCH_MARK_PCREL 21+#define R_LARCH_SOP_PUSH_PCREL 22+#define R_LARCH_SOP_PUSH_ABSOLUTE 23+#define R_LARCH_SOP_PUSH_DUP 24+#define R_LARCH_SOP_PUSH_GPREL 25+#define R_LARCH_SOP_PUSH_TLS_TPREL 26+#define R_LARCH_SOP_PUSH_TLS_GOT 27+#define R_LARCH_SOP_PUSH_TLS_GD 28+#define R_LARCH_SOP_PUSH_PLT_PCREL 29+#define R_LARCH_SOP_ASSERT 30+#define R_LARCH_SOP_NOT 31+#define R_LARCH_SOP_SUB 32+#define R_LARCH_SOP_SL 33+#define R_LARCH_SOP_SR 34+#define R_LARCH_SOP_ADD 35+#define R_LARCH_SOP_AND 36+#define R_LARCH_SOP_IF_ELSE 37+#define R_LARCH_SOP_POP_32_S_10_5 38+#define R_LARCH_SOP_POP_32_U_10_12 39+#define R_LARCH_SOP_POP_32_S_10_12 40+#define R_LARCH_SOP_POP_32_S_10_16 41+#define R_LARCH_SOP_POP_32_S_10_16_S2 42+#define R_LARCH_SOP_POP_32_S_5_20 43+#define R_LARCH_SOP_POP_32_S_0_5_10_16_S2 44+#define R_LARCH_SOP_POP_32_S_0_10_10_16_S2 45+#define R_LARCH_SOP_POP_32_U 46+#define R_LARCH_ADD8 47+#define R_LARCH_ADD16 48+#define R_LARCH_ADD24 49+#define R_LARCH_ADD32 50+#define R_LARCH_ADD64 51+#define R_LARCH_SUB8 52+#define R_LARCH_SUB16 53+#define R_LARCH_SUB24 54+#define R_LARCH_SUB32 55+#define R_LARCH_SUB64 56+#define R_LARCH_GNU_VTINHERIT 57+#define R_LARCH_GNU_VTENTRY 58+#define R_LARCH_B16 64+#define R_LARCH_B21 65+#define R_LARCH_B26 66+#define R_LARCH_ABS_HI20 67+#define R_LARCH_ABS_LO12 68+#define R_LARCH_ABS64_LO20 69+#define R_LARCH_ABS64_HI12 70+#define R_LARCH_PCALA_HI20 71+#define R_LARCH_PCALA_LO12 72+#define R_LARCH_PCALA64_LO20 73+#define R_LARCH_PCALA64_HI12 74+#define R_LARCH_GOT_PC_HI20 75+#define R_LARCH_GOT_PC_LO12 76+#define R_LARCH_GOT64_PC_LO20 77+#define R_LARCH_GOT64_PC_HI12 78+#define R_LARCH_GOT_HI20 79+#define R_LARCH_GOT_LO12 80+#define R_LARCH_GOT64_LO20 81+#define R_LARCH_GOT64_HI12 82+#define R_LARCH_TLS_LE_HI20 83+#define R_LARCH_TLS_LE_LO12 84+#define R_LARCH_TLS_LE64_LO20 85+#define R_LARCH_TLS_LE64_HI12 86+#define R_LARCH_TLS_IE_PC_HI20 87+#define R_LARCH_TLS_IE_PC_LO12 88+#define R_LARCH_TLS_IE64_PC_LO20 89+#define R_LARCH_TLS_IE64_PC_HI12 90+#define R_LARCH_TLS_IE_HI20 91+#define R_LARCH_TLS_IE_LO12 92+#define R_LARCH_TLS_IE64_LO20 93+#define R_LARCH_TLS_IE64_HI12 94+#define R_LARCH_TLS_LD_PC_HI20 95+#define R_LARCH_TLS_LD_HI20 96+#define R_LARCH_TLS_GD_PC_HI20 97+#define R_LARCH_TLS_GD_HI20 98+#define R_LARCH_32_PCREL 99+#define R_LARCH_RELAX 100++#ifdef __cplusplus+}+#endif+++#endif
@@ -0,0 +1,80 @@+#ifndef _ENDIAN_H+#define _ENDIAN_H++#include <features.h>++#define __NEED_uint16_t+#define __NEED_uint32_t+#define __NEED_uint64_t++#include <bits/alltypes.h>++#define __PDP_ENDIAN 3412++#define BIG_ENDIAN __BIG_ENDIAN+#define LITTLE_ENDIAN __LITTLE_ENDIAN+#define PDP_ENDIAN __PDP_ENDIAN+#define BYTE_ORDER __BYTE_ORDER++static __inline uint16_t __bswap16(uint16_t __x)+{+ return __x<<8 | __x>>8;+}++static __inline uint32_t __bswap32(uint32_t __x)+{+ return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;+}++static __inline uint64_t __bswap64(uint64_t __x)+{+ return __bswap32(__x)+0ULL<<32 | __bswap32(__x>>32);+}++#if __BYTE_ORDER == __LITTLE_ENDIAN+#define htobe16(x) __bswap16(x)+#define be16toh(x) __bswap16(x)+#define htobe32(x) __bswap32(x)+#define be32toh(x) __bswap32(x)+#define htobe64(x) __bswap64(x)+#define be64toh(x) __bswap64(x)+#define htole16(x) (uint16_t)(x)+#define le16toh(x) (uint16_t)(x)+#define htole32(x) (uint32_t)(x)+#define le32toh(x) (uint32_t)(x)+#define htole64(x) (uint64_t)(x)+#define le64toh(x) (uint64_t)(x)+#else+#define htobe16(x) (uint16_t)(x)+#define be16toh(x) (uint16_t)(x)+#define htobe32(x) (uint32_t)(x)+#define be32toh(x) (uint32_t)(x)+#define htobe64(x) (uint64_t)(x)+#define be64toh(x) (uint64_t)(x)+#define htole16(x) __bswap16(x)+#define le16toh(x) __bswap16(x)+#define htole32(x) __bswap32(x)+#define le32toh(x) __bswap32(x)+#define htole64(x) __bswap64(x)+#define le64toh(x) __bswap64(x)+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#if __BYTE_ORDER == __LITTLE_ENDIAN+#define betoh16(x) __bswap16(x)+#define betoh32(x) __bswap32(x)+#define betoh64(x) __bswap64(x)+#define letoh16(x) (uint16_t)(x)+#define letoh32(x) (uint32_t)(x)+#define letoh64(x) (uint64_t)(x)+#else+#define betoh16(x) (uint16_t)(x)+#define betoh32(x) (uint32_t)(x)+#define betoh64(x) (uint64_t)(x)+#define letoh16(x) __bswap16(x)+#define letoh32(x) __bswap32(x)+#define letoh64(x) __bswap64(x)+#endif+#endif++#endif
@@ -0,0 +1,25 @@+#ifndef _ERR_H+#define _ERR_H++#include <features.h>+#include <stdarg.h>++#ifdef __cplusplus+extern "C" {+#endif++void warn(const char *, ...);+void vwarn(const char *, va_list);+void warnx(const char *, ...);+void vwarnx(const char *, va_list);++_Noreturn void err(int, const char *, ...);+_Noreturn void verr(int, const char *, va_list);+_Noreturn void errx(int, const char *, ...);+_Noreturn void verrx(int, const char *, va_list);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,27 @@+#ifndef _ERRNO_H+#define _ERRNO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <bits/errno.h>++#ifdef __GNUC__+__attribute__((const))+#endif+int *__errno_location(void);+#define errno (*__errno_location())++#ifdef _GNU_SOURCE+extern char *program_invocation_short_name, *program_invocation_name;+#endif++#ifdef __cplusplus+}+#endif++#endif+
@@ -0,0 +1,218 @@+#ifndef _FCNTL_H+#define _FCNTL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_off_t+#define __NEED_pid_t+#define __NEED_mode_t++#ifdef _GNU_SOURCE+#define __NEED_size_t+#define __NEED_ssize_t+#define __NEED_struct_iovec+#endif++#include <bits/alltypes.h>++#include <bits/fcntl.h>++struct flock {+ short l_type;+ short l_whence;+ off_t l_start;+ off_t l_len;+ pid_t l_pid;+};++int creat(const char *, mode_t);+int fcntl(int, int, ...);+int open(const char *, int, ...);+int openat(int, const char *, int, ...);+int posix_fadvise(int, off_t, off_t, int);+int posix_fallocate(int, off_t, off_t);++#define O_SEARCH O_PATH+#define O_EXEC O_PATH+#define O_TTY_INIT 0++#define O_ACCMODE (03|O_SEARCH)+#define O_RDONLY 00+#define O_WRONLY 01+#define O_RDWR 02++#define F_OFD_GETLK 36+#define F_OFD_SETLK 37+#define F_OFD_SETLKW 38++#define F_DUPFD_CLOEXEC 1030++#define F_RDLCK 0+#define F_WRLCK 1+#define F_UNLCK 2++#define FD_CLOEXEC 1++#define AT_FDCWD (-100)+#define AT_SYMLINK_NOFOLLOW 0x100+#define AT_REMOVEDIR 0x200+#define AT_SYMLINK_FOLLOW 0x400+#define AT_EACCESS 0x200++#define POSIX_FADV_NORMAL 0+#define POSIX_FADV_RANDOM 1+#define POSIX_FADV_SEQUENTIAL 2+#define POSIX_FADV_WILLNEED 3+#ifndef POSIX_FADV_DONTNEED+#define POSIX_FADV_DONTNEED 4+#define POSIX_FADV_NOREUSE 5+#endif++#undef SEEK_SET+#undef SEEK_CUR+#undef SEEK_END+#define SEEK_SET 0+#define SEEK_CUR 1+#define SEEK_END 2++#ifndef S_IRUSR+#define S_ISUID 04000+#define S_ISGID 02000+#define S_ISVTX 01000+#define S_IRUSR 0400+#define S_IWUSR 0200+#define S_IXUSR 0100+#define S_IRWXU 0700+#define S_IRGRP 0040+#define S_IWGRP 0020+#define S_IXGRP 0010+#define S_IRWXG 0070+#define S_IROTH 0004+#define S_IWOTH 0002+#define S_IXOTH 0001+#define S_IRWXO 0007+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define AT_NO_AUTOMOUNT 0x800+#define AT_EMPTY_PATH 0x1000+#define AT_STATX_SYNC_TYPE 0x6000+#define AT_STATX_SYNC_AS_STAT 0x0000+#define AT_STATX_FORCE_SYNC 0x2000+#define AT_STATX_DONT_SYNC 0x4000+#define AT_RECURSIVE 0x8000++#define FAPPEND O_APPEND+#define FFSYNC O_SYNC+#define FASYNC O_ASYNC+#define FNONBLOCK O_NONBLOCK+#define FNDELAY O_NDELAY++#define F_OK 0+#define R_OK 4+#define W_OK 2+#define X_OK 1+#define F_ULOCK 0+#define F_LOCK 1+#define F_TLOCK 2+#define F_TEST 3++#define F_SETLEASE 1024+#define F_GETLEASE 1025+#define F_NOTIFY 1026+#define F_CANCELLK 1029+#define F_SETPIPE_SZ 1031+#define F_GETPIPE_SZ 1032+#define F_ADD_SEALS 1033+#define F_GET_SEALS 1034++#define F_SEAL_SEAL 0x0001+#define F_SEAL_SHRINK 0x0002+#define F_SEAL_GROW 0x0004+#define F_SEAL_WRITE 0x0008+#define F_SEAL_FUTURE_WRITE 0x0010++#define F_GET_RW_HINT 1035+#define F_SET_RW_HINT 1036+#define F_GET_FILE_RW_HINT 1037+#define F_SET_FILE_RW_HINT 1038++#define RWF_WRITE_LIFE_NOT_SET 0+#define RWH_WRITE_LIFE_NONE 1+#define RWH_WRITE_LIFE_SHORT 2+#define RWH_WRITE_LIFE_MEDIUM 3+#define RWH_WRITE_LIFE_LONG 4+#define RWH_WRITE_LIFE_EXTREME 5++#define DN_ACCESS 0x00000001+#define DN_MODIFY 0x00000002+#define DN_CREATE 0x00000004+#define DN_DELETE 0x00000008+#define DN_RENAME 0x00000010+#define DN_ATTRIB 0x00000020+#define DN_MULTISHOT 0x80000000++int lockf(int, int, off_t);+#endif++#if defined(_GNU_SOURCE)+#define F_OWNER_TID 0+#define F_OWNER_PID 1+#define F_OWNER_PGRP 2+#define F_OWNER_GID 2+struct file_handle {+ unsigned handle_bytes;+ int handle_type;+ unsigned char f_handle[];+};+struct f_owner_ex {+ int type;+ pid_t pid;+};+#define FALLOC_FL_KEEP_SIZE 1+#define FALLOC_FL_PUNCH_HOLE 2+#define MAX_HANDLE_SZ 128+#define SYNC_FILE_RANGE_WAIT_BEFORE 1+#define SYNC_FILE_RANGE_WRITE 2+#define SYNC_FILE_RANGE_WAIT_AFTER 4+#define SPLICE_F_MOVE 1+#define SPLICE_F_NONBLOCK 2+#define SPLICE_F_MORE 4+#define SPLICE_F_GIFT 8+int fallocate(int, int, off_t, off_t);+int name_to_handle_at(int, const char *, struct file_handle *, int *, int);+int open_by_handle_at(int, struct file_handle *, int);+ssize_t readahead(int, off_t, size_t);+int sync_file_range(int, off_t, off_t, unsigned);+ssize_t vmsplice(int, const struct iovec *, size_t, unsigned);+ssize_t splice(int, off_t *, int, off_t *, size_t, unsigned);+ssize_t tee(int, int, size_t, unsigned);+#define loff_t off_t+#endif++#if defined(_LARGEFILE64_SOURCE)+#define F_GETLK64 F_GETLK+#define F_SETLK64 F_SETLK+#define F_SETLKW64 F_SETLKW+#define flock64 flock+#define open64 open+#define openat64 openat+#define creat64 creat+#define lockf64 lockf+#define posix_fadvise64 posix_fadvise+#define posix_fallocate64 posix_fallocate+#define off64_t off_t+#if defined(_GNU_SOURCE)+#define fallocate64 fallocate+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,40 @@+#ifndef _FEATURES_H+#define _FEATURES_H++#if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)+#define _GNU_SOURCE 1+#endif++#if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)+#define _BSD_SOURCE 1+#endif++#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \+ && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \+ && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)+#define _BSD_SOURCE 1+#define _XOPEN_SOURCE 700+#endif++#if __STDC_VERSION__ >= 199901L+#define __restrict restrict+#elif !defined(__GNUC__)+#define __restrict+#endif++#if __STDC_VERSION__ >= 199901L || defined(__cplusplus)+#define __inline inline+#elif !defined(__GNUC__)+#define __inline+#endif++#if __STDC_VERSION__ >= 201112L+#elif defined(__GNUC__)+#define _Noreturn __attribute__((__noreturn__))+#else+#define _Noreturn+#endif++#define __REDIR(x,y) __typeof__(x) x __asm__(#y)++#endif
@@ -0,0 +1,28 @@+#ifndef _FENV_H+#define _FENV_H++#ifdef __cplusplus+extern "C" {+#endif++#include <bits/fenv.h>++int feclearexcept(int);+int fegetexceptflag(fexcept_t *, int);+int feraiseexcept(int);+int fesetexceptflag(const fexcept_t *, int);+int fetestexcept(int);++int fegetround(void);+int fesetround(int);++int fegetenv(fenv_t *);+int feholdexcept(fenv_t *);+int fesetenv(const fenv_t *);+int feupdateenv(const fenv_t *);++#ifdef __cplusplus+}+#endif+#endif+
@@ -0,0 +1,52 @@+#ifndef _FLOAT_H+#define _FLOAT_H++#ifdef __cplusplus+extern "C" {+#endif++int __flt_rounds(void);+#define FLT_ROUNDS (__flt_rounds())++#define FLT_RADIX 2++#define FLT_TRUE_MIN 1.40129846432481707092e-45F+#define FLT_MIN 1.17549435082228750797e-38F+#define FLT_MAX 3.40282346638528859812e+38F+#define FLT_EPSILON 1.1920928955078125e-07F++#define FLT_MANT_DIG 24+#define FLT_MIN_EXP (-125)+#define FLT_MAX_EXP 128+#define FLT_HAS_SUBNORM 1++#define FLT_DIG 6+#define FLT_DECIMAL_DIG 9+#define FLT_MIN_10_EXP (-37)+#define FLT_MAX_10_EXP 38++#define DBL_TRUE_MIN 4.94065645841246544177e-324+#define DBL_MIN 2.22507385850720138309e-308+#define DBL_MAX 1.79769313486231570815e+308+#define DBL_EPSILON 2.22044604925031308085e-16++#define DBL_MANT_DIG 53+#define DBL_MIN_EXP (-1021)+#define DBL_MAX_EXP 1024+#define DBL_HAS_SUBNORM 1++#define DBL_DIG 15+#define DBL_DECIMAL_DIG 17+#define DBL_MIN_10_EXP (-307)+#define DBL_MAX_10_EXP 308++#define LDBL_HAS_SUBNORM 1+#define LDBL_DECIMAL_DIG DECIMAL_DIG++#include <bits/float.h>++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,47 @@+#ifndef _FMTMSG_H+#define _FMTMSG_H++#ifdef __cplusplus+extern "C" {+#endif++#define MM_HARD 1+#define MM_SOFT 2+#define MM_FIRM 4++#define MM_APPL 8+#define MM_UTIL 16+#define MM_OPSYS 32++#define MM_RECOVER 64+#define MM_NRECOV 128++#define MM_PRINT 256+#define MM_CONSOLE 512++#define MM_NULLMC 0L++#define MM_HALT 1+#define MM_ERROR 2+#define MM_WARNING 3+#define MM_INFO 4+#define MM_NOSEV 0++#define MM_OK 0+#define MM_NOTOK (-1)+#define MM_NOMSG 1+#define MM_NOCON 4++#define MM_NULLLBL ((char*)0)+#define MM_NULLTXT ((char*)0)+#define MM_NULLACT ((char*)0)+#define MM_NULLTAG ((char*)0)+#define MM_NULLSEV 0++int fmtmsg(long, const char *, int, const char *, const char *, const char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,24 @@+#ifndef _FNMATCH_H+#define _FNMATCH_H++#ifdef __cplusplus+extern "C" {+#endif++#define FNM_PATHNAME 0x1+#define FNM_NOESCAPE 0x2+#define FNM_PERIOD 0x4+#define FNM_LEADING_DIR 0x8 +#define FNM_CASEFOLD 0x10+#define FNM_FILE_NAME FNM_PATHNAME++#define FNM_NOMATCH 1+#define FNM_NOSYS (-1)++int fnmatch(const char *, const char *, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,41 @@+#ifndef _FTW_H+#define _FTW_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <sys/stat.h>++#define FTW_F 1+#define FTW_D 2+#define FTW_DNR 3+#define FTW_NS 4+#define FTW_SL 5+#define FTW_DP 6+#define FTW_SLN 7++#define FTW_PHYS 1+#define FTW_MOUNT 2+#define FTW_CHDIR 4+#define FTW_DEPTH 8++struct FTW {+ int base;+ int level;+};++int ftw(const char *, int (*)(const char *, const struct stat *, int), int);+int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *), int, int);++#if defined(_LARGEFILE64_SOURCE)+#define ftw64 ftw+#define nftw64 nftw+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,30 @@+#ifndef _GETOPT_H+#define _GETOPT_H++#ifdef __cplusplus+extern "C" {+#endif++int getopt(int, char * const [], const char *);+extern char *optarg;+extern int optind, opterr, optopt, optreset;++struct option {+ const char *name;+ int has_arg;+ int *flag;+ int val;+};++int getopt_long(int, char *const *, const char *, const struct option *, int *);+int getopt_long_only(int, char *const *, const char *, const struct option *, int *);++#define no_argument 0+#define required_argument 1+#define optional_argument 2++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,52 @@+#ifndef _GLOB_H+#define _GLOB_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t++#include <bits/alltypes.h>++typedef struct {+ size_t gl_pathc;+ char **gl_pathv;+ size_t gl_offs;+ int __dummy1;+ void *__dummy2[5];+} glob_t;++int glob(const char *__restrict, int, int (*)(const char *, int), glob_t *__restrict);+void globfree(glob_t *);++#define GLOB_ERR 0x01+#define GLOB_MARK 0x02+#define GLOB_NOSORT 0x04+#define GLOB_DOOFFS 0x08+#define GLOB_NOCHECK 0x10+#define GLOB_APPEND 0x20+#define GLOB_NOESCAPE 0x40+#define GLOB_PERIOD 0x80++#define GLOB_TILDE 0x1000+#define GLOB_TILDE_CHECK 0x4000++#define GLOB_NOSPACE 1+#define GLOB_ABORTED 2+#define GLOB_NOMATCH 3+#define GLOB_NOSYS 4++#if defined(_LARGEFILE64_SOURCE)+#define glob64 glob+#define globfree64 globfree+#define glob64_t glob_t+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,53 @@+#ifndef _GRP_H+#define _GRP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_gid_t++#ifdef _GNU_SOURCE+#define __NEED_FILE+#endif++#include <bits/alltypes.h>++struct group {+ char *gr_name;+ char *gr_passwd;+ gid_t gr_gid;+ char **gr_mem;+};++struct group *getgrgid(gid_t);+struct group *getgrnam(const char *);++int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);+int getgrnam_r(const char *, struct group *, char *, size_t, struct group **);++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+struct group *getgrent(void);+void endgrent(void);+void setgrent(void);+#endif++#ifdef _GNU_SOURCE+struct group *fgetgrent(FILE *);+int putgrent(const struct group *, FILE *);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int getgrouplist(const char *, gid_t, gid_t *, int *);+int setgroups(size_t, const gid_t *);+int initgroups(const char *, gid_t);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,24 @@+#ifndef _ICONV_H+#define _ICONV_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t++#include <bits/alltypes.h>++typedef void *iconv_t;++iconv_t iconv_open(const char *, const char *);+size_t iconv(iconv_t, char **__restrict, size_t *__restrict, char **__restrict, size_t *__restrict);+int iconv_close(iconv_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,35 @@+#ifndef _IFADDRS_H+#define _IFADDRS_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <netinet/in.h>+#include <sys/socket.h>++struct ifaddrs {+ struct ifaddrs *ifa_next;+ char *ifa_name;+ unsigned ifa_flags;+ struct sockaddr *ifa_addr;+ struct sockaddr *ifa_netmask;+ union {+ struct sockaddr *ifu_broadaddr;+ struct sockaddr *ifu_dstaddr;+ } ifa_ifu;+ void *ifa_data;+};+#define ifa_broadaddr ifa_ifu.ifu_broadaddr+#define ifa_dstaddr ifa_ifu.ifu_dstaddr++void freeifaddrs(struct ifaddrs *);+int getifaddrs(struct ifaddrs **);++#ifdef __cplusplus+}+#endif++#endif+
@@ -0,0 +1,229 @@+#ifndef _INTTYPES_H+#define _INTTYPES_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <stdint.h>++#define __NEED_wchar_t+#include <bits/alltypes.h>++typedef struct { intmax_t quot, rem; } imaxdiv_t;++intmax_t imaxabs(intmax_t);+imaxdiv_t imaxdiv(intmax_t, intmax_t);++intmax_t strtoimax(const char *__restrict, char **__restrict, int);+uintmax_t strtoumax(const char *__restrict, char **__restrict, int);++intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);+uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);++#if UINTPTR_MAX == UINT64_MAX+#define __PRI64 "l"+#define __PRIPTR "l"+#else+#define __PRI64 "ll"+#define __PRIPTR ""+#endif++#define PRId8 "d"+#define PRId16 "d"+#define PRId32 "d"+#define PRId64 __PRI64 "d"++#define PRIdLEAST8 "d"+#define PRIdLEAST16 "d"+#define PRIdLEAST32 "d"+#define PRIdLEAST64 __PRI64 "d"++#define PRIdFAST8 "d"+#define PRIdFAST16 "d"+#define PRIdFAST32 "d"+#define PRIdFAST64 __PRI64 "d"++#define PRIi8 "i"+#define PRIi16 "i"+#define PRIi32 "i"+#define PRIi64 __PRI64 "i"++#define PRIiLEAST8 "i"+#define PRIiLEAST16 "i"+#define PRIiLEAST32 "i"+#define PRIiLEAST64 __PRI64 "i"++#define PRIiFAST8 "i"+#define PRIiFAST16 "i"+#define PRIiFAST32 "i"+#define PRIiFAST64 __PRI64 "i"++#define PRIo8 "o"+#define PRIo16 "o"+#define PRIo32 "o"+#define PRIo64 __PRI64 "o"++#define PRIoLEAST8 "o"+#define PRIoLEAST16 "o"+#define PRIoLEAST32 "o"+#define PRIoLEAST64 __PRI64 "o"++#define PRIoFAST8 "o"+#define PRIoFAST16 "o"+#define PRIoFAST32 "o"+#define PRIoFAST64 __PRI64 "o"++#define PRIu8 "u"+#define PRIu16 "u"+#define PRIu32 "u"+#define PRIu64 __PRI64 "u"++#define PRIuLEAST8 "u"+#define PRIuLEAST16 "u"+#define PRIuLEAST32 "u"+#define PRIuLEAST64 __PRI64 "u"++#define PRIuFAST8 "u"+#define PRIuFAST16 "u"+#define PRIuFAST32 "u"+#define PRIuFAST64 __PRI64 "u"++#define PRIx8 "x"+#define PRIx16 "x"+#define PRIx32 "x"+#define PRIx64 __PRI64 "x"++#define PRIxLEAST8 "x"+#define PRIxLEAST16 "x"+#define PRIxLEAST32 "x"+#define PRIxLEAST64 __PRI64 "x"++#define PRIxFAST8 "x"+#define PRIxFAST16 "x"+#define PRIxFAST32 "x"+#define PRIxFAST64 __PRI64 "x"++#define PRIX8 "X"+#define PRIX16 "X"+#define PRIX32 "X"+#define PRIX64 __PRI64 "X"++#define PRIXLEAST8 "X"+#define PRIXLEAST16 "X"+#define PRIXLEAST32 "X"+#define PRIXLEAST64 __PRI64 "X"++#define PRIXFAST8 "X"+#define PRIXFAST16 "X"+#define PRIXFAST32 "X"+#define PRIXFAST64 __PRI64 "X"++#define PRIdMAX __PRI64 "d"+#define PRIiMAX __PRI64 "i"+#define PRIoMAX __PRI64 "o"+#define PRIuMAX __PRI64 "u"+#define PRIxMAX __PRI64 "x"+#define PRIXMAX __PRI64 "X"++#define PRIdPTR __PRIPTR "d"+#define PRIiPTR __PRIPTR "i"+#define PRIoPTR __PRIPTR "o"+#define PRIuPTR __PRIPTR "u"+#define PRIxPTR __PRIPTR "x"+#define PRIXPTR __PRIPTR "X"++#define SCNd8 "hhd"+#define SCNd16 "hd"+#define SCNd32 "d"+#define SCNd64 __PRI64 "d"++#define SCNdLEAST8 "hhd"+#define SCNdLEAST16 "hd"+#define SCNdLEAST32 "d"+#define SCNdLEAST64 __PRI64 "d"++#define SCNdFAST8 "hhd"+#define SCNdFAST16 "d"+#define SCNdFAST32 "d"+#define SCNdFAST64 __PRI64 "d"++#define SCNi8 "hhi"+#define SCNi16 "hi"+#define SCNi32 "i"+#define SCNi64 __PRI64 "i"++#define SCNiLEAST8 "hhi"+#define SCNiLEAST16 "hi"+#define SCNiLEAST32 "i"+#define SCNiLEAST64 __PRI64 "i"++#define SCNiFAST8 "hhi"+#define SCNiFAST16 "i"+#define SCNiFAST32 "i"+#define SCNiFAST64 __PRI64 "i"++#define SCNu8 "hhu"+#define SCNu16 "hu"+#define SCNu32 "u"+#define SCNu64 __PRI64 "u"++#define SCNuLEAST8 "hhu"+#define SCNuLEAST16 "hu"+#define SCNuLEAST32 "u"+#define SCNuLEAST64 __PRI64 "u"++#define SCNuFAST8 "hhu"+#define SCNuFAST16 "u"+#define SCNuFAST32 "u"+#define SCNuFAST64 __PRI64 "u"++#define SCNo8 "hho"+#define SCNo16 "ho"+#define SCNo32 "o"+#define SCNo64 __PRI64 "o"++#define SCNoLEAST8 "hho"+#define SCNoLEAST16 "ho"+#define SCNoLEAST32 "o"+#define SCNoLEAST64 __PRI64 "o"++#define SCNoFAST8 "hho"+#define SCNoFAST16 "o"+#define SCNoFAST32 "o"+#define SCNoFAST64 __PRI64 "o"++#define SCNx8 "hhx"+#define SCNx16 "hx"+#define SCNx32 "x"+#define SCNx64 __PRI64 "x"++#define SCNxLEAST8 "hhx"+#define SCNxLEAST16 "hx"+#define SCNxLEAST32 "x"+#define SCNxLEAST64 __PRI64 "x"++#define SCNxFAST8 "hhx"+#define SCNxFAST16 "x"+#define SCNxFAST32 "x"+#define SCNxFAST64 __PRI64 "x"++#define SCNdMAX __PRI64 "d"+#define SCNiMAX __PRI64 "i"+#define SCNoMAX __PRI64 "o"+#define SCNuMAX __PRI64 "u"+#define SCNxMAX __PRI64 "x"++#define SCNdPTR __PRIPTR "d"+#define SCNiPTR __PRIPTR "i"+#define SCNoPTR __PRIPTR "o"+#define SCNuPTR __PRIPTR "u"+#define SCNxPTR __PRIPTR "x"++#ifdef __cplusplus+}+#endif++#endif+
@@ -0,0 +1,20 @@+#ifndef _ISO646_H+#define _ISO646_H++#ifndef __cplusplus++#define and &&+#define and_eq &=+#define bitand &+#define bitor |+#define compl ~+#define not !+#define not_eq !=+#define or ||+#define or_eq |=+#define xor ^+#define xor_eq ^=++#endif++#endif
@@ -0,0 +1,98 @@+#ifndef _LANGINFO_H+#define _LANGINFO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <nl_types.h>++#define __NEED_locale_t++#include <bits/alltypes.h>++#define ABDAY_1 0x20000+#define ABDAY_2 0x20001+#define ABDAY_3 0x20002+#define ABDAY_4 0x20003+#define ABDAY_5 0x20004+#define ABDAY_6 0x20005+#define ABDAY_7 0x20006++#define DAY_1 0x20007+#define DAY_2 0x20008+#define DAY_3 0x20009+#define DAY_4 0x2000A+#define DAY_5 0x2000B+#define DAY_6 0x2000C+#define DAY_7 0x2000D++#define ABMON_1 0x2000E+#define ABMON_2 0x2000F+#define ABMON_3 0x20010+#define ABMON_4 0x20011+#define ABMON_5 0x20012+#define ABMON_6 0x20013+#define ABMON_7 0x20014+#define ABMON_8 0x20015+#define ABMON_9 0x20016+#define ABMON_10 0x20017+#define ABMON_11 0x20018+#define ABMON_12 0x20019++#define MON_1 0x2001A+#define MON_2 0x2001B+#define MON_3 0x2001C+#define MON_4 0x2001D+#define MON_5 0x2001E+#define MON_6 0x2001F+#define MON_7 0x20020+#define MON_8 0x20021+#define MON_9 0x20022+#define MON_10 0x20023+#define MON_11 0x20024+#define MON_12 0x20025++#define AM_STR 0x20026+#define PM_STR 0x20027++#define D_T_FMT 0x20028+#define D_FMT 0x20029+#define T_FMT 0x2002A+#define T_FMT_AMPM 0x2002B++#define ERA 0x2002C+#define ERA_D_FMT 0x2002E+#define ALT_DIGITS 0x2002F+#define ERA_D_T_FMT 0x20030+#define ERA_T_FMT 0x20031++#define CODESET 14++#define CRNCYSTR 0x4000F++#define RADIXCHAR 0x10000+#define THOUSEP 0x10001+#define YESEXPR 0x50000+#define NOEXPR 0x50001++#define _NL_LOCALE_NAME(cat) (((cat)<<16) | 0xffff)++#if defined(_GNU_SOURCE)+#define NL_LOCALE_NAME(cat) _NL_LOCALE_NAME(cat)+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define YESSTR 0x50002+#define NOSTR 0x50003+#endif++char *nl_langinfo(nl_item);+char *nl_langinfo_l(nl_item, locale_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,1 @@+#include <utmp.h>
@@ -0,0 +1,15 @@+#ifndef _LIBGEN_H+#define _LIBGEN_H++#ifdef __cplusplus+extern "C" {+#endif++char *dirname(char *);+char *basename(char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,33 @@+#ifndef _LIBINTL_H+#define _LIBINTL_H++#ifdef __cplusplus+extern "C" {+#endif++#define __USE_GNU_GETTEXT 1+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1)++#if __GNUC__ >= 3+#define __fa(n) __attribute__ ((__format_arg__ (n)))+#else+#define __fa(n)+#endif++char *gettext(const char *) __fa(1);+char *dgettext(const char *, const char *) __fa(2);+char *dcgettext(const char *, const char *, int) __fa(2);+char *ngettext(const char *, const char *, unsigned long) __fa(1) __fa(2);+char *dngettext(const char *, const char *, const char *, unsigned long) __fa(2) __fa(3);+char *dcngettext(const char *, const char *, const char *, unsigned long, int) __fa(2) __fa(3);+char *textdomain(const char *);+char *bindtextdomain (const char *, const char *);+char *bind_textdomain_codeset(const char *, const char *);++#undef __fa++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,166 @@+#ifndef _LIMITS_H+#define _LIMITS_H++#include <features.h>++#include <bits/alltypes.h> /* __LONG_MAX */++/* Support signed or unsigned plain-char */++#if '\xff' > 0+#define CHAR_MIN 0+#define CHAR_MAX 255+#else+#define CHAR_MIN (-128)+#define CHAR_MAX 127+#endif++#define CHAR_BIT 8+#define SCHAR_MIN (-128)+#define SCHAR_MAX 127+#define UCHAR_MAX 255+#define SHRT_MIN (-1-0x7fff)+#define SHRT_MAX 0x7fff+#define USHRT_MAX 0xffff+#define INT_MIN (-1-0x7fffffff)+#define INT_MAX 0x7fffffff+#define UINT_MAX 0xffffffffU+#define LONG_MIN (-LONG_MAX-1)+#define LONG_MAX __LONG_MAX+#define ULONG_MAX (2UL*LONG_MAX+1)+#define LLONG_MIN (-LLONG_MAX-1)+#define LLONG_MAX 0x7fffffffffffffffLL+#define ULLONG_MAX (2ULL*LLONG_MAX+1)++#define MB_LEN_MAX 4++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#include <bits/limits.h>++#define PIPE_BUF 4096+#define FILESIZEBITS 64+#ifndef NAME_MAX+#define NAME_MAX 255+#endif+#define PATH_MAX 4096+#define NGROUPS_MAX 32+#define ARG_MAX 131072+#define IOV_MAX 1024+#define SYMLOOP_MAX 40+#define WORD_BIT 32+#define SSIZE_MAX LONG_MAX+#define TZNAME_MAX 6+#define TTY_NAME_MAX 32+#define HOST_NAME_MAX 255++#if LONG_MAX == 0x7fffffffL+#define LONG_BIT 32+#else+#define LONG_BIT 64+#endif++/* Implementation choices... */++#define PTHREAD_KEYS_MAX 128+#define PTHREAD_STACK_MIN 2048+#define PTHREAD_DESTRUCTOR_ITERATIONS 4+#define SEM_VALUE_MAX 0x7fffffff+#define SEM_NSEMS_MAX 256+#define DELAYTIMER_MAX 0x7fffffff+#define MQ_PRIO_MAX 32768+#define LOGIN_NAME_MAX 256++/* Arbitrary numbers... */++#define BC_BASE_MAX 99+#define BC_DIM_MAX 2048+#define BC_SCALE_MAX 99+#define BC_STRING_MAX 1000+#define CHARCLASS_NAME_MAX 14+#define COLL_WEIGHTS_MAX 2+#define EXPR_NEST_MAX 32+#define LINE_MAX 4096+#define RE_DUP_MAX 255++#define NL_ARGMAX 9+#define NL_MSGMAX 32767+#define NL_SETMAX 255+#define NL_TEXTMAX 2048++#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)++#ifdef PAGESIZE+#define PAGE_SIZE PAGESIZE+#endif+#define NZERO 20+#define NL_LANGMAX 32++#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)++#define NL_NMAX 16++#endif++/* POSIX/SUS requirements follow. These numbers come directly+ * from SUS and have nothing to do with the host system. */++#define _POSIX_AIO_LISTIO_MAX 2+#define _POSIX_AIO_MAX 1+#define _POSIX_ARG_MAX 4096+#define _POSIX_CHILD_MAX 25+#define _POSIX_CLOCKRES_MIN 20000000+#define _POSIX_DELAYTIMER_MAX 32+#define _POSIX_HOST_NAME_MAX 255+#define _POSIX_LINK_MAX 8+#define _POSIX_LOGIN_NAME_MAX 9+#define _POSIX_MAX_CANON 255+#define _POSIX_MAX_INPUT 255+#define _POSIX_MQ_OPEN_MAX 8+#define _POSIX_MQ_PRIO_MAX 32+#define _POSIX_NAME_MAX 14+#define _POSIX_NGROUPS_MAX 8+#define _POSIX_OPEN_MAX 20+#define _POSIX_PATH_MAX 256+#define _POSIX_PIPE_BUF 512+#define _POSIX_RE_DUP_MAX 255+#define _POSIX_RTSIG_MAX 8+#define _POSIX_SEM_NSEMS_MAX 256+#define _POSIX_SEM_VALUE_MAX 32767+#define _POSIX_SIGQUEUE_MAX 32+#define _POSIX_SSIZE_MAX 32767+#define _POSIX_STREAM_MAX 8+#define _POSIX_SS_REPL_MAX 4+#define _POSIX_SYMLINK_MAX 255+#define _POSIX_SYMLOOP_MAX 8+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4+#define _POSIX_THREAD_KEYS_MAX 128+#define _POSIX_THREAD_THREADS_MAX 64+#define _POSIX_TIMER_MAX 32+#define _POSIX_TRACE_EVENT_NAME_MAX 30+#define _POSIX_TRACE_NAME_MAX 8+#define _POSIX_TRACE_SYS_MAX 8+#define _POSIX_TRACE_USER_EVENT_MAX 32+#define _POSIX_TTY_NAME_MAX 9+#define _POSIX_TZNAME_MAX 6+#define _POSIX2_BC_BASE_MAX 99+#define _POSIX2_BC_DIM_MAX 2048+#define _POSIX2_BC_SCALE_MAX 99+#define _POSIX2_BC_STRING_MAX 1000+#define _POSIX2_CHARCLASS_NAME_MAX 14+#define _POSIX2_COLL_WEIGHTS_MAX 2+#define _POSIX2_EXPR_NEST_MAX 32+#define _POSIX2_LINE_MAX 2048+#define _POSIX2_RE_DUP_MAX 255++#define _XOPEN_IOV_MAX 16+#define _XOPEN_NAME_MAX 255+#define _XOPEN_PATH_MAX 1024++#endif
@@ -0,0 +1,53 @@+#ifndef _LINK_H+#define _LINK_H++#ifdef __cplusplus+extern "C" {+#endif++#include <elf.h>+#define __NEED_size_t+#define __NEED_uint32_t+#include <bits/alltypes.h>++#if UINTPTR_MAX > 0xffffffff+#define ElfW(type) Elf64_ ## type+#else+#define ElfW(type) Elf32_ ## type+#endif++#include <bits/link.h>++struct dl_phdr_info {+ ElfW(Addr) dlpi_addr;+ const char *dlpi_name;+ const ElfW(Phdr) *dlpi_phdr;+ ElfW(Half) dlpi_phnum;+ unsigned long long int dlpi_adds;+ unsigned long long int dlpi_subs;+ size_t dlpi_tls_modid;+ void *dlpi_tls_data;+};++struct link_map {+ ElfW(Addr) l_addr;+ char *l_name;+ ElfW(Dyn) *l_ld;+ struct link_map *l_next, *l_prev;+};++struct r_debug {+ int r_version;+ struct link_map *r_map;+ ElfW(Addr) r_brk;+ enum { RT_CONSISTENT, RT_ADD, RT_DELETE } r_state;+ ElfW(Addr) r_ldbase;+};++int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *), void *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,88 @@+#ifndef _LOCALE_H+#define _LOCALE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define LC_CTYPE 0+#define LC_NUMERIC 1+#define LC_TIME 2+#define LC_COLLATE 3+#define LC_MONETARY 4+#define LC_MESSAGES 5+#define LC_ALL 6++struct lconv {+ char *decimal_point;+ char *thousands_sep;+ char *grouping;++ char *int_curr_symbol;+ char *currency_symbol;+ char *mon_decimal_point;+ char *mon_thousands_sep;+ char *mon_grouping;+ char *positive_sign;+ char *negative_sign;+ char int_frac_digits;+ char frac_digits;+ char p_cs_precedes;+ char p_sep_by_space;+ char n_cs_precedes;+ char n_sep_by_space;+ char p_sign_posn;+ char n_sign_posn;+ char int_p_cs_precedes;+ char int_p_sep_by_space;+ char int_n_cs_precedes;+ char int_n_sep_by_space;+ char int_p_sign_posn;+ char int_n_sign_posn;+};+++char *setlocale (int, const char *);+struct lconv *localeconv(void);+++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#define __NEED_locale_t++#include <bits/alltypes.h>++#define LC_GLOBAL_LOCALE ((locale_t)-1)++#define LC_CTYPE_MASK (1<<LC_CTYPE)+#define LC_NUMERIC_MASK (1<<LC_NUMERIC)+#define LC_TIME_MASK (1<<LC_TIME)+#define LC_COLLATE_MASK (1<<LC_COLLATE)+#define LC_MONETARY_MASK (1<<LC_MONETARY)+#define LC_MESSAGES_MASK (1<<LC_MESSAGES)+#define LC_ALL_MASK 0x7fffffff++locale_t duplocale(locale_t);+void freelocale(locale_t);+locale_t newlocale(int, const char *, locale_t);+locale_t uselocale(locale_t);++#endif+++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,25 @@+#ifndef _MALLOC_H+#define _MALLOC_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_size_t++#include <bits/alltypes.h>++void *malloc (size_t);+void *calloc (size_t, size_t);+void *realloc (void *, size_t);+void free (void *);+void *valloc (size_t);+void *memalign(size_t, size_t);++size_t malloc_usable_size(void *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,442 @@+#ifndef _MATH_H+#define _MATH_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_float_t+#define __NEED_double_t+#include <bits/alltypes.h>++#if 100*__GNUC__+__GNUC_MINOR__ >= 303+#define NAN __builtin_nanf("")+#define INFINITY __builtin_inff()+#else+#define NAN (0.0f/0.0f)+#define INFINITY 1e5000f+#endif++#define HUGE_VALF INFINITY+#define HUGE_VAL ((double)INFINITY)+#define HUGE_VALL ((long double)INFINITY)++#define MATH_ERRNO 1+#define MATH_ERREXCEPT 2+#define math_errhandling 2++#define FP_ILOGBNAN (-1-0x7fffffff)+#define FP_ILOGB0 FP_ILOGBNAN++#define FP_NAN 0+#define FP_INFINITE 1+#define FP_ZERO 2+#define FP_SUBNORMAL 3+#define FP_NORMAL 4++#ifdef __FP_FAST_FMA+#define FP_FAST_FMA 1+#endif++#ifdef __FP_FAST_FMAF+#define FP_FAST_FMAF 1+#endif++#ifdef __FP_FAST_FMAL+#define FP_FAST_FMAL 1+#endif++int __fpclassify(double);+int __fpclassifyf(float);+int __fpclassifyl(long double);++static __inline unsigned __FLOAT_BITS(float __f)+{+ union {float __f; unsigned __i;} __u;+ __u.__f = __f;+ return __u.__i;+}+static __inline unsigned long long __DOUBLE_BITS(double __f)+{+ union {double __f; unsigned long long __i;} __u;+ __u.__f = __f;+ return __u.__i;+}++#define fpclassify(x) ( \+ sizeof(x) == sizeof(float) ? __fpclassifyf(x) : \+ sizeof(x) == sizeof(double) ? __fpclassify(x) : \+ __fpclassifyl(x) )++#define isinf(x) ( \+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) == 0x7f800000 : \+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) == 0x7ffULL<<52 : \+ __fpclassifyl(x) == FP_INFINITE)++#define isnan(x) ( \+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) > 0x7f800000 : \+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) > 0x7ffULL<<52 : \+ __fpclassifyl(x) == FP_NAN)++#define isnormal(x) ( \+ sizeof(x) == sizeof(float) ? ((__FLOAT_BITS(x)+0x00800000) & 0x7fffffff) >= 0x01000000 : \+ sizeof(x) == sizeof(double) ? ((__DOUBLE_BITS(x)+(1ULL<<52)) & -1ULL>>1) >= 1ULL<<53 : \+ __fpclassifyl(x) == FP_NORMAL)++#define isfinite(x) ( \+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) < 0x7f800000 : \+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) < 0x7ffULL<<52 : \+ __fpclassifyl(x) > FP_INFINITE)++int __signbit(double);+int __signbitf(float);+int __signbitl(long double);++#define signbit(x) ( \+ sizeof(x) == sizeof(float) ? (int)(__FLOAT_BITS(x)>>31) : \+ sizeof(x) == sizeof(double) ? (int)(__DOUBLE_BITS(x)>>63) : \+ __signbitl(x) )++#define isunordered(x,y) (isnan((x)) ? ((void)(y),1) : isnan((y)))++#define __ISREL_DEF(rel, op, type) \+static __inline int __is##rel(type __x, type __y) \+{ return !isunordered(__x,__y) && __x op __y; }++__ISREL_DEF(lessf, <, float_t)+__ISREL_DEF(less, <, double_t)+__ISREL_DEF(lessl, <, long double)+__ISREL_DEF(lessequalf, <=, float_t)+__ISREL_DEF(lessequal, <=, double_t)+__ISREL_DEF(lessequall, <=, long double)+__ISREL_DEF(lessgreaterf, !=, float_t)+__ISREL_DEF(lessgreater, !=, double_t)+__ISREL_DEF(lessgreaterl, !=, long double)+__ISREL_DEF(greaterf, >, float_t)+__ISREL_DEF(greater, >, double_t)+__ISREL_DEF(greaterl, >, long double)+__ISREL_DEF(greaterequalf, >=, float_t)+__ISREL_DEF(greaterequal, >=, double_t)+__ISREL_DEF(greaterequall, >=, long double)++#define __tg_pred_2(x, y, p) ( \+ sizeof((x)+(y)) == sizeof(float) ? p##f(x, y) : \+ sizeof((x)+(y)) == sizeof(double) ? p(x, y) : \+ p##l(x, y) )++#define isless(x, y) __tg_pred_2(x, y, __isless)+#define islessequal(x, y) __tg_pred_2(x, y, __islessequal)+#define islessgreater(x, y) __tg_pred_2(x, y, __islessgreater)+#define isgreater(x, y) __tg_pred_2(x, y, __isgreater)+#define isgreaterequal(x, y) __tg_pred_2(x, y, __isgreaterequal)++double acos(double);+float acosf(float);+long double acosl(long double);++double acosh(double);+float acoshf(float);+long double acoshl(long double);++double asin(double);+float asinf(float);+long double asinl(long double);++double asinh(double);+float asinhf(float);+long double asinhl(long double);++double atan(double);+float atanf(float);+long double atanl(long double);++double atan2(double, double);+float atan2f(float, float);+long double atan2l(long double, long double);++double atanh(double);+float atanhf(float);+long double atanhl(long double);++double cbrt(double);+float cbrtf(float);+long double cbrtl(long double);++double ceil(double);+float ceilf(float);+long double ceill(long double);++double copysign(double, double);+float copysignf(float, float);+long double copysignl(long double, long double);++double cos(double);+float cosf(float);+long double cosl(long double);++double cosh(double);+float coshf(float);+long double coshl(long double);++double erf(double);+float erff(float);+long double erfl(long double);++double erfc(double);+float erfcf(float);+long double erfcl(long double);++double exp(double);+float expf(float);+long double expl(long double);++double exp2(double);+float exp2f(float);+long double exp2l(long double);++double expm1(double);+float expm1f(float);+long double expm1l(long double);++double fabs(double);+float fabsf(float);+long double fabsl(long double);++double fdim(double, double);+float fdimf(float, float);+long double fdiml(long double, long double);++double floor(double);+float floorf(float);+long double floorl(long double);++double fma(double, double, double);+float fmaf(float, float, float);+long double fmal(long double, long double, long double);++double fmax(double, double);+float fmaxf(float, float);+long double fmaxl(long double, long double);++double fmin(double, double);+float fminf(float, float);+long double fminl(long double, long double);++double fmod(double, double);+float fmodf(float, float);+long double fmodl(long double, long double);++double frexp(double, int *);+float frexpf(float, int *);+long double frexpl(long double, int *);++double hypot(double, double);+float hypotf(float, float);+long double hypotl(long double, long double);++int ilogb(double);+int ilogbf(float);+int ilogbl(long double);++double ldexp(double, int);+float ldexpf(float, int);+long double ldexpl(long double, int);++double lgamma(double);+float lgammaf(float);+long double lgammal(long double);++long long llrint(double);+long long llrintf(float);+long long llrintl(long double);++long long llround(double);+long long llroundf(float);+long long llroundl(long double);++double log(double);+float logf(float);+long double logl(long double);++double log10(double);+float log10f(float);+long double log10l(long double);++double log1p(double);+float log1pf(float);+long double log1pl(long double);++double log2(double);+float log2f(float);+long double log2l(long double);++double logb(double);+float logbf(float);+long double logbl(long double);++long lrint(double);+long lrintf(float);+long lrintl(long double);++long lround(double);+long lroundf(float);+long lroundl(long double);++double modf(double, double *);+float modff(float, float *);+long double modfl(long double, long double *);++double nan(const char *);+float nanf(const char *);+long double nanl(const char *);++double nearbyint(double);+float nearbyintf(float);+long double nearbyintl(long double);++double nextafter(double, double);+float nextafterf(float, float);+long double nextafterl(long double, long double);++double nexttoward(double, long double);+float nexttowardf(float, long double);+long double nexttowardl(long double, long double);++double pow(double, double);+float powf(float, float);+long double powl(long double, long double);++double remainder(double, double);+float remainderf(float, float);+long double remainderl(long double, long double);++double remquo(double, double, int *);+float remquof(float, float, int *);+long double remquol(long double, long double, int *);++double rint(double);+float rintf(float);+long double rintl(long double);++double round(double);+float roundf(float);+long double roundl(long double);++double scalbln(double, long);+float scalblnf(float, long);+long double scalblnl(long double, long);++double scalbn(double, int);+float scalbnf(float, int);+long double scalbnl(long double, int);++double sin(double);+float sinf(float);+long double sinl(long double);++double sinh(double);+float sinhf(float);+long double sinhl(long double);++double sqrt(double);+float sqrtf(float);+long double sqrtl(long double);++double tan(double);+float tanf(float);+long double tanl(long double);++double tanh(double);+float tanhf(float);+long double tanhl(long double);++double tgamma(double);+float tgammaf(float);+long double tgammal(long double);++double trunc(double);+float truncf(float);+long double truncl(long double);+++#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE)+#undef MAXFLOAT+#define MAXFLOAT 3.40282346638528859812e+38F+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define M_E 2.7182818284590452354 /* e */+#define M_LOG2E 1.4426950408889634074 /* log_2 e */+#define M_LOG10E 0.43429448190325182765 /* log_10 e */+#define M_LN2 0.69314718055994530942 /* log_e 2 */+#define M_LN10 2.30258509299404568402 /* log_e 10 */+#define M_PI 3.14159265358979323846 /* pi */+#define M_PI_2 1.57079632679489661923 /* pi/2 */+#define M_PI_4 0.78539816339744830962 /* pi/4 */+#define M_1_PI 0.31830988618379067154 /* 1/pi */+#define M_2_PI 0.63661977236758134308 /* 2/pi */+#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */+#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */+#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */++extern int signgam;++double j0(double);+double j1(double);+double jn(int, double);++double y0(double);+double y1(double);+double yn(int, double);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define HUGE 3.40282346638528859812e+38F++double drem(double, double);+float dremf(float, float);++int finite(double);+int finitef(float);++double scalb(double, double);+float scalbf(float, float);++double significand(double);+float significandf(float);++double lgamma_r(double, int*);+float lgammaf_r(float, int*);++float j0f(float);+float j1f(float);+float jnf(int, float);++float y0f(float);+float y1f(float);+float ynf(int, float);+#endif++#ifdef _GNU_SOURCE+long double lgammal_r(long double, int*);++void sincos(double, double*, double*);+void sincosf(float, float*, float*);+void sincosl(long double, long double*, long double*);++double exp10(double);+float exp10f(float);+long double exp10l(long double);++double pow10(double);+float pow10f(float);+long double pow10l(long double);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,1 @@+#include <string.h>
@@ -0,0 +1,43 @@+#ifndef _MNTENT_H+#define _MNTENT_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_FILE+#include <bits/alltypes.h>++#define MOUNTED "/etc/mtab"++#define MNTTYPE_IGNORE "ignore"+#define MNTTYPE_NFS "nfs"+#define MNTTYPE_SWAP "swap"+#define MNTOPT_DEFAULTS "defaults"+#define MNTOPT_RO "ro"+#define MNTOPT_RW "rw"+#define MNTOPT_SUID "suid"+#define MNTOPT_NOSUID "nosuid"+#define MNTOPT_NOAUTO "noauto"++struct mntent {+ char *mnt_fsname;+ char *mnt_dir;+ char *mnt_type;+ char *mnt_opts;+ int mnt_freq;+ int mnt_passno;+};++FILE *setmntent(const char *, const char *);+int endmntent(FILE *);+struct mntent *getmntent(FILE *);+struct mntent *getmntent_r(FILE *, struct mntent *, char *, int);+int addmntent(FILE *, const struct mntent *);+char *hasmntopt(const struct mntent *, const char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,23 @@+#ifndef _MONETARY_H+#define _MONETARY_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_ssize_t+#define __NEED_size_t+#define __NEED_locale_t++#include <bits/alltypes.h>++ssize_t strfmon(char *__restrict, size_t, const char *__restrict, ...);+ssize_t strfmon_l(char *__restrict, size_t, locale_t, const char *__restrict, ...);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,41 @@+#ifndef _MQUEUE_H+#define _MQUEUE_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_ssize_t+#define __NEED_pthread_attr_t+#define __NEED_time_t+#define __NEED_struct_timespec+#include <bits/alltypes.h>++typedef int mqd_t;+struct mq_attr {+ long mq_flags, mq_maxmsg, mq_msgsize, mq_curmsgs, __unused[4];+};+struct sigevent;++int mq_close(mqd_t);+int mq_getattr(mqd_t, struct mq_attr *);+int mq_notify(mqd_t, const struct sigevent *);+mqd_t mq_open(const char *, int, ...);+ssize_t mq_receive(mqd_t, char *, size_t, unsigned *);+int mq_send(mqd_t, const char *, size_t, unsigned);+int mq_setattr(mqd_t, const struct mq_attr *__restrict, struct mq_attr *__restrict);+ssize_t mq_timedreceive(mqd_t, char *__restrict, size_t, unsigned *__restrict, const struct timespec *__restrict);+int mq_timedsend(mqd_t, const char *, size_t, unsigned, const struct timespec *);+int mq_unlink(const char *);++#if _REDIR_TIME64+__REDIR(mq_timedreceive, __mq_timedreceive_time64);+__REDIR(mq_timedsend, __mq_timedsend_time64);+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,55 @@+#ifndef _NET_ETHERNET_H+#define _NET_ETHERNET_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <sys/types.h>+#include <netinet/if_ether.h>++struct ether_addr {+ uint8_t ether_addr_octet[ETH_ALEN];+};++struct ether_header {+ uint8_t ether_dhost[ETH_ALEN];+ uint8_t ether_shost[ETH_ALEN];+ uint16_t ether_type;+};++#define ETHERTYPE_PUP 0x0200+#define ETHERTYPE_SPRITE 0x0500+#define ETHERTYPE_IP 0x0800+#define ETHERTYPE_ARP 0x0806+#define ETHERTYPE_REVARP 0x8035+#define ETHERTYPE_AT 0x809B+#define ETHERTYPE_AARP 0x80F3+#define ETHERTYPE_VLAN 0x8100+#define ETHERTYPE_IPX 0x8137+#define ETHERTYPE_IPV6 0x86dd+#define ETHERTYPE_LOOPBACK 0x9000+++#define ETHER_ADDR_LEN ETH_ALEN+#define ETHER_TYPE_LEN 2+#define ETHER_CRC_LEN 4+#define ETHER_HDR_LEN ETH_HLEN+#define ETHER_MIN_LEN (ETH_ZLEN + ETHER_CRC_LEN)+#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETHER_CRC_LEN)++#define ETHER_IS_VALID_LEN(foo) \+ ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN)++#define ETHERTYPE_TRAIL 0x1000+#define ETHERTYPE_NTRAILER 16++#define ETHERMTU ETH_DATA_LEN+#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN)++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,141 @@+#ifndef _NET_IF_H+#define _NET_IF_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define IF_NAMESIZE 16++struct if_nameindex {+ unsigned int if_index;+ char *if_name;+};++unsigned int if_nametoindex (const char *);+char *if_indextoname (unsigned int, char *);+struct if_nameindex *if_nameindex (void);+void if_freenameindex (struct if_nameindex *);+++++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#include <sys/socket.h>++#define IFF_UP 0x1+#define IFF_BROADCAST 0x2+#define IFF_DEBUG 0x4+#define IFF_LOOPBACK 0x8+#define IFF_POINTOPOINT 0x10+#define IFF_NOTRAILERS 0x20+#define IFF_RUNNING 0x40+#define IFF_NOARP 0x80+#define IFF_PROMISC 0x100+#define IFF_ALLMULTI 0x200+#define IFF_MASTER 0x400+#define IFF_SLAVE 0x800+#define IFF_MULTICAST 0x1000+#define IFF_PORTSEL 0x2000+#define IFF_AUTOMEDIA 0x4000+#define IFF_DYNAMIC 0x8000+#define IFF_LOWER_UP 0x10000+#define IFF_DORMANT 0x20000+#define IFF_ECHO 0x40000+#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST| \+ IFF_ECHO|IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)++struct ifaddr {+ struct sockaddr ifa_addr;+ union {+ struct sockaddr ifu_broadaddr;+ struct sockaddr ifu_dstaddr;+ } ifa_ifu;+ struct iface *ifa_ifp;+ struct ifaddr *ifa_next;+};++#define ifa_broadaddr ifa_ifu.ifu_broadaddr+#define ifa_dstaddr ifa_ifu.ifu_dstaddr++struct ifmap {+ unsigned long int mem_start;+ unsigned long int mem_end;+ unsigned short int base_addr;+ unsigned char irq;+ unsigned char dma;+ unsigned char port;+};++#define IFHWADDRLEN 6+#define IFNAMSIZ IF_NAMESIZE++struct ifreq {+ union {+ char ifrn_name[IFNAMSIZ];+ } ifr_ifrn;+ union {+ struct sockaddr ifru_addr;+ struct sockaddr ifru_dstaddr;+ struct sockaddr ifru_broadaddr;+ struct sockaddr ifru_netmask;+ struct sockaddr ifru_hwaddr;+ short int ifru_flags;+ int ifru_ivalue;+ int ifru_mtu;+ struct ifmap ifru_map;+ char ifru_slave[IFNAMSIZ];+ char ifru_newname[IFNAMSIZ];+ char *ifru_data;+ } ifr_ifru;+};++#define ifr_name ifr_ifrn.ifrn_name+#define ifr_hwaddr ifr_ifru.ifru_hwaddr+#define ifr_addr ifr_ifru.ifru_addr+#define ifr_dstaddr ifr_ifru.ifru_dstaddr+#define ifr_broadaddr ifr_ifru.ifru_broadaddr+#define ifr_netmask ifr_ifru.ifru_netmask+#define ifr_flags ifr_ifru.ifru_flags+#define ifr_metric ifr_ifru.ifru_ivalue+#define ifr_mtu ifr_ifru.ifru_mtu+#define ifr_map ifr_ifru.ifru_map+#define ifr_slave ifr_ifru.ifru_slave+#define ifr_data ifr_ifru.ifru_data+#define ifr_ifindex ifr_ifru.ifru_ivalue+#define ifr_bandwidth ifr_ifru.ifru_ivalue+#define ifr_qlen ifr_ifru.ifru_ivalue+#define ifr_newname ifr_ifru.ifru_newname+#define _IOT_ifreq _IOT(_IOTS(char),IFNAMSIZ,_IOTS(char),16,0,0)+#define _IOT_ifreq_short _IOT(_IOTS(char),IFNAMSIZ,_IOTS(short),1,0,0)+#define _IOT_ifreq_int _IOT(_IOTS(char),IFNAMSIZ,_IOTS(int),1,0,0)++struct ifconf {+ int ifc_len; + union {+ char *ifcu_buf;+ struct ifreq *ifcu_req;+ } ifc_ifcu;+};++#define ifc_buf ifc_ifcu.ifcu_buf+#define ifc_req ifc_ifcu.ifcu_req+#define _IOT_ifconf _IOT(_IOTS(struct ifconf),1,0,0,0,0)++#define __UAPI_DEF_IF_IFCONF 0+#define __UAPI_DEF_IF_IFMAP 0+#define __UAPI_DEF_IF_IFNAMSIZ 0+#define __UAPI_DEF_IF_IFREQ 0+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0++#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,142 @@+/* Nonstandard header */+#ifndef _NET_IF_ARP_H+#define _NET_IF_ARP_H+#ifdef __cplusplus+extern "C" {+#endif++#include <inttypes.h>+#include <sys/types.h>+#include <sys/socket.h>++#define MAX_ADDR_LEN 7++#define ARPOP_REQUEST 1+#define ARPOP_REPLY 2+#define ARPOP_RREQUEST 3+#define ARPOP_RREPLY 4+#define ARPOP_InREQUEST 8+#define ARPOP_InREPLY 9+#define ARPOP_NAK 10++struct arphdr {+ uint16_t ar_hrd;+ uint16_t ar_pro;+ uint8_t ar_hln;+ uint8_t ar_pln;+ uint16_t ar_op;+};+++#define ARPHRD_NETROM 0+#define ARPHRD_ETHER 1+#define ARPHRD_EETHER 2+#define ARPHRD_AX25 3+#define ARPHRD_PRONET 4+#define ARPHRD_CHAOS 5+#define ARPHRD_IEEE802 6+#define ARPHRD_ARCNET 7+#define ARPHRD_APPLETLK 8+#define ARPHRD_DLCI 15+#define ARPHRD_ATM 19+#define ARPHRD_METRICOM 23+#define ARPHRD_IEEE1394 24+#define ARPHRD_EUI64 27+#define ARPHRD_INFINIBAND 32+#define ARPHRD_SLIP 256+#define ARPHRD_CSLIP 257+#define ARPHRD_SLIP6 258+#define ARPHRD_CSLIP6 259+#define ARPHRD_RSRVD 260+#define ARPHRD_ADAPT 264+#define ARPHRD_ROSE 270+#define ARPHRD_X25 271+#define ARPHRD_HWX25 272+#define ARPHRD_CAN 280+#define ARPHRD_PPP 512+#define ARPHRD_CISCO 513+#define ARPHRD_HDLC ARPHRD_CISCO+#define ARPHRD_LAPB 516+#define ARPHRD_DDCMP 517+#define ARPHRD_RAWHDLC 518+#define ARPHRD_RAWIP 519++#define ARPHRD_TUNNEL 768+#define ARPHRD_TUNNEL6 769+#define ARPHRD_FRAD 770+#define ARPHRD_SKIP 771+#define ARPHRD_LOOPBACK 772+#define ARPHRD_LOCALTLK 773+#define ARPHRD_FDDI 774+#define ARPHRD_BIF 775+#define ARPHRD_SIT 776+#define ARPHRD_IPDDP 777+#define ARPHRD_IPGRE 778+#define ARPHRD_PIMREG 779+#define ARPHRD_HIPPI 780+#define ARPHRD_ASH 781+#define ARPHRD_ECONET 782+#define ARPHRD_IRDA 783+#define ARPHRD_FCPP 784+#define ARPHRD_FCAL 785+#define ARPHRD_FCPL 786+#define ARPHRD_FCFABRIC 787+#define ARPHRD_IEEE802_TR 800+#define ARPHRD_IEEE80211 801+#define ARPHRD_IEEE80211_PRISM 802+#define ARPHRD_IEEE80211_RADIOTAP 803+#define ARPHRD_IEEE802154 804+#define ARPHRD_IEEE802154_MONITOR 805+#define ARPHRD_PHONET 820+#define ARPHRD_PHONET_PIPE 821+#define ARPHRD_CAIF 822+#define ARPHRD_IP6GRE 823+#define ARPHRD_NETLINK 824+#define ARPHRD_6LOWPAN 825+#define ARPHRD_VSOCKMON 826++#define ARPHRD_VOID 0xFFFF+#define ARPHRD_NONE 0xFFFE++struct arpreq {+ struct sockaddr arp_pa;+ struct sockaddr arp_ha;+ int arp_flags;+ struct sockaddr arp_netmask;+ char arp_dev[16];+};++struct arpreq_old {+ struct sockaddr arp_pa;+ struct sockaddr arp_ha;+ int arp_flags;+ struct sockaddr arp_netmask;+};++#define ATF_COM 0x02+#define ATF_PERM 0x04+#define ATF_PUBL 0x08+#define ATF_USETRAILERS 0x10+#define ATF_NETMASK 0x20+#define ATF_DONTPUB 0x40+#define ATF_MAGIC 0x80++#define ARPD_UPDATE 0x01+#define ARPD_LOOKUP 0x02+#define ARPD_FLUSH 0x03++struct arpd_request {+ unsigned short req;+ uint32_t ip;+ unsigned long dev;+ unsigned long stamp;+ unsigned long updated;+ unsigned char ha[MAX_ADDR_LEN];+};++++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,124 @@+#ifndef _NET_ROUTE_H+#define _NET_ROUTE_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <sys/socket.h>+#include <sys/types.h>+#include <netinet/in.h>+++struct rtentry {+ unsigned long int rt_pad1;+ struct sockaddr rt_dst;+ struct sockaddr rt_gateway;+ struct sockaddr rt_genmask;+ unsigned short int rt_flags;+ short int rt_pad2;+ unsigned long int rt_pad3;+ unsigned char rt_tos;+ unsigned char rt_class;+ short int rt_pad4[sizeof(long)/2-1];+ short int rt_metric;+ char *rt_dev;+ unsigned long int rt_mtu;+ unsigned long int rt_window;+ unsigned short int rt_irtt;+};++#define rt_mss rt_mtu+++struct in6_rtmsg {+ struct in6_addr rtmsg_dst;+ struct in6_addr rtmsg_src;+ struct in6_addr rtmsg_gateway;+ uint32_t rtmsg_type;+ uint16_t rtmsg_dst_len;+ uint16_t rtmsg_src_len;+ uint32_t rtmsg_metric;+ unsigned long int rtmsg_info;+ uint32_t rtmsg_flags;+ int rtmsg_ifindex;+};+++#define RTF_UP 0x0001+#define RTF_GATEWAY 0x0002++#define RTF_HOST 0x0004+#define RTF_REINSTATE 0x0008+#define RTF_DYNAMIC 0x0010+#define RTF_MODIFIED 0x0020+#define RTF_MTU 0x0040+#define RTF_MSS RTF_MTU+#define RTF_WINDOW 0x0080+#define RTF_IRTT 0x0100+#define RTF_REJECT 0x0200+#define RTF_STATIC 0x0400+#define RTF_XRESOLVE 0x0800+#define RTF_NOFORWARD 0x1000+#define RTF_THROW 0x2000+#define RTF_NOPMTUDISC 0x4000++#define RTF_DEFAULT 0x00010000+#define RTF_ALLONLINK 0x00020000+#define RTF_ADDRCONF 0x00040000++#define RTF_LINKRT 0x00100000+#define RTF_NONEXTHOP 0x00200000++#define RTF_CACHE 0x01000000+#define RTF_FLOW 0x02000000+#define RTF_POLICY 0x04000000++#define RTCF_VALVE 0x00200000+#define RTCF_MASQ 0x00400000+#define RTCF_NAT 0x00800000+#define RTCF_DOREDIRECT 0x01000000+#define RTCF_LOG 0x02000000+#define RTCF_DIRECTSRC 0x04000000++#define RTF_LOCAL 0x80000000+#define RTF_INTERFACE 0x40000000+#define RTF_MULTICAST 0x20000000+#define RTF_BROADCAST 0x10000000+#define RTF_NAT 0x08000000++#define RTF_ADDRCLASSMASK 0xF8000000+#define RT_ADDRCLASS(flags) ((uint32_t) flags >> 23)++#define RT_TOS(tos) ((tos) & IPTOS_TOS_MASK)++#define RT_LOCALADDR(flags) ((flags & RTF_ADDRCLASSMASK) \+ == (RTF_LOCAL|RTF_INTERFACE))++#define RT_CLASS_UNSPEC 0+#define RT_CLASS_DEFAULT 253++#define RT_CLASS_MAIN 254+#define RT_CLASS_LOCAL 255+#define RT_CLASS_MAX 255+++#define RTMSG_ACK NLMSG_ACK+#define RTMSG_OVERRUN NLMSG_OVERRUN++#define RTMSG_NEWDEVICE 0x11+#define RTMSG_DELDEVICE 0x12+#define RTMSG_NEWROUTE 0x21+#define RTMSG_DELROUTE 0x22+#define RTMSG_NEWRULE 0x31+#define RTMSG_DELRULE 0x32+#define RTMSG_CONTROL 0x40++#define RTMSG_AR_FAILED 0x51++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,157 @@+#ifndef _NETDB_H+#define _NETDB_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <netinet/in.h>++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_size_t+#include <bits/alltypes.h>+#endif++struct addrinfo {+ int ai_flags;+ int ai_family;+ int ai_socktype;+ int ai_protocol;+ socklen_t ai_addrlen;+ struct sockaddr *ai_addr;+ char *ai_canonname;+ struct addrinfo *ai_next;+};++#define AI_PASSIVE 0x01+#define AI_CANONNAME 0x02+#define AI_NUMERICHOST 0x04+#define AI_V4MAPPED 0x08+#define AI_ALL 0x10+#define AI_ADDRCONFIG 0x20+#define AI_NUMERICSERV 0x400+++#define NI_NUMERICHOST 0x01+#define NI_NUMERICSERV 0x02+#define NI_NOFQDN 0x04+#define NI_NAMEREQD 0x08+#define NI_DGRAM 0x10+#define NI_NUMERICSCOPE 0x100++#define EAI_BADFLAGS -1+#define EAI_NONAME -2+#define EAI_AGAIN -3+#define EAI_FAIL -4+#define EAI_NODATA -5+#define EAI_FAMILY -6+#define EAI_SOCKTYPE -7+#define EAI_SERVICE -8+#define EAI_MEMORY -10+#define EAI_SYSTEM -11+#define EAI_OVERFLOW -12++int getaddrinfo (const char *__restrict, const char *__restrict, const struct addrinfo *__restrict, struct addrinfo **__restrict);+void freeaddrinfo (struct addrinfo *);+int getnameinfo (const struct sockaddr *__restrict, socklen_t, char *__restrict, socklen_t, char *__restrict, socklen_t, int);+const char *gai_strerror(int);+++/* Legacy functions follow (marked OBsolete in SUS) */++struct netent {+ char *n_name;+ char **n_aliases;+ int n_addrtype;+ uint32_t n_net;+};++struct hostent {+ char *h_name;+ char **h_aliases;+ int h_addrtype;+ int h_length;+ char **h_addr_list;+};+#define h_addr h_addr_list[0]++struct servent {+ char *s_name;+ char **s_aliases;+ int s_port;+ char *s_proto;+};++struct protoent {+ char *p_name;+ char **p_aliases;+ int p_proto;+};++void sethostent (int);+void endhostent (void);+struct hostent *gethostent (void);++void setnetent (int);+void endnetent (void);+struct netent *getnetent (void);+struct netent *getnetbyaddr (uint32_t, int);+struct netent *getnetbyname (const char *);++void setservent (int);+void endservent (void);+struct servent *getservent (void);+struct servent *getservbyname (const char *, const char *);+struct servent *getservbyport (int, const char *);++void setprotoent (int);+void endprotoent (void);+struct protoent *getprotoent (void);+struct protoent *getprotobyname (const char *);+struct protoent *getprotobynumber (int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \+ || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)+struct hostent *gethostbyname (const char *);+struct hostent *gethostbyaddr (const void *, socklen_t, int);+#ifdef __GNUC__+__attribute__((const))+#endif+int *__h_errno_location(void);+#define h_errno (*__h_errno_location())+#define HOST_NOT_FOUND 1+#define TRY_AGAIN 2+#define NO_RECOVERY 3+#define NO_DATA 4+#define NO_ADDRESS NO_DATA+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+void herror(const char *);+const char *hstrerror(int);+int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *);+int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *);+struct hostent *gethostbyname2(const char *, int);+int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *, char *, size_t, struct hostent **, int *);+int getservbyport_r(int, const char *, struct servent *, char *, size_t, struct servent **);+int getservbyname_r(const char *, const char *, struct servent *, char *, size_t, struct servent **);+#define EAI_NODATA -5+#define EAI_ADDRFAMILY -9+#define EAI_INPROGRESS -100+#define EAI_CANCELED -101+#define EAI_NOTCANCELED -102+#define EAI_ALLDONE -103+#define EAI_INTR -104+#define EAI_IDN_ENCODE -105+#define NI_MAXHOST 255+#define NI_MAXSERV 32+#endif+++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,22 @@+#ifndef _NETINET_ETHER_H+#define _NETINET_ETHER_H++#ifdef __cplusplus+extern "C" {+#endif++#include <netinet/if_ether.h>++char *ether_ntoa (const struct ether_addr *);+struct ether_addr *ether_aton (const char *);+char *ether_ntoa_r (const struct ether_addr *, char *);+struct ether_addr *ether_aton_r (const char *, struct ether_addr *);+int ether_line(const char *, struct ether_addr *, char *);+int ether_ntohost(char *, const struct ether_addr *);+int ether_hostton(const char *, struct ether_addr *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,305 @@+#ifndef _NETINET_ICMP6_H+#define _NETINET_ICMP6_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <string.h>+#include <sys/types.h>+#include <netinet/in.h>++#define ICMP6_FILTER 1++#define ICMP6_FILTER_BLOCK 1+#define ICMP6_FILTER_PASS 2+#define ICMP6_FILTER_BLOCKOTHERS 3+#define ICMP6_FILTER_PASSONLY 4++struct icmp6_filter {+ uint32_t icmp6_filt[8];+};++struct icmp6_hdr {+ uint8_t icmp6_type;+ uint8_t icmp6_code;+ uint16_t icmp6_cksum;+ union {+ uint32_t icmp6_un_data32[1];+ uint16_t icmp6_un_data16[2];+ uint8_t icmp6_un_data8[4];+ } icmp6_dataun;+};++#define icmp6_data32 icmp6_dataun.icmp6_un_data32+#define icmp6_data16 icmp6_dataun.icmp6_un_data16+#define icmp6_data8 icmp6_dataun.icmp6_un_data8+#define icmp6_pptr icmp6_data32[0]+#define icmp6_mtu icmp6_data32[0]+#define icmp6_id icmp6_data16[0]+#define icmp6_seq icmp6_data16[1]+#define icmp6_maxdelay icmp6_data16[0]++#define ICMP6_DST_UNREACH 1+#define ICMP6_PACKET_TOO_BIG 2+#define ICMP6_TIME_EXCEEDED 3+#define ICMP6_PARAM_PROB 4++#define ICMP6_INFOMSG_MASK 0x80++#define ICMP6_ECHO_REQUEST 128+#define ICMP6_ECHO_REPLY 129+#define MLD_LISTENER_QUERY 130+#define MLD_LISTENER_REPORT 131+#define MLD_LISTENER_REDUCTION 132++#define ICMP6_DST_UNREACH_NOROUTE 0+#define ICMP6_DST_UNREACH_ADMIN 1+#define ICMP6_DST_UNREACH_BEYONDSCOPE 2+#define ICMP6_DST_UNREACH_ADDR 3+#define ICMP6_DST_UNREACH_NOPORT 4++#define ICMP6_TIME_EXCEED_TRANSIT 0+#define ICMP6_TIME_EXCEED_REASSEMBLY 1++#define ICMP6_PARAMPROB_HEADER 0+#define ICMP6_PARAMPROB_NEXTHEADER 1+#define ICMP6_PARAMPROB_OPTION 2++#define ICMP6_FILTER_WILLPASS(type, filterp) \+ ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)++#define ICMP6_FILTER_WILLBLOCK(type, filterp) \+ ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0)++#define ICMP6_FILTER_SETPASS(type, filterp) \+ ((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31))))++#define ICMP6_FILTER_SETBLOCK(type, filterp) \+ ((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31))))++#define ICMP6_FILTER_SETPASSALL(filterp) \+ memset (filterp, 0, sizeof (struct icmp6_filter));++#define ICMP6_FILTER_SETBLOCKALL(filterp) \+ memset (filterp, 0xFF, sizeof (struct icmp6_filter));++#define ND_ROUTER_SOLICIT 133+#define ND_ROUTER_ADVERT 134+#define ND_NEIGHBOR_SOLICIT 135+#define ND_NEIGHBOR_ADVERT 136+#define ND_REDIRECT 137++struct nd_router_solicit {+ struct icmp6_hdr nd_rs_hdr;+};++#define nd_rs_type nd_rs_hdr.icmp6_type+#define nd_rs_code nd_rs_hdr.icmp6_code+#define nd_rs_cksum nd_rs_hdr.icmp6_cksum+#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0]++struct nd_router_advert {+ struct icmp6_hdr nd_ra_hdr;+ uint32_t nd_ra_reachable;+ uint32_t nd_ra_retransmit;+};++#define nd_ra_type nd_ra_hdr.icmp6_type+#define nd_ra_code nd_ra_hdr.icmp6_code+#define nd_ra_cksum nd_ra_hdr.icmp6_cksum+#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0]+#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1]+#define ND_RA_FLAG_MANAGED 0x80+#define ND_RA_FLAG_OTHER 0x40+#define ND_RA_FLAG_HOME_AGENT 0x20+#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1]++struct nd_neighbor_solicit {+ struct icmp6_hdr nd_ns_hdr;+ struct in6_addr nd_ns_target;+};++#define nd_ns_type nd_ns_hdr.icmp6_type+#define nd_ns_code nd_ns_hdr.icmp6_code+#define nd_ns_cksum nd_ns_hdr.icmp6_cksum+#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0]++struct nd_neighbor_advert {+ struct icmp6_hdr nd_na_hdr;+ struct in6_addr nd_na_target;+};++#define nd_na_type nd_na_hdr.icmp6_type+#define nd_na_code nd_na_hdr.icmp6_code+#define nd_na_cksum nd_na_hdr.icmp6_cksum+#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0]+#if __BYTE_ORDER == __BIG_ENDIAN+#define ND_NA_FLAG_ROUTER 0x80000000+#define ND_NA_FLAG_SOLICITED 0x40000000+#define ND_NA_FLAG_OVERRIDE 0x20000000+#else+#define ND_NA_FLAG_ROUTER 0x00000080+#define ND_NA_FLAG_SOLICITED 0x00000040+#define ND_NA_FLAG_OVERRIDE 0x00000020+#endif++struct nd_redirect {+ struct icmp6_hdr nd_rd_hdr;+ struct in6_addr nd_rd_target;+ struct in6_addr nd_rd_dst;+};++#define nd_rd_type nd_rd_hdr.icmp6_type+#define nd_rd_code nd_rd_hdr.icmp6_code+#define nd_rd_cksum nd_rd_hdr.icmp6_cksum+#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]++struct nd_opt_hdr {+ uint8_t nd_opt_type;+ uint8_t nd_opt_len;+};++#define ND_OPT_SOURCE_LINKADDR 1+#define ND_OPT_TARGET_LINKADDR 2+#define ND_OPT_PREFIX_INFORMATION 3+#define ND_OPT_REDIRECTED_HEADER 4+#define ND_OPT_MTU 5+#define ND_OPT_RTR_ADV_INTERVAL 7+#define ND_OPT_HOME_AGENT_INFO 8++struct nd_opt_prefix_info {+ uint8_t nd_opt_pi_type;+ uint8_t nd_opt_pi_len;+ uint8_t nd_opt_pi_prefix_len;+ uint8_t nd_opt_pi_flags_reserved;+ uint32_t nd_opt_pi_valid_time;+ uint32_t nd_opt_pi_preferred_time;+ uint32_t nd_opt_pi_reserved2;+ struct in6_addr nd_opt_pi_prefix;+};++#define ND_OPT_PI_FLAG_ONLINK 0x80+#define ND_OPT_PI_FLAG_AUTO 0x40+#define ND_OPT_PI_FLAG_RADDR 0x20++struct nd_opt_rd_hdr {+ uint8_t nd_opt_rh_type;+ uint8_t nd_opt_rh_len;+ uint16_t nd_opt_rh_reserved1;+ uint32_t nd_opt_rh_reserved2;+};++struct nd_opt_mtu {+ uint8_t nd_opt_mtu_type;+ uint8_t nd_opt_mtu_len;+ uint16_t nd_opt_mtu_reserved;+ uint32_t nd_opt_mtu_mtu;+};++struct mld_hdr {+ struct icmp6_hdr mld_icmp6_hdr;+ struct in6_addr mld_addr;+};++#define mld_type mld_icmp6_hdr.icmp6_type+#define mld_code mld_icmp6_hdr.icmp6_code+#define mld_cksum mld_icmp6_hdr.icmp6_cksum+#define mld_maxdelay mld_icmp6_hdr.icmp6_data16[0]+#define mld_reserved mld_icmp6_hdr.icmp6_data16[1]++#define ICMP6_ROUTER_RENUMBERING 138++struct icmp6_router_renum {+ struct icmp6_hdr rr_hdr;+ uint8_t rr_segnum;+ uint8_t rr_flags;+ uint16_t rr_maxdelay;+ uint32_t rr_reserved;+};++#define rr_type rr_hdr.icmp6_type+#define rr_code rr_hdr.icmp6_code+#define rr_cksum rr_hdr.icmp6_cksum+#define rr_seqnum rr_hdr.icmp6_data32[0]++#define ICMP6_RR_FLAGS_TEST 0x80+#define ICMP6_RR_FLAGS_REQRESULT 0x40+#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20+#define ICMP6_RR_FLAGS_SPECSITE 0x10+#define ICMP6_RR_FLAGS_PREVDONE 0x08++struct rr_pco_match {+ uint8_t rpm_code;+ uint8_t rpm_len;+ uint8_t rpm_ordinal;+ uint8_t rpm_matchlen;+ uint8_t rpm_minlen;+ uint8_t rpm_maxlen;+ uint16_t rpm_reserved;+ struct in6_addr rpm_prefix;+};++#define RPM_PCO_ADD 1+#define RPM_PCO_CHANGE 2+#define RPM_PCO_SETGLOBAL 3++struct rr_pco_use {+ uint8_t rpu_uselen;+ uint8_t rpu_keeplen;+ uint8_t rpu_ramask;+ uint8_t rpu_raflags;+ uint32_t rpu_vltime;+ uint32_t rpu_pltime;+ uint32_t rpu_flags;+ struct in6_addr rpu_prefix;+};++#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x20+#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x10++#if __BYTE_ORDER == __BIG_ENDIAN+#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000+#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000+#else+#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80+#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40+#endif++struct rr_result {+ uint16_t rrr_flags;+ uint8_t rrr_ordinal;+ uint8_t rrr_matchedlen;+ uint32_t rrr_ifid;+ struct in6_addr rrr_prefix;+};++#if __BYTE_ORDER == __BIG_ENDIAN+#define ICMP6_RR_RESULT_FLAGS_OOB 0x0002+#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001+#else+#define ICMP6_RR_RESULT_FLAGS_OOB 0x0200+#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100+#endif++struct nd_opt_adv_interval {+ uint8_t nd_opt_adv_interval_type;+ uint8_t nd_opt_adv_interval_len;+ uint16_t nd_opt_adv_interval_reserved;+ uint32_t nd_opt_adv_interval_ival;+};++struct nd_opt_home_agent_info {+ uint8_t nd_opt_home_agent_info_type;+ uint8_t nd_opt_home_agent_info_len;+ uint16_t nd_opt_home_agent_info_reserved;+ uint16_t nd_opt_home_agent_info_preference;+ uint16_t nd_opt_home_agent_info_lifetime;+};++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,149 @@+#ifndef _NETINET_IF_ETHER_H+#define _NETINET_IF_ETHER_H++#include <stdint.h>+#include <sys/types.h>++#define ETH_ALEN 6+#define ETH_TLEN 2+#define ETH_HLEN 14+#define ETH_ZLEN 60+#define ETH_DATA_LEN 1500+#define ETH_FRAME_LEN 1514+#define ETH_FCS_LEN 4+#define ETH_MIN_MTU 68+#define ETH_MAX_MTU 0xFFFFU++#define ETH_P_LOOP 0x0060+#define ETH_P_PUP 0x0200+#define ETH_P_PUPAT 0x0201+#define ETH_P_TSN 0x22F0+#define ETH_P_ERSPAN2 0x22EB+#define ETH_P_IP 0x0800+#define ETH_P_X25 0x0805+#define ETH_P_ARP 0x0806+#define ETH_P_BPQ 0x08FF+#define ETH_P_IEEEPUP 0x0a00+#define ETH_P_IEEEPUPAT 0x0a01+#define ETH_P_BATMAN 0x4305+#define ETH_P_DEC 0x6000+#define ETH_P_DNA_DL 0x6001+#define ETH_P_DNA_RC 0x6002+#define ETH_P_DNA_RT 0x6003+#define ETH_P_LAT 0x6004+#define ETH_P_DIAG 0x6005+#define ETH_P_CUST 0x6006+#define ETH_P_SCA 0x6007+#define ETH_P_TEB 0x6558+#define ETH_P_RARP 0x8035+#define ETH_P_ATALK 0x809B+#define ETH_P_AARP 0x80F3+#define ETH_P_8021Q 0x8100+#define ETH_P_IPX 0x8137+#define ETH_P_IPV6 0x86DD+#define ETH_P_PAUSE 0x8808+#define ETH_P_SLOW 0x8809+#define ETH_P_WCCP 0x883E+#define ETH_P_MPLS_UC 0x8847+#define ETH_P_MPLS_MC 0x8848+#define ETH_P_ATMMPOA 0x884c+#define ETH_P_PPP_DISC 0x8863+#define ETH_P_PPP_SES 0x8864+#define ETH_P_LINK_CTL 0x886c+#define ETH_P_ATMFATE 0x8884+#define ETH_P_PAE 0x888E+#define ETH_P_AOE 0x88A2+#define ETH_P_8021AD 0x88A8+#define ETH_P_802_EX1 0x88B5+#define ETH_P_ERSPAN 0x88BE+#define ETH_P_PREAUTH 0x88C7+#define ETH_P_TIPC 0x88CA+#define ETH_P_LLDP 0x88CC+#define ETH_P_MRP 0x88E3+#define ETH_P_MACSEC 0x88E5+#define ETH_P_8021AH 0x88E7+#define ETH_P_MVRP 0x88F5+#define ETH_P_1588 0x88F7+#define ETH_P_NCSI 0x88F8+#define ETH_P_PRP 0x88FB+#define ETH_P_CFM 0x8902+#define ETH_P_FCOE 0x8906+#define ETH_P_TDLS 0x890D+#define ETH_P_FIP 0x8914+#define ETH_P_IBOE 0x8915+#define ETH_P_80221 0x8917+#define ETH_P_HSR 0x892F+#define ETH_P_NSH 0x894F+#define ETH_P_LOOPBACK 0x9000+#define ETH_P_QINQ1 0x9100+#define ETH_P_QINQ2 0x9200+#define ETH_P_QINQ3 0x9300+#define ETH_P_EDSA 0xDADA+#define ETH_P_DSA_8021Q 0xDADB+#define ETH_P_IFE 0xED3E+#define ETH_P_AF_IUCV 0xFBFB++#define ETH_P_802_3_MIN 0x0600++#define ETH_P_802_3 0x0001+#define ETH_P_AX25 0x0002+#define ETH_P_ALL 0x0003+#define ETH_P_802_2 0x0004+#define ETH_P_SNAP 0x0005+#define ETH_P_DDCMP 0x0006+#define ETH_P_WAN_PPP 0x0007+#define ETH_P_PPP_MP 0x0008+#define ETH_P_LOCALTALK 0x0009+#define ETH_P_CAN 0x000C+#define ETH_P_CANFD 0x000D+#define ETH_P_PPPTALK 0x0010+#define ETH_P_TR_802_2 0x0011+#define ETH_P_MOBITEX 0x0015+#define ETH_P_CONTROL 0x0016+#define ETH_P_IRDA 0x0017+#define ETH_P_ECONET 0x0018+#define ETH_P_HDLC 0x0019+#define ETH_P_ARCNET 0x001A+#define ETH_P_DSA 0x001B+#define ETH_P_TRAILER 0x001C+#define ETH_P_PHONET 0x00F5+#define ETH_P_IEEE802154 0x00F6+#define ETH_P_CAIF 0x00F7+#define ETH_P_XDSA 0x00F8+#define ETH_P_MAP 0x00F9++struct ethhdr {+ uint8_t h_dest[ETH_ALEN];+ uint8_t h_source[ETH_ALEN];+ uint16_t h_proto;+};++#include <net/ethernet.h>+#include <net/if_arp.h>++struct ether_arp {+ struct arphdr ea_hdr;+ uint8_t arp_sha[ETH_ALEN];+ uint8_t arp_spa[4];+ uint8_t arp_tha[ETH_ALEN];+ uint8_t arp_tpa[4];+};+#define arp_hrd ea_hdr.ar_hrd+#define arp_pro ea_hdr.ar_pro+#define arp_hln ea_hdr.ar_hln+#define arp_pln ea_hdr.ar_pln+#define arp_op ea_hdr.ar_op++#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \+do { \+ (enaddr)[0] = 0x01; \+ (enaddr)[1] = 0x00; \+ (enaddr)[2] = 0x5e; \+ (enaddr)[3] = ((uint8_t *)ipaddr)[1] & 0x7f; \+ (enaddr)[4] = ((uint8_t *)ipaddr)[2]; \+ (enaddr)[5] = ((uint8_t *)ipaddr)[3]; \+} while(0)++#define __UAPI_DEF_ETHHDR 0++#endif
@@ -0,0 +1,45 @@+#ifndef _NETINET_IGMP_H+#define _NETINET_IGMP_H++#include <stdint.h>+#include <netinet/in.h>++struct igmp {+ uint8_t igmp_type;+ uint8_t igmp_code;+ uint16_t igmp_cksum;+ struct in_addr igmp_group;+};++#define IGMP_MINLEN 8++#define IGMP_MEMBERSHIP_QUERY 0x11+#define IGMP_V1_MEMBERSHIP_REPORT 0x12+#define IGMP_V2_MEMBERSHIP_REPORT 0x16+#define IGMP_V2_LEAVE_GROUP 0x17++#define IGMP_DVMRP 0x13+#define IGMP_PIM 0x14+#define IGMP_TRACE 0x15++#define IGMP_MTRACE_RESP 0x1e+#define IGMP_MTRACE 0x1f++#define IGMP_MAX_HOST_REPORT_DELAY 10+#define IGMP_TIMER_SCALE 10++#define IGMP_DELAYING_MEMBER 1+#define IGMP_IDLE_MEMBER 2+#define IGMP_LAZY_MEMBER 3+#define IGMP_SLEEPING_MEMBER 4+#define IGMP_AWAKENING_MEMBER 5++#define IGMP_v1_ROUTER 1+#define IGMP_v2_ROUTER 2++#define IGMP_HOST_MEMBERSHIP_QUERY IGMP_MEMBERSHIP_QUERY+#define IGMP_HOST_MEMBERSHIP_REPORT IGMP_V1_MEMBERSHIP_REPORT+#define IGMP_HOST_NEW_MEMBERSHIP_REPORT IGMP_V2_MEMBERSHIP_REPORT+#define IGMP_HOST_LEAVE_MESSAGE IGMP_V2_LEAVE_GROUP++#endif
@@ -0,0 +1,417 @@+#ifndef _NETINET_IN_H+#define _NETINET_IN_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <inttypes.h>+#include <sys/socket.h>++typedef uint16_t in_port_t;+typedef uint32_t in_addr_t;+struct in_addr { in_addr_t s_addr; };++struct sockaddr_in {+ sa_family_t sin_family;+ in_port_t sin_port;+ struct in_addr sin_addr;+ uint8_t sin_zero[8];+};++struct in6_addr {+ union {+ uint8_t __s6_addr[16];+ uint16_t __s6_addr16[8];+ uint32_t __s6_addr32[4];+ } __in6_union;+};+#define s6_addr __in6_union.__s6_addr+#define s6_addr16 __in6_union.__s6_addr16+#define s6_addr32 __in6_union.__s6_addr32++struct sockaddr_in6 {+ sa_family_t sin6_family;+ in_port_t sin6_port;+ uint32_t sin6_flowinfo;+ struct in6_addr sin6_addr;+ uint32_t sin6_scope_id;+};++struct ipv6_mreq {+ struct in6_addr ipv6mr_multiaddr;+ unsigned ipv6mr_interface;+};++#define INADDR_ANY ((in_addr_t) 0x00000000)+#define INADDR_BROADCAST ((in_addr_t) 0xffffffff)+#define INADDR_NONE ((in_addr_t) 0xffffffff)+#define INADDR_LOOPBACK ((in_addr_t) 0x7f000001)+#define INADDR_DUMMY ((in_addr_t) 0xc0000008)++#define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000)+#define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001)+#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002)+#define INADDR_ALLSNOOPERS_GROUP ((in_addr_t) 0xe000006a)+#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff)++#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }+#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }++extern const struct in6_addr in6addr_any, in6addr_loopback;++#define INET_ADDRSTRLEN 16+#define INET6_ADDRSTRLEN 46++uint32_t htonl(uint32_t);+uint16_t htons(uint16_t);+uint32_t ntohl(uint32_t);+uint16_t ntohs(uint16_t);++#define IPPORT_RESERVED 1024++#define IPPROTO_IP 0+#define IPPROTO_HOPOPTS 0+#define IPPROTO_ICMP 1+#define IPPROTO_IGMP 2+#define IPPROTO_IPIP 4+#define IPPROTO_TCP 6+#define IPPROTO_EGP 8+#define IPPROTO_PUP 12+#define IPPROTO_UDP 17+#define IPPROTO_IDP 22+#define IPPROTO_TP 29+#define IPPROTO_DCCP 33+#define IPPROTO_IPV6 41+#define IPPROTO_ROUTING 43+#define IPPROTO_FRAGMENT 44+#define IPPROTO_RSVP 46+#define IPPROTO_GRE 47+#define IPPROTO_ESP 50+#define IPPROTO_AH 51+#define IPPROTO_ICMPV6 58+#define IPPROTO_NONE 59+#define IPPROTO_DSTOPTS 60+#define IPPROTO_MTP 92+#define IPPROTO_BEETPH 94+#define IPPROTO_ENCAP 98+#define IPPROTO_PIM 103+#define IPPROTO_COMP 108+#define IPPROTO_SCTP 132+#define IPPROTO_MH 135+#define IPPROTO_UDPLITE 136+#define IPPROTO_MPLS 137+#define IPPROTO_ETHERNET 143+#define IPPROTO_RAW 255+#define IPPROTO_MPTCP 262+#define IPPROTO_MAX 263++#define IN6_IS_ADDR_UNSPECIFIED(a) \+ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \+ ((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == 0)++#define IN6_IS_ADDR_LOOPBACK(a) \+ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \+ ((uint32_t *) (a))[2] == 0 && \+ ((uint8_t *) (a))[12] == 0 && ((uint8_t *) (a))[13] == 0 && \+ ((uint8_t *) (a))[14] == 0 && ((uint8_t *) (a))[15] == 1 )++#define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff)++#define IN6_IS_ADDR_LINKLOCAL(a) \+ ((((uint8_t *) (a))[0]) == 0xfe && (((uint8_t *) (a))[1] & 0xc0) == 0x80)++#define IN6_IS_ADDR_SITELOCAL(a) \+ ((((uint8_t *) (a))[0]) == 0xfe && (((uint8_t *) (a))[1] & 0xc0) == 0xc0)++#define IN6_IS_ADDR_V4MAPPED(a) \+ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \+ ((uint8_t *) (a))[8] == 0 && ((uint8_t *) (a))[9] == 0 && \+ ((uint8_t *) (a))[10] == 0xff && ((uint8_t *) (a))[11] == 0xff)++#define IN6_IS_ADDR_V4COMPAT(a) \+ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \+ ((uint32_t *) (a))[2] == 0 && ((uint8_t *) (a))[15] > 1)++#define IN6_IS_ADDR_MC_NODELOCAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x1))++#define IN6_IS_ADDR_MC_LINKLOCAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x2))++#define IN6_IS_ADDR_MC_SITELOCAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x5))++#define IN6_IS_ADDR_MC_ORGLOCAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x8))++#define IN6_IS_ADDR_MC_GLOBAL(a) \+ (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe))++#define __ARE_4_EQUAL(a,b) \+ (!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) ))+#define IN6_ARE_ADDR_EQUAL(a,b) \+ __ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b))++#define IN_CLASSA(a) ((((in_addr_t)(a)) & 0x80000000) == 0)+#define IN_CLASSA_NET 0xff000000+#define IN_CLASSA_NSHIFT 24+#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)+#define IN_CLASSA_MAX 128+#define IN_CLASSB(a) ((((in_addr_t)(a)) & 0xc0000000) == 0x80000000)+#define IN_CLASSB_NET 0xffff0000+#define IN_CLASSB_NSHIFT 16+#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)+#define IN_CLASSB_MAX 65536+#define IN_CLASSC(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xc0000000)+#define IN_CLASSC_NET 0xffffff00+#define IN_CLASSC_NSHIFT 8+#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)+#define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)+#define IN_MULTICAST(a) IN_CLASSD(a)+#define IN_EXPERIMENTAL(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000)+#define IN_BADCLASS(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000)++#define IN_LOOPBACKNET 127+++#define IP_TOS 1+#define IP_TTL 2+#define IP_HDRINCL 3+#define IP_OPTIONS 4+#define IP_ROUTER_ALERT 5+#define IP_RECVOPTS 6+#define IP_RETOPTS 7+#define IP_PKTINFO 8+#define IP_PKTOPTIONS 9+#define IP_PMTUDISC 10+#define IP_MTU_DISCOVER 10+#define IP_RECVERR 11+#define IP_RECVTTL 12+#define IP_RECVTOS 13+#define IP_MTU 14+#define IP_FREEBIND 15+#define IP_IPSEC_POLICY 16+#define IP_XFRM_POLICY 17+#define IP_PASSSEC 18+#define IP_TRANSPARENT 19+#define IP_ORIGDSTADDR 20+#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR+#define IP_MINTTL 21+#define IP_NODEFRAG 22+#define IP_CHECKSUM 23+#define IP_BIND_ADDRESS_NO_PORT 24+#define IP_RECVFRAGSIZE 25+#define IP_RECVERR_RFC4884 26+#define IP_MULTICAST_IF 32+#define IP_MULTICAST_TTL 33+#define IP_MULTICAST_LOOP 34+#define IP_ADD_MEMBERSHIP 35+#define IP_DROP_MEMBERSHIP 36+#define IP_UNBLOCK_SOURCE 37+#define IP_BLOCK_SOURCE 38+#define IP_ADD_SOURCE_MEMBERSHIP 39+#define IP_DROP_SOURCE_MEMBERSHIP 40+#define IP_MSFILTER 41+#define IP_MULTICAST_ALL 49+#define IP_UNICAST_IF 50++#define IP_RECVRETOPTS IP_RETOPTS++#define IP_PMTUDISC_DONT 0+#define IP_PMTUDISC_WANT 1+#define IP_PMTUDISC_DO 2+#define IP_PMTUDISC_PROBE 3+#define IP_PMTUDISC_INTERFACE 4+#define IP_PMTUDISC_OMIT 5++#define IP_DEFAULT_MULTICAST_TTL 1+#define IP_DEFAULT_MULTICAST_LOOP 1+#define IP_MAX_MEMBERSHIPS 20++struct ip_opts {+ struct in_addr ip_dst;+ char ip_opts[40];+};++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)++#define MCAST_JOIN_GROUP 42+#define MCAST_BLOCK_SOURCE 43+#define MCAST_UNBLOCK_SOURCE 44+#define MCAST_LEAVE_GROUP 45+#define MCAST_JOIN_SOURCE_GROUP 46+#define MCAST_LEAVE_SOURCE_GROUP 47+#define MCAST_MSFILTER 48++#define MCAST_EXCLUDE 0+#define MCAST_INCLUDE 1++struct ip_mreq {+ struct in_addr imr_multiaddr;+ struct in_addr imr_interface;+};++struct ip_mreqn {+ struct in_addr imr_multiaddr;+ struct in_addr imr_address;+ int imr_ifindex;+};++struct ip_mreq_source {+ struct in_addr imr_multiaddr;+ struct in_addr imr_interface;+ struct in_addr imr_sourceaddr;+};++struct ip_msfilter {+ struct in_addr imsf_multiaddr;+ struct in_addr imsf_interface;+ uint32_t imsf_fmode;+ uint32_t imsf_numsrc;+ struct in_addr imsf_slist[1];+};+#define IP_MSFILTER_SIZE(numsrc) \+ (sizeof(struct ip_msfilter) - sizeof(struct in_addr) \+ + (numsrc) * sizeof(struct in_addr))++struct group_req {+ uint32_t gr_interface;+ struct sockaddr_storage gr_group;+};++struct group_source_req {+ uint32_t gsr_interface;+ struct sockaddr_storage gsr_group;+ struct sockaddr_storage gsr_source;+};++struct group_filter {+ uint32_t gf_interface;+ struct sockaddr_storage gf_group;+ uint32_t gf_fmode;+ uint32_t gf_numsrc;+ struct sockaddr_storage gf_slist[1];+};+#define GROUP_FILTER_SIZE(numsrc) \+ (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) \+ + (numsrc) * sizeof(struct sockaddr_storage))++struct in_pktinfo {+ int ipi_ifindex;+ struct in_addr ipi_spec_dst;+ struct in_addr ipi_addr;+};++struct in6_pktinfo {+ struct in6_addr ipi6_addr;+ unsigned ipi6_ifindex;+};++struct ip6_mtuinfo {+ struct sockaddr_in6 ip6m_addr;+ uint32_t ip6m_mtu;+};+#endif++#define IPV6_ADDRFORM 1+#define IPV6_2292PKTINFO 2+#define IPV6_2292HOPOPTS 3+#define IPV6_2292DSTOPTS 4+#define IPV6_2292RTHDR 5+#define IPV6_2292PKTOPTIONS 6+#define IPV6_CHECKSUM 7+#define IPV6_2292HOPLIMIT 8+#define IPV6_NEXTHOP 9+#define IPV6_AUTHHDR 10+#define IPV6_UNICAST_HOPS 16+#define IPV6_MULTICAST_IF 17+#define IPV6_MULTICAST_HOPS 18+#define IPV6_MULTICAST_LOOP 19+#define IPV6_JOIN_GROUP 20+#define IPV6_LEAVE_GROUP 21+#define IPV6_ROUTER_ALERT 22+#define IPV6_MTU_DISCOVER 23+#define IPV6_MTU 24+#define IPV6_RECVERR 25+#define IPV6_V6ONLY 26+#define IPV6_JOIN_ANYCAST 27+#define IPV6_LEAVE_ANYCAST 28+#define IPV6_MULTICAST_ALL 29+#define IPV6_ROUTER_ALERT_ISOLATE 30+#define IPV6_IPSEC_POLICY 34+#define IPV6_XFRM_POLICY 35+#define IPV6_HDRINCL 36++#define IPV6_RECVPKTINFO 49+#define IPV6_PKTINFO 50+#define IPV6_RECVHOPLIMIT 51+#define IPV6_HOPLIMIT 52+#define IPV6_RECVHOPOPTS 53+#define IPV6_HOPOPTS 54+#define IPV6_RTHDRDSTOPTS 55+#define IPV6_RECVRTHDR 56+#define IPV6_RTHDR 57+#define IPV6_RECVDSTOPTS 58+#define IPV6_DSTOPTS 59+#define IPV6_RECVPATHMTU 60+#define IPV6_PATHMTU 61+#define IPV6_DONTFRAG 62+#define IPV6_RECVTCLASS 66+#define IPV6_TCLASS 67+#define IPV6_AUTOFLOWLABEL 70+#define IPV6_ADDR_PREFERENCES 72+#define IPV6_MINHOPCOUNT 73+#define IPV6_ORIGDSTADDR 74+#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR+#define IPV6_TRANSPARENT 75+#define IPV6_UNICAST_IF 76+#define IPV6_RECVFRAGSIZE 77+#define IPV6_FREEBIND 78++#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP+#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP+#define IPV6_RXHOPOPTS IPV6_HOPOPTS+#define IPV6_RXDSTOPTS IPV6_DSTOPTS++#define IPV6_PMTUDISC_DONT 0+#define IPV6_PMTUDISC_WANT 1+#define IPV6_PMTUDISC_DO 2+#define IPV6_PMTUDISC_PROBE 3+#define IPV6_PMTUDISC_INTERFACE 4+#define IPV6_PMTUDISC_OMIT 5++#define IPV6_PREFER_SRC_TMP 0x0001+#define IPV6_PREFER_SRC_PUBLIC 0x0002+#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100+#define IPV6_PREFER_SRC_COA 0x0004+#define IPV6_PREFER_SRC_HOME 0x0400+#define IPV6_PREFER_SRC_CGA 0x0008+#define IPV6_PREFER_SRC_NONCGA 0x0800++#define IPV6_RTHDR_LOOSE 0+#define IPV6_RTHDR_STRICT 1++#define IPV6_RTHDR_TYPE_0 0++#define __UAPI_DEF_IN_ADDR 0+#define __UAPI_DEF_IN_IPPROTO 0+#define __UAPI_DEF_IN_PKTINFO 0+#define __UAPI_DEF_IP_MREQ 0+#define __UAPI_DEF_SOCKADDR_IN 0+#define __UAPI_DEF_IN_CLASS 0+#define __UAPI_DEF_IN6_ADDR 0+#define __UAPI_DEF_IN6_ADDR_ALT 0+#define __UAPI_DEF_SOCKADDR_IN6 0+#define __UAPI_DEF_IPV6_MREQ 0+#define __UAPI_DEF_IPPROTO_V6 0+#define __UAPI_DEF_IPV6_OPTIONS 0+#define __UAPI_DEF_IN6_PKTINFO 0+#define __UAPI_DEF_IP6_MTUINFO 0++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,9 @@+#ifndef _NETINET_IN_SYSTM_H+#define _NETINET_IN_SYSTM_H++#include <stdint.h>++typedef uint16_t n_short;+typedef uint32_t n_long, n_time;++#endif
@@ -0,0 +1,199 @@+#ifndef _NETINET_IP_H+#define _NETINET_IP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <netinet/in.h>++struct timestamp {+ uint8_t len;+ uint8_t ptr;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned int flags:4;+ unsigned int overflow:4;+#else+ unsigned int overflow:4;+ unsigned int flags:4;+#endif+ uint32_t data[9];+ };++struct iphdr {+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned int ihl:4;+ unsigned int version:4;+#else+ unsigned int version:4;+ unsigned int ihl:4;+#endif+ uint8_t tos;+ uint16_t tot_len;+ uint16_t id;+ uint16_t frag_off;+ uint8_t ttl;+ uint8_t protocol;+ uint16_t check;+ uint32_t saddr;+ uint32_t daddr;+};++struct ip {+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned int ip_hl:4;+ unsigned int ip_v:4;+#else+ unsigned int ip_v:4;+ unsigned int ip_hl:4;+#endif+ uint8_t ip_tos;+ uint16_t ip_len;+ uint16_t ip_id;+ uint16_t ip_off;+ uint8_t ip_ttl;+ uint8_t ip_p;+ uint16_t ip_sum;+ struct in_addr ip_src, ip_dst;+};++#define IP_RF 0x8000+#define IP_DF 0x4000+#define IP_MF 0x2000+#define IP_OFFMASK 0x1fff++struct ip_timestamp {+ uint8_t ipt_code;+ uint8_t ipt_len;+ uint8_t ipt_ptr;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ unsigned int ipt_flg:4;+ unsigned int ipt_oflw:4;+#else+ unsigned int ipt_oflw:4;+ unsigned int ipt_flg:4;+#endif+ uint32_t data[9];+};++#define IPVERSION 4+#define IP_MAXPACKET 65535++#define IPTOS_ECN_MASK 0x03+#define IPTOS_ECN(x) ((x) & IPTOS_ECN_MASK)+#define IPTOS_ECN_NOT_ECT 0x00+#define IPTOS_ECN_ECT1 0x01+#define IPTOS_ECN_ECT0 0x02+#define IPTOS_ECN_CE 0x03++#define IPTOS_DSCP_MASK 0xfc+#define IPTOS_DSCP(x) ((x) & IPTOS_DSCP_MASK)+#define IPTOS_DSCP_AF11 0x28+#define IPTOS_DSCP_AF12 0x30+#define IPTOS_DSCP_AF13 0x38+#define IPTOS_DSCP_AF21 0x48+#define IPTOS_DSCP_AF22 0x50+#define IPTOS_DSCP_AF23 0x58+#define IPTOS_DSCP_AF31 0x68+#define IPTOS_DSCP_AF32 0x70+#define IPTOS_DSCP_AF33 0x78+#define IPTOS_DSCP_AF41 0x88+#define IPTOS_DSCP_AF42 0x90+#define IPTOS_DSCP_AF43 0x98+#define IPTOS_DSCP_EF 0xb8++#define IPTOS_CLASS_MASK 0xe0+#define IPTOS_CLASS(x) ((x) & IPTOS_CLASS_MASK)+#define IPTOS_CLASS_CS0 0x00+#define IPTOS_CLASS_CS1 0x20+#define IPTOS_CLASS_CS2 0x40+#define IPTOS_CLASS_CS3 0x60+#define IPTOS_CLASS_CS4 0x80+#define IPTOS_CLASS_CS5 0xa0+#define IPTOS_CLASS_CS6 0xc0+#define IPTOS_CLASS_CS7 0xe0+#define IPTOS_CLASS_DEFAULT IPTOS_CLASS_CS0++#define IPTOS_TOS_MASK 0x1E+#define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK)+#define IPTOS_LOWDELAY 0x10+#define IPTOS_THROUGHPUT 0x08+#define IPTOS_RELIABILITY 0x04+#define IPTOS_LOWCOST 0x02+#define IPTOS_MINCOST IPTOS_LOWCOST++#define IPTOS_PREC_MASK 0xe0+#define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK)+#define IPTOS_PREC_NETCONTROL 0xe0+#define IPTOS_PREC_INTERNETCONTROL 0xc0+#define IPTOS_PREC_CRITIC_ECP 0xa0+#define IPTOS_PREC_FLASHOVERRIDE 0x80+#define IPTOS_PREC_FLASH 0x60+#define IPTOS_PREC_IMMEDIATE 0x40+#define IPTOS_PREC_PRIORITY 0x20+#define IPTOS_PREC_ROUTINE 0x00++#define IPOPT_COPY 0x80+#define IPOPT_CLASS_MASK 0x60+#define IPOPT_NUMBER_MASK 0x1f++#define IPOPT_COPIED(o) ((o) & IPOPT_COPY)+#define IPOPT_CLASS(o) ((o) & IPOPT_CLASS_MASK)+#define IPOPT_NUMBER(o) ((o) & IPOPT_NUMBER_MASK)++#define IPOPT_CONTROL 0x00+#define IPOPT_RESERVED1 0x20+#define IPOPT_DEBMEAS 0x40+#define IPOPT_MEASUREMENT IPOPT_DEBMEAS+#define IPOPT_RESERVED2 0x60++#define IPOPT_EOL 0+#define IPOPT_END IPOPT_EOL+#define IPOPT_NOP 1+#define IPOPT_NOOP IPOPT_NOP++#define IPOPT_RR 7+#define IPOPT_TS 68+#define IPOPT_TIMESTAMP IPOPT_TS+#define IPOPT_SECURITY 130+#define IPOPT_SEC IPOPT_SECURITY+#define IPOPT_LSRR 131+#define IPOPT_SATID 136+#define IPOPT_SID IPOPT_SATID+#define IPOPT_SSRR 137+#define IPOPT_RA 148++#define IPOPT_OPTVAL 0+#define IPOPT_OLEN 1+#define IPOPT_OFFSET 2+#define IPOPT_MINOFF 4++#define MAX_IPOPTLEN 40++#define IPOPT_TS_TSONLY 0+#define IPOPT_TS_TSANDADDR 1+#define IPOPT_TS_PRESPEC 3++#define IPOPT_SECUR_UNCLASS 0x0000+#define IPOPT_SECUR_CONFID 0xf135+#define IPOPT_SECUR_EFTO 0x789a+#define IPOPT_SECUR_MMMM 0xbc4d+#define IPOPT_SECUR_RESTR 0xaf13+#define IPOPT_SECUR_SECRET 0xd788+#define IPOPT_SECUR_TOPSECRET 0x6bc5++#define MAXTTL 255+#define IPDEFTTL 64+#define IPFRAGTTL 60+#define IPTTLDEC 1++#define IP_MSS 576++#define __UAPI_DEF_IPHDR 0++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,141 @@+#ifndef _NETINET_IP6_H+#define _NETINET_IP6_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <netinet/in.h>++struct ip6_hdr {+ union {+ struct ip6_hdrctl {+ uint32_t ip6_un1_flow;+ uint16_t ip6_un1_plen;+ uint8_t ip6_un1_nxt;+ uint8_t ip6_un1_hlim;+ } ip6_un1;+ uint8_t ip6_un2_vfc;+ } ip6_ctlun;+ struct in6_addr ip6_src;+ struct in6_addr ip6_dst;+};++#define ip6_vfc ip6_ctlun.ip6_un2_vfc+#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow+#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen+#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt+#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim+#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim++struct ip6_ext {+ uint8_t ip6e_nxt;+ uint8_t ip6e_len;+};++struct ip6_hbh {+ uint8_t ip6h_nxt;+ uint8_t ip6h_len;+};++struct ip6_dest {+ uint8_t ip6d_nxt;+ uint8_t ip6d_len;+};++struct ip6_rthdr {+ uint8_t ip6r_nxt;+ uint8_t ip6r_len;+ uint8_t ip6r_type;+ uint8_t ip6r_segleft;+};++struct ip6_rthdr0 {+ uint8_t ip6r0_nxt;+ uint8_t ip6r0_len;+ uint8_t ip6r0_type;+ uint8_t ip6r0_segleft;+ uint8_t ip6r0_reserved;+ uint8_t ip6r0_slmap[3];+ struct in6_addr ip6r0_addr[];+};++struct ip6_frag {+ uint8_t ip6f_nxt;+ uint8_t ip6f_reserved;+ uint16_t ip6f_offlg;+ uint32_t ip6f_ident;+};++#if __BYTE_ORDER == __BIG_ENDIAN+#define IP6F_OFF_MASK 0xfff8+#define IP6F_RESERVED_MASK 0x0006+#define IP6F_MORE_FRAG 0x0001+#else+#define IP6F_OFF_MASK 0xf8ff+#define IP6F_RESERVED_MASK 0x0600+#define IP6F_MORE_FRAG 0x0100+#endif++struct ip6_opt {+ uint8_t ip6o_type;+ uint8_t ip6o_len;+};++#define IP6OPT_TYPE(o) ((o) & 0xc0)+#define IP6OPT_TYPE_SKIP 0x00+#define IP6OPT_TYPE_DISCARD 0x40+#define IP6OPT_TYPE_FORCEICMP 0x80+#define IP6OPT_TYPE_ICMP 0xc0+#define IP6OPT_TYPE_MUTABLE 0x20++#define IP6OPT_PAD1 0+#define IP6OPT_PADN 1++#define IP6OPT_JUMBO 0xc2+#define IP6OPT_NSAP_ADDR 0xc3+#define IP6OPT_TUNNEL_LIMIT 0x04+#define IP6OPT_ROUTER_ALERT 0x05++struct ip6_opt_jumbo {+ uint8_t ip6oj_type;+ uint8_t ip6oj_len;+ uint8_t ip6oj_jumbo_len[4];+};+#define IP6OPT_JUMBO_LEN 6++struct ip6_opt_nsap {+ uint8_t ip6on_type;+ uint8_t ip6on_len;+ uint8_t ip6on_src_nsap_len;+ uint8_t ip6on_dst_nsap_len;+};++struct ip6_opt_tunnel {+ uint8_t ip6ot_type;+ uint8_t ip6ot_len;+ uint8_t ip6ot_encap_limit;+};++struct ip6_opt_router {+ uint8_t ip6or_type;+ uint8_t ip6or_len;+ uint8_t ip6or_value[2];+};++#if __BYTE_ORDER == __BIG_ENDIAN+#define IP6_ALERT_MLD 0x0000+#define IP6_ALERT_RSVP 0x0001+#define IP6_ALERT_AN 0x0002+#else+#define IP6_ALERT_MLD 0x0000+#define IP6_ALERT_RSVP 0x0100+#define IP6_ALERT_AN 0x0200+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,193 @@+#ifndef _NETINET_IP_ICMP_H+#define _NETINET_IP_ICMP_H++#include <stdint.h>+#include <netinet/in.h>+#include <netinet/ip.h>++#ifdef __cplusplus+extern "C" {+#endif++struct icmphdr {+ uint8_t type;+ uint8_t code;+ uint16_t checksum;+ union {+ struct {+ uint16_t id;+ uint16_t sequence;+ } echo;+ uint32_t gateway;+ struct {+ uint16_t __unused;+ uint16_t mtu;+ } frag;+ uint8_t reserved[4];+ } un;+};++#define ICMP_ECHOREPLY 0+#define ICMP_DEST_UNREACH 3+#define ICMP_SOURCE_QUENCH 4+#define ICMP_REDIRECT 5+#define ICMP_ECHO 8+#define ICMP_TIME_EXCEEDED 11+#define ICMP_PARAMETERPROB 12+#define ICMP_TIMESTAMP 13+#define ICMP_TIMESTAMPREPLY 14+#define ICMP_INFO_REQUEST 15+#define ICMP_INFO_REPLY 16+#define ICMP_ADDRESS 17+#define ICMP_ADDRESSREPLY 18+#define NR_ICMP_TYPES 18+++#define ICMP_NET_UNREACH 0+#define ICMP_HOST_UNREACH 1+#define ICMP_PROT_UNREACH 2+#define ICMP_PORT_UNREACH 3+#define ICMP_FRAG_NEEDED 4+#define ICMP_SR_FAILED 5+#define ICMP_NET_UNKNOWN 6+#define ICMP_HOST_UNKNOWN 7+#define ICMP_HOST_ISOLATED 8+#define ICMP_NET_ANO 9+#define ICMP_HOST_ANO 10+#define ICMP_NET_UNR_TOS 11+#define ICMP_HOST_UNR_TOS 12+#define ICMP_PKT_FILTERED 13+#define ICMP_PREC_VIOLATION 14+#define ICMP_PREC_CUTOFF 15+#define NR_ICMP_UNREACH 15++#define ICMP_REDIR_NET 0+#define ICMP_REDIR_HOST 1+#define ICMP_REDIR_NETTOS 2+#define ICMP_REDIR_HOSTTOS 3++#define ICMP_EXC_TTL 0+#define ICMP_EXC_FRAGTIME 1+++struct icmp_ra_addr {+ uint32_t ira_addr;+ uint32_t ira_preference;+};++struct icmp {+ uint8_t icmp_type;+ uint8_t icmp_code;+ uint16_t icmp_cksum;+ union {+ uint8_t ih_pptr;+ struct in_addr ih_gwaddr;+ struct ih_idseq {+ uint16_t icd_id;+ uint16_t icd_seq;+ } ih_idseq;+ uint32_t ih_void;++ struct ih_pmtu {+ uint16_t ipm_void;+ uint16_t ipm_nextmtu;+ } ih_pmtu;++ struct ih_rtradv {+ uint8_t irt_num_addrs;+ uint8_t irt_wpa;+ uint16_t irt_lifetime;+ } ih_rtradv;+ } icmp_hun;+ union {+ struct {+ uint32_t its_otime;+ uint32_t its_rtime;+ uint32_t its_ttime;+ } id_ts;+ struct {+ struct ip idi_ip;+ } id_ip;+ struct icmp_ra_addr id_radv;+ uint32_t id_mask;+ uint8_t id_data[1];+ } icmp_dun;+};++#define icmp_pptr icmp_hun.ih_pptr+#define icmp_gwaddr icmp_hun.ih_gwaddr+#define icmp_id icmp_hun.ih_idseq.icd_id+#define icmp_seq icmp_hun.ih_idseq.icd_seq+#define icmp_void icmp_hun.ih_void+#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void+#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu+#define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs+#define icmp_wpa icmp_hun.ih_rtradv.irt_wpa+#define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime+#define icmp_otime icmp_dun.id_ts.its_otime+#define icmp_rtime icmp_dun.id_ts.its_rtime+#define icmp_ttime icmp_dun.id_ts.its_ttime+#define icmp_ip icmp_dun.id_ip.idi_ip+#define icmp_radv icmp_dun.id_radv+#define icmp_mask icmp_dun.id_mask+#define icmp_data icmp_dun.id_data++#define ICMP_MINLEN 8+#define ICMP_TSLEN (8 + 3 * sizeof (n_time))+#define ICMP_MASKLEN 12+#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8)+#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8)++#define ICMP_UNREACH 3+#define ICMP_SOURCEQUENCH 4+#define ICMP_ROUTERADVERT 9+#define ICMP_ROUTERSOLICIT 10+#define ICMP_TIMXCEED 11+#define ICMP_PARAMPROB 12+#define ICMP_TSTAMP 13+#define ICMP_TSTAMPREPLY 14+#define ICMP_IREQ 15+#define ICMP_IREQREPLY 16+#define ICMP_MASKREQ 17+#define ICMP_MASKREPLY 18+#define ICMP_MAXTYPE 18++#define ICMP_UNREACH_NET 0+#define ICMP_UNREACH_HOST 1+#define ICMP_UNREACH_PROTOCOL 2+#define ICMP_UNREACH_PORT 3+#define ICMP_UNREACH_NEEDFRAG 4+#define ICMP_UNREACH_SRCFAIL 5+#define ICMP_UNREACH_NET_UNKNOWN 6+#define ICMP_UNREACH_HOST_UNKNOWN 7+#define ICMP_UNREACH_ISOLATED 8+#define ICMP_UNREACH_NET_PROHIB 9+#define ICMP_UNREACH_HOST_PROHIB 10+#define ICMP_UNREACH_TOSNET 11+#define ICMP_UNREACH_TOSHOST 12+#define ICMP_UNREACH_FILTER_PROHIB 13+#define ICMP_UNREACH_HOST_PRECEDENCE 14+#define ICMP_UNREACH_PRECEDENCE_CUTOFF 15++#define ICMP_REDIRECT_NET 0+#define ICMP_REDIRECT_HOST 1+#define ICMP_REDIRECT_TOSNET 2+#define ICMP_REDIRECT_TOSHOST 3++#define ICMP_TIMXCEED_INTRANS 0+#define ICMP_TIMXCEED_REASS 1++#define ICMP_PARAMPROB_OPTABSENT 1++#define ICMP_INFOTYPE(type) \+ ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \+ (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \+ (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \+ (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \+ (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,305 @@+#ifndef _NETINET_TCP_H+#define _NETINET_TCP_H++#include <features.h>++#define TCP_NODELAY 1+#define TCP_MAXSEG 2+#define TCP_CORK 3+#define TCP_KEEPIDLE 4+#define TCP_KEEPINTVL 5+#define TCP_KEEPCNT 6+#define TCP_SYNCNT 7+#define TCP_LINGER2 8+#define TCP_DEFER_ACCEPT 9+#define TCP_WINDOW_CLAMP 10+#define TCP_INFO 11+#define TCP_QUICKACK 12+#define TCP_CONGESTION 13+#define TCP_MD5SIG 14+#define TCP_THIN_LINEAR_TIMEOUTS 16+#define TCP_THIN_DUPACK 17+#define TCP_USER_TIMEOUT 18+#define TCP_REPAIR 19+#define TCP_REPAIR_QUEUE 20+#define TCP_QUEUE_SEQ 21+#define TCP_REPAIR_OPTIONS 22+#define TCP_FASTOPEN 23+#define TCP_TIMESTAMP 24+#define TCP_NOTSENT_LOWAT 25+#define TCP_CC_INFO 26+#define TCP_SAVE_SYN 27+#define TCP_SAVED_SYN 28+#define TCP_REPAIR_WINDOW 29+#define TCP_FASTOPEN_CONNECT 30+#define TCP_ULP 31+#define TCP_MD5SIG_EXT 32+#define TCP_FASTOPEN_KEY 33+#define TCP_FASTOPEN_NO_COOKIE 34+#define TCP_ZEROCOPY_RECEIVE 35+#define TCP_INQ 36+#define TCP_TX_DELAY 37++#define TCP_CM_INQ TCP_INQ++#define TCP_ESTABLISHED 1+#define TCP_SYN_SENT 2+#define TCP_SYN_RECV 3+#define TCP_FIN_WAIT1 4+#define TCP_FIN_WAIT2 5+#define TCP_TIME_WAIT 6+#define TCP_CLOSE 7+#define TCP_CLOSE_WAIT 8+#define TCP_LAST_ACK 9+#define TCP_LISTEN 10+#define TCP_CLOSING 11++enum {+ TCP_NLA_PAD,+ TCP_NLA_BUSY,+ TCP_NLA_RWND_LIMITED,+ TCP_NLA_SNDBUF_LIMITED,+ TCP_NLA_DATA_SEGS_OUT,+ TCP_NLA_TOTAL_RETRANS,+ TCP_NLA_PACING_RATE,+ TCP_NLA_DELIVERY_RATE,+ TCP_NLA_SND_CWND,+ TCP_NLA_REORDERING,+ TCP_NLA_MIN_RTT,+ TCP_NLA_RECUR_RETRANS,+ TCP_NLA_DELIVERY_RATE_APP_LMT,+ TCP_NLA_SNDQ_SIZE,+ TCP_NLA_CA_STATE,+ TCP_NLA_SND_SSTHRESH,+ TCP_NLA_DELIVERED,+ TCP_NLA_DELIVERED_CE,+ TCP_NLA_BYTES_SENT,+ TCP_NLA_BYTES_RETRANS,+ TCP_NLA_DSACK_DUPS,+ TCP_NLA_REORD_SEEN,+ TCP_NLA_SRTT,+ TCP_NLA_TIMEOUT_REHASH,+ TCP_NLA_BYTES_NOTSENT,+ TCP_NLA_EDT,+ TCP_NLA_TTL,+};++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define TCPOPT_EOL 0+#define TCPOPT_NOP 1+#define TCPOPT_MAXSEG 2+#define TCPOPT_WINDOW 3+#define TCPOPT_SACK_PERMITTED 4+#define TCPOPT_SACK 5+#define TCPOPT_TIMESTAMP 8+#define TCPOLEN_SACK_PERMITTED 2+#define TCPOLEN_WINDOW 3+#define TCPOLEN_MAXSEG 4+#define TCPOLEN_TIMESTAMP 10++#define SOL_TCP 6++#include <sys/types.h>+#include <sys/socket.h>+#include <stdint.h>++typedef uint32_t tcp_seq;++#define TH_FIN 0x01+#define TH_SYN 0x02+#define TH_RST 0x04+#define TH_PUSH 0x08+#define TH_ACK 0x10+#define TH_URG 0x20++struct tcphdr {+#ifdef _GNU_SOURCE+#ifdef __GNUC__+ __extension__+#endif+ union { struct {++ uint16_t source;+ uint16_t dest;+ uint32_t seq;+ uint32_t ack_seq;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ uint16_t res1:4;+ uint16_t doff:4;+ uint16_t fin:1;+ uint16_t syn:1;+ uint16_t rst:1;+ uint16_t psh:1;+ uint16_t ack:1;+ uint16_t urg:1;+ uint16_t res2:2;+#else+ uint16_t doff:4;+ uint16_t res1:4;+ uint16_t res2:2;+ uint16_t urg:1;+ uint16_t ack:1;+ uint16_t psh:1;+ uint16_t rst:1;+ uint16_t syn:1;+ uint16_t fin:1;+#endif+ uint16_t window;+ uint16_t check;+ uint16_t urg_ptr;++ }; struct {+#endif++ uint16_t th_sport;+ uint16_t th_dport;+ uint32_t th_seq;+ uint32_t th_ack;+#if __BYTE_ORDER == __LITTLE_ENDIAN+ uint8_t th_x2:4;+ uint8_t th_off:4;+#else+ uint8_t th_off:4;+ uint8_t th_x2:4;+#endif+ uint8_t th_flags;+ uint16_t th_win;+ uint16_t th_sum;+ uint16_t th_urp;++#ifdef _GNU_SOURCE+ }; };+#endif+};+#endif++#ifdef _GNU_SOURCE+#define TCPI_OPT_TIMESTAMPS 1+#define TCPI_OPT_SACK 2+#define TCPI_OPT_WSCALE 4+#define TCPI_OPT_ECN 8++#define TCP_CA_Open 0+#define TCP_CA_Disorder 1+#define TCP_CA_CWR 2+#define TCP_CA_Recovery 3+#define TCP_CA_Loss 4++enum tcp_fastopen_client_fail {+ TFO_STATUS_UNSPEC,+ TFO_COOKIE_UNAVAILABLE,+ TFO_DATA_NOT_ACKED,+ TFO_SYN_RETRANSMITTED,+};++struct tcp_info {+ uint8_t tcpi_state;+ uint8_t tcpi_ca_state;+ uint8_t tcpi_retransmits;+ uint8_t tcpi_probes;+ uint8_t tcpi_backoff;+ uint8_t tcpi_options;+ uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;+ uint8_t tcpi_delivery_rate_app_limited : 1, tcpi_fastopen_client_fail : 2;+ uint32_t tcpi_rto;+ uint32_t tcpi_ato;+ uint32_t tcpi_snd_mss;+ uint32_t tcpi_rcv_mss;+ uint32_t tcpi_unacked;+ uint32_t tcpi_sacked;+ uint32_t tcpi_lost;+ uint32_t tcpi_retrans;+ uint32_t tcpi_fackets;+ uint32_t tcpi_last_data_sent;+ uint32_t tcpi_last_ack_sent;+ uint32_t tcpi_last_data_recv;+ uint32_t tcpi_last_ack_recv;+ uint32_t tcpi_pmtu;+ uint32_t tcpi_rcv_ssthresh;+ uint32_t tcpi_rtt;+ uint32_t tcpi_rttvar;+ uint32_t tcpi_snd_ssthresh;+ uint32_t tcpi_snd_cwnd;+ uint32_t tcpi_advmss;+ uint32_t tcpi_reordering;+ uint32_t tcpi_rcv_rtt;+ uint32_t tcpi_rcv_space;+ uint32_t tcpi_total_retrans;+ uint64_t tcpi_pacing_rate;+ uint64_t tcpi_max_pacing_rate;+ uint64_t tcpi_bytes_acked;+ uint64_t tcpi_bytes_received;+ uint32_t tcpi_segs_out;+ uint32_t tcpi_segs_in;+ uint32_t tcpi_notsent_bytes;+ uint32_t tcpi_min_rtt;+ uint32_t tcpi_data_segs_in;+ uint32_t tcpi_data_segs_out;+ uint64_t tcpi_delivery_rate;+ uint64_t tcpi_busy_time;+ uint64_t tcpi_rwnd_limited;+ uint64_t tcpi_sndbuf_limited;+ uint32_t tcpi_delivered;+ uint32_t tcpi_delivered_ce;+ uint64_t tcpi_bytes_sent;+ uint64_t tcpi_bytes_retrans;+ uint32_t tcpi_dsack_dups;+ uint32_t tcpi_reord_seen;+ uint32_t tcpi_rcv_ooopack;+ uint32_t tcpi_snd_wnd;+};++#define TCP_MD5SIG_MAXKEYLEN 80++#define TCP_MD5SIG_FLAG_PREFIX 0x1+#define TCP_MD5SIG_FLAG_IFINDEX 0x2++struct tcp_md5sig {+ struct sockaddr_storage tcpm_addr;+ uint8_t tcpm_flags;+ uint8_t tcpm_prefixlen;+ uint16_t tcpm_keylen;+ int tcpm_ifindex;+ uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];+};++struct tcp_diag_md5sig {+ uint8_t tcpm_family;+ uint8_t tcpm_prefixlen;+ uint16_t tcpm_keylen;+ uint32_t tcpm_addr[4];+ uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];+};++#define TCP_REPAIR_ON 1+#define TCP_REPAIR_OFF 0+#define TCP_REPAIR_OFF_NO_WP -1++struct tcp_repair_window {+ uint32_t snd_wl1;+ uint32_t snd_wnd;+ uint32_t max_window;+ uint32_t rcv_wnd;+ uint32_t rcv_wup;+};++#define TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT 0x1++struct tcp_zerocopy_receive {+ uint64_t address;+ uint32_t length;+ uint32_t recv_skip_hint;+ uint32_t inq;+ int32_t err;+ uint64_t copybuf_address;+ int32_t copybuf_len;+ uint32_t flags;+ uint64_t msg_control;+ uint64_t msg_controllen;+ uint32_t msg_flags;+ uint32_t reserved;+};++#endif++#endif
@@ -0,0 +1,46 @@+#ifndef _NETINET_UDP_H+#define _NETINET_UDP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <stdint.h>++#ifdef _GNU_SOURCE+#define uh_sport source+#define uh_dport dest+#define uh_ulen len+#define uh_sum check+#endif++struct udphdr {+ uint16_t uh_sport;+ uint16_t uh_dport;+ uint16_t uh_ulen;+ uint16_t uh_sum;+};++#define UDP_CORK 1+#define UDP_ENCAP 100+#define UDP_NO_CHECK6_TX 101+#define UDP_NO_CHECK6_RX 102+#define UDP_SEGMENT 103+#define UDP_GRO 104++#define UDP_ENCAP_ESPINUDP_NON_IKE 1+#define UDP_ENCAP_ESPINUDP 2+#define UDP_ENCAP_L2TPINUDP 3+#define UDP_ENCAP_GTP0 4+#define UDP_ENCAP_GTP1U 5+#define UDP_ENCAP_RXRPC 6+#define TCP_ENCAP_ESPINTCP 7++#define SOL_UDP 17++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,62 @@+#ifndef _NETPACKET_PACKET_H+#define _NETPACKET_PACKET_H++#ifdef __cplusplus+extern "C" {+#endif++struct sockaddr_ll {+ unsigned short sll_family, sll_protocol;+ int sll_ifindex;+ unsigned short sll_hatype;+ unsigned char sll_pkttype, sll_halen;+ unsigned char sll_addr[8];+};++struct packet_mreq {+ int mr_ifindex;+ unsigned short int mr_type, mr_alen;+ unsigned char mr_address[8];+};++#define PACKET_HOST 0+#define PACKET_BROADCAST 1+#define PACKET_MULTICAST 2+#define PACKET_OTHERHOST 3+#define PACKET_OUTGOING 4+#define PACKET_LOOPBACK 5+#define PACKET_FASTROUTE 6++#define PACKET_ADD_MEMBERSHIP 1+#define PACKET_DROP_MEMBERSHIP 2+#define PACKET_RECV_OUTPUT 3+#define PACKET_RX_RING 5+#define PACKET_STATISTICS 6+#define PACKET_COPY_THRESH 7+#define PACKET_AUXDATA 8+#define PACKET_ORIGDEV 9+#define PACKET_VERSION 10+#define PACKET_HDRLEN 11+#define PACKET_RESERVE 12+#define PACKET_TX_RING 13+#define PACKET_LOSS 14+#define PACKET_VNET_HDR 15+#define PACKET_TX_TIMESTAMP 16+#define PACKET_TIMESTAMP 17+#define PACKET_FANOUT 18+#define PACKET_TX_HAS_OFF 19+#define PACKET_QDISC_BYPASS 20+#define PACKET_ROLLOVER_STATS 21+#define PACKET_FANOUT_DATA 22+#define PACKET_IGNORE_OUTGOING 23++#define PACKET_MR_MULTICAST 0+#define PACKET_MR_PROMISC 1+#define PACKET_MR_ALLMULTI 2+#define PACKET_MR_UNICAST 3++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,22 @@+#ifndef _NL_TYPES_H+#define _NL_TYPES_H++#ifdef __cplusplus+extern "C" {+#endif++#define NL_SETD 1+#define NL_CAT_LOCALE 1++typedef int nl_item;+typedef void *nl_catd;++nl_catd catopen (const char *, int);+char *catgets (nl_catd, int, int, const char *);+int catclose (nl_catd);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,31 @@+#ifndef _PATHS_H+#define _PATHS_H++#define _PATH_DEFPATH "/usr/local/bin:/bin:/usr/bin"+#define _PATH_STDPATH "/bin:/usr/bin:/sbin:/usr/sbin"++#define _PATH_BSHELL "/bin/sh"+#define _PATH_CONSOLE "/dev/console"+#define _PATH_DEVNULL "/dev/null"+#define _PATH_KLOG "/proc/kmsg"+#define _PATH_LASTLOG "/var/log/lastlog"+#define _PATH_MAILDIR "/var/mail"+#define _PATH_MAN "/usr/share/man"+#define _PATH_MNTTAB "/etc/fstab"+#define _PATH_MOUNTED "/etc/mtab"+#define _PATH_NOLOGIN "/etc/nologin"+#define _PATH_SENDMAIL "/usr/sbin/sendmail"+#define _PATH_SHADOW "/etc/shadow"+#define _PATH_SHELLS "/etc/shells"+#define _PATH_TTY "/dev/tty"+#define _PATH_UTMP "/dev/null/utmp"+#define _PATH_VI "/usr/bin/vi"+#define _PATH_WTMP "/dev/null/wtmp"++#define _PATH_DEV "/dev/"+#define _PATH_TMP "/tmp/"+#define _PATH_VARDB "/var/lib/misc/"+#define _PATH_VARRUN "/var/run/"+#define _PATH_VARTMP "/var/tmp/"++#endif
@@ -0,0 +1,57 @@+#ifndef _POLL_H+#define _POLL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <bits/poll.h>++#define POLLIN 0x001+#define POLLPRI 0x002+#define POLLOUT 0x004+#define POLLERR 0x008+#define POLLHUP 0x010+#define POLLNVAL 0x020+#define POLLRDNORM 0x040+#define POLLRDBAND 0x080+#ifndef POLLWRNORM+#define POLLWRNORM 0x100+#define POLLWRBAND 0x200+#endif+#ifndef POLLMSG+#define POLLMSG 0x400+#define POLLRDHUP 0x2000+#endif++typedef unsigned long nfds_t;++struct pollfd {+ int fd;+ short events;+ short revents;+};++int poll (struct pollfd *, nfds_t, int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __NEED_time_t+#define __NEED_struct_timespec+#define __NEED_sigset_t+#include <bits/alltypes.h>+int ppoll(struct pollfd *, nfds_t, const struct timespec *, const sigset_t *);+#endif++#if _REDIR_TIME64+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+__REDIR(ppoll, __ppoll_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,244 @@+#ifndef _PTHREAD_H+#define _PTHREAD_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_time_t+#define __NEED_clockid_t+#define __NEED_struct_timespec+#define __NEED_sigset_t+#define __NEED_pthread_t+#define __NEED_pthread_attr_t+#define __NEED_pthread_mutexattr_t+#define __NEED_pthread_condattr_t+#define __NEED_pthread_rwlockattr_t+#define __NEED_pthread_barrierattr_t+#define __NEED_pthread_mutex_t+#define __NEED_pthread_cond_t+#define __NEED_pthread_rwlock_t+#define __NEED_pthread_barrier_t+#define __NEED_pthread_spinlock_t+#define __NEED_pthread_key_t+#define __NEED_pthread_once_t+#define __NEED_size_t++#include <bits/alltypes.h>++#include <sched.h>+#include <time.h>++#define PTHREAD_CREATE_JOINABLE 0+#define PTHREAD_CREATE_DETACHED 1++#define PTHREAD_MUTEX_NORMAL 0+#define PTHREAD_MUTEX_DEFAULT 0+#define PTHREAD_MUTEX_RECURSIVE 1+#define PTHREAD_MUTEX_ERRORCHECK 2++#define PTHREAD_MUTEX_STALLED 0+#define PTHREAD_MUTEX_ROBUST 1++#define PTHREAD_PRIO_NONE 0+#define PTHREAD_PRIO_INHERIT 1+#define PTHREAD_PRIO_PROTECT 2++#define PTHREAD_INHERIT_SCHED 0+#define PTHREAD_EXPLICIT_SCHED 1++#define PTHREAD_SCOPE_SYSTEM 0+#define PTHREAD_SCOPE_PROCESS 1++#define PTHREAD_PROCESS_PRIVATE 0+#define PTHREAD_PROCESS_SHARED 1+++#define PTHREAD_MUTEX_INITIALIZER {{{0}}}+#define PTHREAD_RWLOCK_INITIALIZER {{{0}}}+#define PTHREAD_COND_INITIALIZER {{{0}}}+#define PTHREAD_ONCE_INIT 0+++#define PTHREAD_CANCEL_ENABLE 0+#define PTHREAD_CANCEL_DISABLE 1+#define PTHREAD_CANCEL_MASKED 2++#define PTHREAD_CANCEL_DEFERRED 0+#define PTHREAD_CANCEL_ASYNCHRONOUS 1++#define PTHREAD_CANCELED ((void *)-1)+++#define PTHREAD_BARRIER_SERIAL_THREAD (-1)+++#define PTHREAD_NULL ((pthread_t)0)+++int pthread_create(pthread_t *__restrict, const pthread_attr_t *__restrict, void *(*)(void *), void *__restrict);+int pthread_detach(pthread_t);+_Noreturn void pthread_exit(void *);+int pthread_join(pthread_t, void **);++#ifdef __GNUC__+__attribute__((const))+#endif+pthread_t pthread_self(void);++int pthread_equal(pthread_t, pthread_t);+#ifndef __cplusplus+#define pthread_equal(x,y) ((x)==(y))+#endif++int pthread_setcancelstate(int, int *);+int pthread_setcanceltype(int, int *);+void pthread_testcancel(void);+int pthread_cancel(pthread_t);++int pthread_getschedparam(pthread_t, int *__restrict, struct sched_param *__restrict);+int pthread_setschedparam(pthread_t, int, const struct sched_param *);+int pthread_setschedprio(pthread_t, int);++int pthread_once(pthread_once_t *, void (*)(void));++int pthread_mutex_init(pthread_mutex_t *__restrict, const pthread_mutexattr_t *__restrict);+int pthread_mutex_lock(pthread_mutex_t *);+int pthread_mutex_unlock(pthread_mutex_t *);+int pthread_mutex_trylock(pthread_mutex_t *);+int pthread_mutex_timedlock(pthread_mutex_t *__restrict, const struct timespec *__restrict);+int pthread_mutex_destroy(pthread_mutex_t *);+int pthread_mutex_consistent(pthread_mutex_t *);++int pthread_mutex_getprioceiling(const pthread_mutex_t *__restrict, int *__restrict);+int pthread_mutex_setprioceiling(pthread_mutex_t *__restrict, int, int *__restrict);++int pthread_cond_init(pthread_cond_t *__restrict, const pthread_condattr_t *__restrict);+int pthread_cond_destroy(pthread_cond_t *);+int pthread_cond_wait(pthread_cond_t *__restrict, pthread_mutex_t *__restrict);+int pthread_cond_timedwait(pthread_cond_t *__restrict, pthread_mutex_t *__restrict, const struct timespec *__restrict);+int pthread_cond_broadcast(pthread_cond_t *);+int pthread_cond_signal(pthread_cond_t *);++int pthread_rwlock_init(pthread_rwlock_t *__restrict, const pthread_rwlockattr_t *__restrict);+int pthread_rwlock_destroy(pthread_rwlock_t *);+int pthread_rwlock_rdlock(pthread_rwlock_t *);+int pthread_rwlock_tryrdlock(pthread_rwlock_t *);+int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict, const struct timespec *__restrict);+int pthread_rwlock_wrlock(pthread_rwlock_t *);+int pthread_rwlock_trywrlock(pthread_rwlock_t *);+int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict, const struct timespec *__restrict);+int pthread_rwlock_unlock(pthread_rwlock_t *);++int pthread_spin_init(pthread_spinlock_t *, int);+int pthread_spin_destroy(pthread_spinlock_t *);+int pthread_spin_lock(pthread_spinlock_t *);+int pthread_spin_trylock(pthread_spinlock_t *);+int pthread_spin_unlock(pthread_spinlock_t *);++int pthread_barrier_init(pthread_barrier_t *__restrict, const pthread_barrierattr_t *__restrict, unsigned);+int pthread_barrier_destroy(pthread_barrier_t *);+int pthread_barrier_wait(pthread_barrier_t *);++int pthread_key_create(pthread_key_t *, void (*)(void *));+int pthread_key_delete(pthread_key_t);+void *pthread_getspecific(pthread_key_t);+int pthread_setspecific(pthread_key_t, const void *);++int pthread_attr_init(pthread_attr_t *);+int pthread_attr_destroy(pthread_attr_t *);++int pthread_attr_getguardsize(const pthread_attr_t *__restrict, size_t *__restrict);+int pthread_attr_setguardsize(pthread_attr_t *, size_t);+int pthread_attr_getstacksize(const pthread_attr_t *__restrict, size_t *__restrict);+int pthread_attr_setstacksize(pthread_attr_t *, size_t);+int pthread_attr_getdetachstate(const pthread_attr_t *, int *);+int pthread_attr_setdetachstate(pthread_attr_t *, int);+int pthread_attr_getstack(const pthread_attr_t *__restrict, void **__restrict, size_t *__restrict);+int pthread_attr_setstack(pthread_attr_t *, void *, size_t);+int pthread_attr_getscope(const pthread_attr_t *__restrict, int *__restrict);+int pthread_attr_setscope(pthread_attr_t *, int);+int pthread_attr_getschedpolicy(const pthread_attr_t *__restrict, int *__restrict);+int pthread_attr_setschedpolicy(pthread_attr_t *, int);+int pthread_attr_getschedparam(const pthread_attr_t *__restrict, struct sched_param *__restrict);+int pthread_attr_setschedparam(pthread_attr_t *__restrict, const struct sched_param *__restrict);+int pthread_attr_getinheritsched(const pthread_attr_t *__restrict, int *__restrict);+int pthread_attr_setinheritsched(pthread_attr_t *, int);++int pthread_mutexattr_destroy(pthread_mutexattr_t *);+int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_getpshared(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_getrobust(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_gettype(const pthread_mutexattr_t *__restrict, int *__restrict);+int pthread_mutexattr_init(pthread_mutexattr_t *);+int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);+int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);+int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);+int pthread_mutexattr_setrobust(pthread_mutexattr_t *, int);+int pthread_mutexattr_settype(pthread_mutexattr_t *, int);++int pthread_condattr_init(pthread_condattr_t *);+int pthread_condattr_destroy(pthread_condattr_t *);+int pthread_condattr_setclock(pthread_condattr_t *, clockid_t);+int pthread_condattr_setpshared(pthread_condattr_t *, int);+int pthread_condattr_getclock(const pthread_condattr_t *__restrict, clockid_t *__restrict);+int pthread_condattr_getpshared(const pthread_condattr_t *__restrict, int *__restrict);++int pthread_rwlockattr_init(pthread_rwlockattr_t *);+int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);+int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);+int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *__restrict, int *__restrict);++int pthread_barrierattr_destroy(pthread_barrierattr_t *);+int pthread_barrierattr_getpshared(const pthread_barrierattr_t *__restrict, int *__restrict);+int pthread_barrierattr_init(pthread_barrierattr_t *);+int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int);++int pthread_atfork(void (*)(void), void (*)(void), void (*)(void));++int pthread_getconcurrency(void);+int pthread_setconcurrency(int);++int pthread_getcpuclockid(pthread_t, clockid_t *);++struct __ptcb {+ void (*__f)(void *);+ void *__x;+ struct __ptcb *__next;+};++void _pthread_cleanup_push(struct __ptcb *, void (*)(void *), void *);+void _pthread_cleanup_pop(struct __ptcb *, int);++#define pthread_cleanup_push(f, x) do { struct __ptcb __cb; _pthread_cleanup_push(&__cb, f, x);+#define pthread_cleanup_pop(r) _pthread_cleanup_pop(&__cb, (r)); } while(0)++#ifdef _GNU_SOURCE+struct cpu_set_t;+int pthread_getaffinity_np(pthread_t, size_t, struct cpu_set_t *);+int pthread_setaffinity_np(pthread_t, size_t, const struct cpu_set_t *);+int pthread_getattr_np(pthread_t, pthread_attr_t *);+int pthread_setname_np(pthread_t, const char *);+int pthread_getname_np(pthread_t, char *, size_t);+int pthread_getattr_default_np(pthread_attr_t *);+int pthread_setattr_default_np(const pthread_attr_t *);+int pthread_tryjoin_np(pthread_t, void **);+int pthread_timedjoin_np(pthread_t, void **, const struct timespec *);+#endif++#if _REDIR_TIME64+__REDIR(pthread_mutex_timedlock, __pthread_mutex_timedlock_time64);+__REDIR(pthread_cond_timedwait, __pthread_cond_timedwait_time64);+__REDIR(pthread_rwlock_timedrdlock, __pthread_rwlock_timedrdlock_time64);+__REDIR(pthread_rwlock_timedwrlock, __pthread_rwlock_timedwrlock_time64);+#ifdef _GNU_SOURCE+__REDIR(pthread_timedjoin_np, __pthread_timedjoin_np_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,18 @@+#ifndef _PTY_H+#define _PTY_H++#ifdef __cplusplus+extern "C" {+#endif++#include <termios.h>+#include <sys/ioctl.h>++int openpty(int *, int *, char *, const struct termios *, const struct winsize *);+int forkpty(int *, char *, const struct termios *, const struct winsize *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,50 @@+#ifndef _PWD_H+#define _PWD_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_uid_t+#define __NEED_gid_t++#ifdef _GNU_SOURCE+#define __NEED_FILE+#endif++#include <bits/alltypes.h>++struct passwd {+ char *pw_name;+ char *pw_passwd;+ uid_t pw_uid;+ gid_t pw_gid;+ char *pw_gecos;+ char *pw_dir;+ char *pw_shell;+};++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+void setpwent (void);+void endpwent (void);+struct passwd *getpwent (void);+#endif++struct passwd *getpwuid (uid_t);+struct passwd *getpwnam (const char *);+int getpwuid_r (uid_t, struct passwd *, char *, size_t, struct passwd **);+int getpwnam_r (const char *, struct passwd *, char *, size_t, struct passwd **);++#ifdef _GNU_SOURCE+struct passwd *fgetpwent(FILE *);+int putpwent(const struct passwd *, FILE *);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,62 @@+#ifndef _REGEX_H+#define _REGEX_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_regoff_t+#define __NEED_size_t++#include <bits/alltypes.h>++typedef struct re_pattern_buffer {+ size_t re_nsub;+ void *__opaque, *__padding[4];+ size_t __nsub2;+ char __padding2;+} regex_t;++typedef struct {+ regoff_t rm_so;+ regoff_t rm_eo;+} regmatch_t;++#define REG_EXTENDED 1+#define REG_ICASE 2+#define REG_NEWLINE 4+#define REG_NOSUB 8++#define REG_NOTBOL 1+#define REG_NOTEOL 2++#define REG_OK 0+#define REG_NOMATCH 1+#define REG_BADPAT 2+#define REG_ECOLLATE 3+#define REG_ECTYPE 4+#define REG_EESCAPE 5+#define REG_ESUBREG 6+#define REG_EBRACK 7+#define REG_EPAREN 8+#define REG_EBRACE 9+#define REG_BADBR 10+#define REG_ERANGE 11+#define REG_ESPACE 12+#define REG_BADRPT 13++#define REG_ENOSYS -1++int regcomp(regex_t *__restrict, const char *__restrict, int);+int regexec(const regex_t *__restrict, const char *__restrict, size_t, regmatch_t *__restrict, int);+void regfree(regex_t *);++size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,142 @@+#ifndef _RESOLV_H+#define _RESOLV_H++#include <stdint.h>+#include <arpa/nameser.h>+#include <netinet/in.h>++#ifdef __cplusplus+extern "C" {+#endif++#define MAXNS 3+#define MAXDFLSRCH 3+#define MAXDNSRCH 6+#define LOCALDOMAINPARTS 2++#define RES_TIMEOUT 5+#define MAXRESOLVSORT 10+#define RES_MAXNDOTS 15+#define RES_MAXRETRANS 30+#define RES_MAXRETRY 5+#define RES_DFLRETRY 2+#define RES_MAXTIME 65535++/* unused; purely for broken apps */+typedef struct __res_state {+ int retrans;+ int retry;+ unsigned long options;+ int nscount;+ struct sockaddr_in nsaddr_list[MAXNS];+# define nsaddr nsaddr_list[0]+ unsigned short id;+ char *dnsrch[MAXDNSRCH+1];+ char defdname[256];+ unsigned long pfcode;+ unsigned ndots:4;+ unsigned nsort:4;+ unsigned ipv6_unavail:1;+ unsigned unused:23;+ struct {+ struct in_addr addr;+ uint32_t mask;+ } sort_list[MAXRESOLVSORT];+ void *qhook;+ void *rhook;+ int res_h_errno;+ int _vcsock;+ unsigned _flags;+ union {+ char pad[52];+ struct {+ uint16_t nscount;+ uint16_t nsmap[MAXNS];+ int nssocks[MAXNS];+ uint16_t nscount6;+ uint16_t nsinit;+ struct sockaddr_in6 *nsaddrs[MAXNS];+ unsigned int _initstamp[2];+ } _ext;+ } _u;+} *res_state;++#define __RES 19960801++#ifndef _PATH_RESCONF+#define _PATH_RESCONF "/etc/resolv.conf"+#endif++struct res_sym {+ int number;+ char *name;+ char *humanname;+};++#define RES_F_VC 0x00000001+#define RES_F_CONN 0x00000002+#define RES_F_EDNS0ERR 0x00000004++#define RES_EXHAUSTIVE 0x00000001++#define RES_INIT 0x00000001+#define RES_DEBUG 0x00000002+#define RES_AAONLY 0x00000004+#define RES_USEVC 0x00000008+#define RES_PRIMARY 0x00000010+#define RES_IGNTC 0x00000020+#define RES_RECURSE 0x00000040+#define RES_DEFNAMES 0x00000080+#define RES_STAYOPEN 0x00000100+#define RES_DNSRCH 0x00000200+#define RES_INSECURE1 0x00000400+#define RES_INSECURE2 0x00000800+#define RES_NOALIASES 0x00001000+#define RES_USE_INET6 0x00002000+#define RES_ROTATE 0x00004000+#define RES_NOCHECKNAME 0x00008000+#define RES_KEEPTSIG 0x00010000+#define RES_BLAST 0x00020000+#define RES_USEBSTRING 0x00040000+#define RES_NOIP6DOTINT 0x00080000+#define RES_USE_EDNS0 0x00100000+#define RES_SNGLKUP 0x00200000+#define RES_SNGLKUPREOP 0x00400000+#define RES_USE_DNSSEC 0x00800000++#define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT)++#define RES_PRF_STATS 0x00000001+#define RES_PRF_UPDATE 0x00000002+#define RES_PRF_CLASS 0x00000004+#define RES_PRF_CMD 0x00000008+#define RES_PRF_QUES 0x00000010+#define RES_PRF_ANS 0x00000020+#define RES_PRF_AUTH 0x00000040+#define RES_PRF_ADD 0x00000080+#define RES_PRF_HEAD1 0x00000100+#define RES_PRF_HEAD2 0x00000200+#define RES_PRF_TTLID 0x00000400+#define RES_PRF_HEADX 0x00000800+#define RES_PRF_QUERY 0x00001000+#define RES_PRF_REPLY 0x00002000+#define RES_PRF_INIT 0x00004000++struct __res_state *__res_state(void);+#define _res (*__res_state())++int res_init(void);+int res_query(const char *, int, int, unsigned char *, int);+int res_querydomain(const char *, const char *, int, int, unsigned char *, int);+int res_search(const char *, int, int, unsigned char *, int);+int res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);+int res_send(const unsigned char *, int, unsigned char *, int);+int dn_comp(const char *, unsigned char *, int, unsigned char **, unsigned char **);+int dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);+int dn_skipname(const unsigned char *, const unsigned char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,148 @@+#ifndef _SCHED_H+#define _SCHED_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_struct_timespec+#define __NEED_pid_t+#define __NEED_time_t++#ifdef _GNU_SOURCE+#define __NEED_size_t+#endif++#include <bits/alltypes.h>++struct sched_param {+ int sched_priority;+ int __reserved1;+#if _REDIR_TIME64+ long __reserved2[4];+#else+ struct {+ time_t __reserved1;+ long __reserved2;+ } __reserved2[2];+#endif+ int __reserved3;+};++int sched_get_priority_max(int);+int sched_get_priority_min(int);+int sched_getparam(pid_t, struct sched_param *);+int sched_getscheduler(pid_t);+int sched_rr_get_interval(pid_t, struct timespec *);+int sched_setparam(pid_t, const struct sched_param *);+int sched_setscheduler(pid_t, int, const struct sched_param *);+int sched_yield(void);++#define SCHED_OTHER 0+#define SCHED_FIFO 1+#define SCHED_RR 2+#define SCHED_BATCH 3+#define SCHED_IDLE 5+#define SCHED_DEADLINE 6+#define SCHED_RESET_ON_FORK 0x40000000++#ifdef _GNU_SOURCE+#define CSIGNAL 0x000000ff+#define CLONE_NEWTIME 0x00000080+#define CLONE_VM 0x00000100+#define CLONE_FS 0x00000200+#define CLONE_FILES 0x00000400+#define CLONE_SIGHAND 0x00000800+#define CLONE_PIDFD 0x00001000+#define CLONE_PTRACE 0x00002000+#define CLONE_VFORK 0x00004000+#define CLONE_PARENT 0x00008000+#define CLONE_THREAD 0x00010000+#define CLONE_NEWNS 0x00020000+#define CLONE_SYSVSEM 0x00040000+#define CLONE_SETTLS 0x00080000+#define CLONE_PARENT_SETTID 0x00100000+#define CLONE_CHILD_CLEARTID 0x00200000+#define CLONE_DETACHED 0x00400000+#define CLONE_UNTRACED 0x00800000+#define CLONE_CHILD_SETTID 0x01000000+#define CLONE_NEWCGROUP 0x02000000+#define CLONE_NEWUTS 0x04000000+#define CLONE_NEWIPC 0x08000000+#define CLONE_NEWUSER 0x10000000+#define CLONE_NEWPID 0x20000000+#define CLONE_NEWNET 0x40000000+#define CLONE_IO 0x80000000+int clone (int (*)(void *), void *, int, void *, ...);+int unshare(int);+int setns(int, int);++void *memcpy(void *__restrict, const void *__restrict, size_t);+int memcmp(const void *, const void *, size_t);+void *memset (void *, int, size_t);+void *calloc(size_t, size_t);+void free(void *);++typedef struct cpu_set_t { unsigned long __bits[128/sizeof(long)]; } cpu_set_t;+int __sched_cpucount(size_t, const cpu_set_t *);+int sched_getcpu(void);+int sched_getaffinity(pid_t, size_t, cpu_set_t *);+int sched_setaffinity(pid_t, size_t, const cpu_set_t *);++#define __CPU_op_S(i, size, set, op) ( (i)/8U >= (size) ? 0 : \+ (((unsigned long *)(set))[(i)/8/sizeof(long)] op (1UL<<((i)%(8*sizeof(long))))) )++#define CPU_SET_S(i, size, set) __CPU_op_S(i, size, set, |=)+#define CPU_CLR_S(i, size, set) __CPU_op_S(i, size, set, &=~)+#define CPU_ISSET_S(i, size, set) __CPU_op_S(i, size, set, &)++#define __CPU_op_func_S(func, op) \+static __inline void __CPU_##func##_S(size_t __size, cpu_set_t *__dest, \+ const cpu_set_t *__src1, const cpu_set_t *__src2) \+{ \+ size_t __i; \+ for (__i=0; __i<__size/sizeof(long); __i++) \+ ((unsigned long *)__dest)[__i] = ((unsigned long *)__src1)[__i] \+ op ((unsigned long *)__src2)[__i] ; \+}++__CPU_op_func_S(AND, &)+__CPU_op_func_S(OR, |)+__CPU_op_func_S(XOR, ^)++#define CPU_AND_S(a,b,c,d) __CPU_AND_S(a,b,c,d)+#define CPU_OR_S(a,b,c,d) __CPU_OR_S(a,b,c,d)+#define CPU_XOR_S(a,b,c,d) __CPU_XOR_S(a,b,c,d)++#define CPU_COUNT_S(size,set) __sched_cpucount(size,set)+#define CPU_ZERO_S(size,set) memset(set,0,size)+#define CPU_EQUAL_S(size,set1,set2) (!memcmp(set1,set2,size))++#define CPU_ALLOC_SIZE(n) (sizeof(long) * ( (n)/(8*sizeof(long)) \+ + ((n)%(8*sizeof(long)) + 8*sizeof(long)-1)/(8*sizeof(long)) ) )+#define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))+#define CPU_FREE(set) free(set)++#define CPU_SETSIZE 1024++#define CPU_SET(i, set) CPU_SET_S(i,sizeof(cpu_set_t),set)+#define CPU_CLR(i, set) CPU_CLR_S(i,sizeof(cpu_set_t),set)+#define CPU_ISSET(i, set) CPU_ISSET_S(i,sizeof(cpu_set_t),set)+#define CPU_AND(d,s1,s2) CPU_AND_S(sizeof(cpu_set_t),d,s1,s2)+#define CPU_OR(d,s1,s2) CPU_OR_S(sizeof(cpu_set_t),d,s1,s2)+#define CPU_XOR(d,s1,s2) CPU_XOR_S(sizeof(cpu_set_t),d,s1,s2)+#define CPU_COUNT(set) CPU_COUNT_S(sizeof(cpu_set_t),set)+#define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t),set)+#define CPU_EQUAL(s1,s2) CPU_EQUAL_S(sizeof(cpu_set_t),s1,s2)++#endif++#if _REDIR_TIME64+__REDIR(sched_rr_get_interval, __sched_rr_get_interval_time64);+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,150 @@+#ifndef _SCSI_SCSI_H+#define _SCSI_SCSI_H++#define TEST_UNIT_READY 0x00+#define REZERO_UNIT 0x01+#define REQUEST_SENSE 0x03+#define FORMAT_UNIT 0x04+#define READ_BLOCK_LIMITS 0x05+#define REASSIGN_BLOCKS 0x07+#define READ_6 0x08+#define WRITE_6 0x0a+#define SEEK_6 0x0b+#define READ_REVERSE 0x0f+#define WRITE_FILEMARKS 0x10+#define SPACE 0x11+#define INQUIRY 0x12+#define RECOVER_BUFFERED_DATA 0x14+#define MODE_SELECT 0x15+#define RESERVE 0x16+#define RELEASE 0x17+#define COPY 0x18+#define ERASE 0x19+#define MODE_SENSE 0x1a+#define START_STOP 0x1b+#define RECEIVE_DIAGNOSTIC 0x1c+#define SEND_DIAGNOSTIC 0x1d+#define ALLOW_MEDIUM_REMOVAL 0x1e+#define SET_WINDOW 0x24+#define READ_CAPACITY 0x25+#define READ_10 0x28+#define WRITE_10 0x2a+#define SEEK_10 0x2b+#define WRITE_VERIFY 0x2e+#define VERIFY 0x2f+#define SEARCH_HIGH 0x30+#define SEARCH_EQUAL 0x31+#define SEARCH_LOW 0x32+#define SET_LIMITS 0x33+#define PRE_FETCH 0x34+#define READ_POSITION 0x34+#define SYNCHRONIZE_CACHE 0x35+#define LOCK_UNLOCK_CACHE 0x36+#define READ_DEFECT_DATA 0x37+#define MEDIUM_SCAN 0x38+#define COMPARE 0x39+#define COPY_VERIFY 0x3a+#define WRITE_BUFFER 0x3b+#define READ_BUFFER 0x3c+#define UPDATE_BLOCK 0x3d+#define READ_LONG 0x3e+#define WRITE_LONG 0x3f+#define CHANGE_DEFINITION 0x40+#define WRITE_SAME 0x41+#define READ_TOC 0x43+#define LOG_SELECT 0x4c+#define LOG_SENSE 0x4d+#define MODE_SELECT_10 0x55+#define RESERVE_10 0x56+#define RELEASE_10 0x57+#define MODE_SENSE_10 0x5a+#define PERSISTENT_RESERVE_IN 0x5e+#define PERSISTENT_RESERVE_OUT 0x5f+#define MOVE_MEDIUM 0xa5+#define READ_12 0xa8+#define WRITE_12 0xaa+#define WRITE_VERIFY_12 0xae+#define SEARCH_HIGH_12 0xb0+#define SEARCH_EQUAL_12 0xb1+#define SEARCH_LOW_12 0xb2+#define READ_ELEMENT_STATUS 0xb8+#define SEND_VOLUME_TAG 0xb6+#define WRITE_LONG_2 0xea+#define GOOD 0x00+#define CHECK_CONDITION 0x01+#define CONDITION_GOOD 0x02+#define BUSY 0x04+#define INTERMEDIATE_GOOD 0x08+#define INTERMEDIATE_C_GOOD 0x0a+#define RESERVATION_CONFLICT 0x0c+#define COMMAND_TERMINATED 0x11+#define QUEUE_FULL 0x14+#define STATUS_MASK 0x3e+#define NO_SENSE 0x00+#define RECOVERED_ERROR 0x01+#define NOT_READY 0x02+#define MEDIUM_ERROR 0x03+#define HARDWARE_ERROR 0x04+#define ILLEGAL_REQUEST 0x05+#define UNIT_ATTENTION 0x06+#define DATA_PROTECT 0x07+#define BLANK_CHECK 0x08+#define COPY_ABORTED 0x0a+#define ABORTED_COMMAND 0x0b+#define VOLUME_OVERFLOW 0x0d+#define MISCOMPARE 0x0e+#define TYPE_DISK 0x00+#define TYPE_TAPE 0x01+#define TYPE_PROCESSOR 0x03+#define TYPE_WORM 0x04+#define TYPE_ROM 0x05+#define TYPE_SCANNER 0x06+#define TYPE_MOD 0x07+#define TYPE_MEDIUM_CHANGER 0x08+#define TYPE_ENCLOSURE 0x0d+#define TYPE_NO_LUN 0x7f+#define COMMAND_COMPLETE 0x00+#define EXTENDED_MESSAGE 0x01+#define EXTENDED_MODIFY_DATA_POINTER 0x00+#define EXTENDED_SDTR 0x01+#define EXTENDED_EXTENDED_IDENTIFY 0x02+#define EXTENDED_WDTR 0x03+#define SAVE_POINTERS 0x02+#define RESTORE_POINTERS 0x03+#define DISCONNECT 0x04+#define INITIATOR_ERROR 0x05+#define ABORT 0x06+#define MESSAGE_REJECT 0x07+#define NOP 0x08+#define MSG_PARITY_ERROR 0x09+#define LINKED_CMD_COMPLETE 0x0a+#define LINKED_FLG_CMD_COMPLETE 0x0b+#define BUS_DEVICE_RESET 0x0c+#define INITIATE_RECOVERY 0x0f+#define RELEASE_RECOVERY 0x10+#define SIMPLE_QUEUE_TAG 0x20+#define HEAD_OF_QUEUE_TAG 0x21+#define ORDERED_QUEUE_TAG 0x22+#define SCSI_IOCTL_GET_IDLUN 0x5382+#define SCSI_IOCTL_TAGGED_ENABLE 0x5383+#define SCSI_IOCTL_TAGGED_DISABLE 0x5384+#define SCSI_IOCTL_PROBE_HOST 0x5385+#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386++struct ccs_modesel_head {+ unsigned char _r1;+ unsigned char medium;+ unsigned char _r2;+ unsigned char block_desc_length;+ unsigned char density;+ unsigned char number_blocks_hi;+ unsigned char number_blocks_med;+ unsigned char number_blocks_lo;+ unsigned char _r3;+ unsigned char block_length_hi;+ unsigned char block_length_med;+ unsigned char block_length_lo;+};++#endif+
@@ -0,0 +1,11 @@+#ifndef _SCSI_IOCTL_H+#define _SCSI_IOCTL_H+#define SCSI_IOCTL_SEND_COMMAND 1+#define SCSI_IOCTL_TEST_UNIT_READY 2+#define SCSI_IOCTL_BENCHMARK_COMMAND 3+#define SCSI_IOCTL_SYNC 4+#define SCSI_IOCTL_START_UNIT 5+#define SCSI_IOCTL_STOP_UNIT 6+#define SCSI_IOCTL_DOORLOCK 0x5380+#define SCSI_IOCTL_DOORUNLOCK 0x5381+#endif
@@ -0,0 +1,129 @@+#ifndef _SCSI_SG_H+#define _SCSI_SG_H++#define SG_DXFER_NONE -1+#define SG_DXFER_TO_DEV -2+#define SG_DXFER_FROM_DEV -3+#define SG_DXFER_TO_FROM_DEV -4+#define SG_FLAG_DIRECT_IO 1+#define SG_FLAG_LUN_INHIBIT 2+#define SG_FLAG_NO_DXFER 0x10000+#define SG_INFO_OK_MASK 0x1+#define SG_INFO_OK 0x0+#define SG_INFO_CHECK 0x1+#define SG_INFO_DIRECT_IO_MASK 0x6+#define SG_INFO_INDIRECT_IO 0x0+#define SG_INFO_DIRECT_IO 0x2+#define SG_INFO_MIXED_IO 0x4+#define SG_EMULATED_HOST 0x2203+#define SG_SET_TRANSFORM 0x2204+#define SG_GET_TRANSFORM 0x2205+#define SG_SET_RESERVED_SIZE 0x2275+#define SG_GET_RESERVED_SIZE 0x2272+#define SG_GET_SCSI_ID 0x2276+#define SG_SET_FORCE_LOW_DMA 0x2279+#define SG_GET_LOW_DMA 0x227a+#define SG_SET_FORCE_PACK_ID 0x227b+#define SG_GET_PACK_ID 0x227c+#define SG_GET_NUM_WAITING 0x227d+#define SG_GET_SG_TABLESIZE 0x227F+#define SG_GET_VERSION_NUM 0x2282+#define SG_SCSI_RESET 0x2284+#define SG_SCSI_RESET_NOTHING 0+#define SG_SCSI_RESET_DEVICE 1+#define SG_SCSI_RESET_BUS 2+#define SG_SCSI_RESET_HOST 3+#define SG_IO 0x2285+#define SG_GET_REQUEST_TABLE 0x2286+#define SG_SET_KEEP_ORPHAN 0x2287+#define SG_GET_KEEP_ORPHAN 0x2288+#define SG_SCATTER_SZ (8 * 4096)+#define SG_DEFAULT_RETRIES 1+#define SG_DEF_FORCE_LOW_DMA 0+#define SG_DEF_FORCE_PACK_ID 0+#define SG_DEF_KEEP_ORPHAN 0+#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ+#define SG_MAX_QUEUE 16+#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE+#define SG_MAX_SENSE 16+#define SG_SET_TIMEOUT 0x2201+#define SG_GET_TIMEOUT 0x2202+#define SG_GET_COMMAND_Q 0x2270+#define SG_SET_COMMAND_Q 0x2271+#define SG_SET_DEBUG 0x227e+#define SG_NEXT_CMD_LEN 0x2283+#define SG_DEFAULT_TIMEOUT (60*100) /* 60*HZ */+#define SG_DEF_COMMAND_Q 0+#define SG_DEF_UNDERRUN_FLAG 0++typedef struct sg_iovec {+ void *iov_base;+ unsigned long iov_len;+} sg_iovec_t;++typedef struct sg_io_hdr { + int interface_id; + int dxfer_direction; + unsigned char cmd_len;+ unsigned char mx_sb_len;+ unsigned short iovec_count;+ unsigned dxfer_len;+ void *dxferp;+ unsigned char *cmdp;+ unsigned char *sbp;+ unsigned timeout;+ unsigned flags;+ int pack_id;+ void *usr_ptr;+ unsigned char status;+ unsigned char masked_status;+ unsigned char msg_status;+ unsigned char sb_len_wr;+ unsigned short host_status;+ unsigned short driver_status;+ int resid; + unsigned int duration;+ unsigned int info;+} sg_io_hdr_t;++struct sg_scsi_id {+ int host_no;+ int channel;+ int scsi_id;+ int lun;+ int scsi_type;+ short h_cmd_per_lun;+ short d_queue_depth;+ int unused[2];+};++typedef struct sg_req_info {+ char req_state;+ char orphan;+ char sg_io_owned;+ char problem;+ int pack_id;+ void *usr_ptr;+ unsigned duration; + int unused; +} sg_req_info_t;++typedef struct sg_io_hdr Sg_io_hdr;+typedef struct sg_io_vec Sg_io_vec;+typedef struct sg_scsi_id Sg_scsi_id;+typedef struct sg_req_info Sg_req_info;++struct sg_header {+ int pack_len;+ int reply_len;+ int pack_id;+ int result;+ unsigned twelve_byte:1;+ unsigned target_status:5;+ unsigned host_status:8;+ unsigned driver_status:8;+ unsigned other_flags:10;+ unsigned char sense_buffer[SG_MAX_SENSE];+};++#endif
@@ -0,0 +1,63 @@+#ifndef _SEARCH_H+#define _SEARCH_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#include <bits/alltypes.h>++typedef enum { FIND, ENTER } ACTION;+typedef enum { preorder, postorder, endorder, leaf } VISIT;++typedef struct entry {+ char *key;+ void *data;+} ENTRY;++int hcreate(size_t);+void hdestroy(void);+ENTRY *hsearch(ENTRY, ACTION);++#ifdef _GNU_SOURCE+struct hsearch_data {+ struct __tab *__tab;+ unsigned int __unused1;+ unsigned int __unused2;+};++int hcreate_r(size_t, struct hsearch_data *);+void hdestroy_r(struct hsearch_data *);+int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *);+#endif++void insque(void *, void *);+void remque(void *);++void *lsearch(const void *, void *, size_t *, size_t,+ int (*)(const void *, const void *));+void *lfind(const void *, const void *, size_t *, size_t,+ int (*)(const void *, const void *));++void *tdelete(const void *__restrict, void **__restrict, int(*)(const void *, const void *));+void *tfind(const void *, void *const *, int(*)(const void *, const void *));+void *tsearch(const void *, void **, int (*)(const void *, const void *));+void twalk(const void *, void (*)(const void *, VISIT, int));++#ifdef _GNU_SOURCE+struct qelem {+ struct qelem *q_forw, *q_back;+ char q_data[1];+};++void tdestroy(void *, void (*)(void *));+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,39 @@+#ifndef _SEMAPHORE_H+#define _SEMAPHORE_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_time_t+#define __NEED_struct_timespec+#include <bits/alltypes.h>++#include <fcntl.h>++#define SEM_FAILED ((sem_t *)0)++typedef struct {+ volatile int __val[4*sizeof(long)/sizeof(int)];+} sem_t;++int sem_close(sem_t *);+int sem_destroy(sem_t *);+int sem_getvalue(sem_t *__restrict, int *__restrict);+int sem_init(sem_t *, int, unsigned);+sem_t *sem_open(const char *, int, ...);+int sem_post(sem_t *);+int sem_timedwait(sem_t *__restrict, const struct timespec *__restrict);+int sem_trywait(sem_t *);+int sem_unlink(const char *);+int sem_wait(sem_t *);++#if _REDIR_TIME64+__REDIR(sem_timedwait, __sem_timedwait_time64);+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,49 @@+#ifndef _SETJMP_H+#define _SETJMP_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <bits/setjmp.h>++typedef struct __jmp_buf_tag {+ __jmp_buf __jb;+ unsigned long __fl;+ unsigned long __ss[128/sizeof(long)];+} jmp_buf[1];++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)+#define __setjmp_attr __attribute__((__returns_twice__))+#else+#define __setjmp_attr+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+typedef jmp_buf sigjmp_buf;+int sigsetjmp (sigjmp_buf, int) __setjmp_attr;+_Noreturn void siglongjmp (sigjmp_buf, int);+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+int _setjmp (jmp_buf) __setjmp_attr;+_Noreturn void _longjmp (jmp_buf, int);+#endif++int setjmp (jmp_buf) __setjmp_attr;+_Noreturn void longjmp (jmp_buf, int);++#define setjmp setjmp++#undef __setjmp_attr++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,44 @@+#ifndef _SHADOW_H+#define _SHADOW_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_FILE+#define __NEED_size_t++#include <bits/alltypes.h>++#define SHADOW "/etc/shadow"++struct spwd {+ char *sp_namp;+ char *sp_pwdp;+ long sp_lstchg;+ long sp_min;+ long sp_max;+ long sp_warn;+ long sp_inact;+ long sp_expire;+ unsigned long sp_flag;+};++void setspent(void);+void endspent(void);+struct spwd *getspent(void);+struct spwd *fgetspent(FILE *);+struct spwd *sgetspent(const char *);+int putspent(const struct spwd *, FILE *);++struct spwd *getspnam(const char *);+int getspnam_r(const char *, struct spwd *, char *, size_t, struct spwd **);++int lckpwdf(void);+int ulckpwdf(void);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,304 @@+#ifndef _SIGNAL_H+#define _SIGNAL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++#ifdef _GNU_SOURCE+#define __ucontext ucontext+#endif++#define __NEED_size_t+#define __NEED_pid_t+#define __NEED_uid_t+#define __NEED_struct_timespec+#define __NEED_pthread_t+#define __NEED_pthread_attr_t+#define __NEED_time_t+#define __NEED_clock_t+#define __NEED_sigset_t++#include <bits/alltypes.h>++#define SIG_BLOCK 0+#define SIG_UNBLOCK 1+#define SIG_SETMASK 2++#define SI_ASYNCNL (-60)+#define SI_TKILL (-6)+#define SI_SIGIO (-5)+#define SI_ASYNCIO (-4)+#define SI_MESGQ (-3)+#define SI_TIMER (-2)+#define SI_QUEUE (-1)+#define SI_USER 0+#define SI_KERNEL 128++typedef struct sigaltstack stack_t;++#endif++#include <bits/signal.h>++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++#define SIG_HOLD ((void (*)(int)) 2)++#define FPE_INTDIV 1+#define FPE_INTOVF 2+#define FPE_FLTDIV 3+#define FPE_FLTOVF 4+#define FPE_FLTUND 5+#define FPE_FLTRES 6+#define FPE_FLTINV 7+#define FPE_FLTSUB 8++#define ILL_ILLOPC 1+#define ILL_ILLOPN 2+#define ILL_ILLADR 3+#define ILL_ILLTRP 4+#define ILL_PRVOPC 5+#define ILL_PRVREG 6+#define ILL_COPROC 7+#define ILL_BADSTK 8++#define SEGV_MAPERR 1+#define SEGV_ACCERR 2+#define SEGV_BNDERR 3+#define SEGV_PKUERR 4+#define SEGV_MTEAERR 8+#define SEGV_MTESERR 9++#define BUS_ADRALN 1+#define BUS_ADRERR 2+#define BUS_OBJERR 3+#define BUS_MCEERR_AR 4+#define BUS_MCEERR_AO 5++#define CLD_EXITED 1+#define CLD_KILLED 2+#define CLD_DUMPED 3+#define CLD_TRAPPED 4+#define CLD_STOPPED 5+#define CLD_CONTINUED 6++union sigval {+ int sival_int;+ void *sival_ptr;+};++typedef struct {+#ifdef __SI_SWAP_ERRNO_CODE+ int si_signo, si_code, si_errno;+#else+ int si_signo, si_errno, si_code;+#endif+ union {+ char __pad[128 - 2*sizeof(int) - sizeof(long)];+ struct {+ union {+ struct {+ pid_t si_pid;+ uid_t si_uid;+ } __piduid;+ struct {+ int si_timerid;+ int si_overrun;+ } __timer;+ } __first;+ union {+ union sigval si_value;+ struct {+ int si_status;+ clock_t si_utime, si_stime;+ } __sigchld;+ } __second;+ } __si_common;+ struct {+ void *si_addr;+ short si_addr_lsb;+ union {+ struct {+ void *si_lower;+ void *si_upper;+ } __addr_bnd;+ unsigned si_pkey;+ } __first;+ } __sigfault;+ struct {+ long si_band;+ int si_fd;+ } __sigpoll;+ struct {+ void *si_call_addr;+ int si_syscall;+ unsigned si_arch;+ } __sigsys;+ } __si_fields;+} siginfo_t;+#define si_pid __si_fields.__si_common.__first.__piduid.si_pid+#define si_uid __si_fields.__si_common.__first.__piduid.si_uid+#define si_status __si_fields.__si_common.__second.__sigchld.si_status+#define si_utime __si_fields.__si_common.__second.__sigchld.si_utime+#define si_stime __si_fields.__si_common.__second.__sigchld.si_stime+#define si_value __si_fields.__si_common.__second.si_value+#define si_addr __si_fields.__sigfault.si_addr+#define si_addr_lsb __si_fields.__sigfault.si_addr_lsb+#define si_lower __si_fields.__sigfault.__first.__addr_bnd.si_lower+#define si_upper __si_fields.__sigfault.__first.__addr_bnd.si_upper+#define si_pkey __si_fields.__sigfault.__first.si_pkey+#define si_band __si_fields.__sigpoll.si_band+#define si_fd __si_fields.__sigpoll.si_fd+#define si_timerid __si_fields.__si_common.__first.__timer.si_timerid+#define si_overrun __si_fields.__si_common.__first.__timer.si_overrun+#define si_ptr si_value.sival_ptr+#define si_int si_value.sival_int+#define si_call_addr __si_fields.__sigsys.si_call_addr+#define si_syscall __si_fields.__sigsys.si_syscall+#define si_arch __si_fields.__sigsys.si_arch++struct sigaction {+ union {+ void (*sa_handler)(int);+ void (*sa_sigaction)(int, siginfo_t *, void *);+ } __sa_handler;+ sigset_t sa_mask;+ int sa_flags;+ void (*sa_restorer)(void);+};+#define sa_handler __sa_handler.sa_handler+#define sa_sigaction __sa_handler.sa_sigaction++#define SA_UNSUPPORTED 0x00000400+#define SA_EXPOSE_TAGBITS 0x00000800++struct sigevent {+ union sigval sigev_value;+ int sigev_signo;+ int sigev_notify;+ union {+ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];+ pid_t sigev_notify_thread_id;+ struct {+ void (*sigev_notify_function)(union sigval);+ pthread_attr_t *sigev_notify_attributes;+ } __sev_thread;+ } __sev_fields;+};++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id+#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function+#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes++#define SIGEV_SIGNAL 0+#define SIGEV_NONE 1+#define SIGEV_THREAD 2+#define SIGEV_THREAD_ID 4++int __libc_current_sigrtmin(void);+int __libc_current_sigrtmax(void);++#define SIGRTMIN (__libc_current_sigrtmin())+#define SIGRTMAX (__libc_current_sigrtmax())++int kill(pid_t, int);++int sigemptyset(sigset_t *);+int sigfillset(sigset_t *);+int sigaddset(sigset_t *, int);+int sigdelset(sigset_t *, int);+int sigismember(const sigset_t *, int);++int sigprocmask(int, const sigset_t *__restrict, sigset_t *__restrict);+int sigsuspend(const sigset_t *);+int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict);+int sigpending(sigset_t *);+int sigwait(const sigset_t *__restrict, int *__restrict);+int sigwaitinfo(const sigset_t *__restrict, siginfo_t *__restrict);+int sigtimedwait(const sigset_t *__restrict, siginfo_t *__restrict, const struct timespec *__restrict);+int sigqueue(pid_t, int, union sigval);++int pthread_sigmask(int, const sigset_t *__restrict, sigset_t *__restrict);+int pthread_kill(pthread_t, int);++void psiginfo(const siginfo_t *, const char *);+void psignal(int, const char *);++#endif++#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+int killpg(pid_t, int);+int sigaltstack(const stack_t *__restrict, stack_t *__restrict);+int sighold(int);+int sigignore(int);+int siginterrupt(int, int);+int sigpause(int);+int sigrelse(int);+void (*sigset(int, void (*)(int)))(int);+#define TRAP_BRKPT 1+#define TRAP_TRACE 2+#define TRAP_BRANCH 3+#define TRAP_HWBKPT 4+#define TRAP_UNK 5+#define POLL_IN 1+#define POLL_OUT 2+#define POLL_MSG 3+#define POLL_ERR 4+#define POLL_PRI 5+#define POLL_HUP 6+#define SS_ONSTACK 1+#define SS_DISABLE 2+#define SS_AUTODISARM (1U << 31)+#define SS_FLAG_BITS SS_AUTODISARM+#endif++#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+#define NSIG _NSIG+typedef void (*sig_t)(int);++#define SYS_SECCOMP 1+#define SYS_USER_DISPATCH 2+#endif++#ifdef _GNU_SOURCE+typedef void (*sighandler_t)(int);+void (*bsd_signal(int, void (*)(int)))(int);+int sigisemptyset(const sigset_t *);+int sigorset (sigset_t *, const sigset_t *, const sigset_t *);+int sigandset(sigset_t *, const sigset_t *, const sigset_t *);++#define SA_NOMASK SA_NODEFER+#define SA_ONESHOT SA_RESETHAND+#endif++#define SIG_ERR ((void (*)(int))-1)+#define SIG_DFL ((void (*)(int)) 0)+#define SIG_IGN ((void (*)(int)) 1)++typedef int sig_atomic_t;++void (*signal(int, void (*)(int)))(int);+int raise(int);++#if _REDIR_TIME64+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+__REDIR(sigtimedwait, __sigtimedwait_time64);+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,83 @@+#ifndef _SPAWN_H+#define _SPAWN_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_mode_t+#define __NEED_pid_t+#define __NEED_sigset_t++#include <bits/alltypes.h>++struct sched_param;++#define POSIX_SPAWN_RESETIDS 1+#define POSIX_SPAWN_SETPGROUP 2+#define POSIX_SPAWN_SETSIGDEF 4+#define POSIX_SPAWN_SETSIGMASK 8+#define POSIX_SPAWN_SETSCHEDPARAM 16+#define POSIX_SPAWN_SETSCHEDULER 32+#define POSIX_SPAWN_USEVFORK 64+#define POSIX_SPAWN_SETSID 128++typedef struct {+ int __flags;+ pid_t __pgrp;+ sigset_t __def, __mask;+ int __prio, __pol;+ void *__fn;+ char __pad[64-sizeof(void *)];+} posix_spawnattr_t;++typedef struct {+ int __pad0[2];+ void *__actions;+ int __pad[16];+} posix_spawn_file_actions_t;++int posix_spawn(pid_t *__restrict, const char *__restrict, const posix_spawn_file_actions_t *,+ const posix_spawnattr_t *__restrict, char *const *__restrict, char *const *__restrict);+int posix_spawnp(pid_t *__restrict, const char *__restrict, const posix_spawn_file_actions_t *,+ const posix_spawnattr_t *__restrict, char *const *__restrict, char *const *__restrict);++int posix_spawnattr_init(posix_spawnattr_t *);+int posix_spawnattr_destroy(posix_spawnattr_t *);++int posix_spawnattr_setflags(posix_spawnattr_t *, short);+int posix_spawnattr_getflags(const posix_spawnattr_t *__restrict, short *__restrict);++int posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t);+int posix_spawnattr_getpgroup(const posix_spawnattr_t *__restrict, pid_t *__restrict);++int posix_spawnattr_setsigmask(posix_spawnattr_t *__restrict, const sigset_t *__restrict);+int posix_spawnattr_getsigmask(const posix_spawnattr_t *__restrict, sigset_t *__restrict);++int posix_spawnattr_setsigdefault(posix_spawnattr_t *__restrict, const sigset_t *__restrict);+int posix_spawnattr_getsigdefault(const posix_spawnattr_t *__restrict, sigset_t *__restrict);++int posix_spawnattr_setschedparam(posix_spawnattr_t *__restrict, const struct sched_param *__restrict);+int posix_spawnattr_getschedparam(const posix_spawnattr_t *__restrict, struct sched_param *__restrict);+int posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int);+int posix_spawnattr_getschedpolicy(const posix_spawnattr_t *__restrict, int *__restrict);++int posix_spawn_file_actions_init(posix_spawn_file_actions_t *);+int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *);++int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *__restrict, int, const char *__restrict, int, mode_t);+int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int);+int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int, int);++#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+int posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *__restrict, const char *__restrict);+int posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *, int);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,20 @@+#ifndef _STDALIGN_H+#define _STDALIGN_H++#ifndef __cplusplus++/* this whole header only works in C11 or with compiler extensions */+#if __STDC_VERSION__ < 201112L && defined( __GNUC__)+#define _Alignas(t) __attribute__((__aligned__(t)))+#define _Alignof(t) __alignof__(t)+#endif++#define alignas _Alignas+#define alignof _Alignof++#endif++#define __alignas_is_defined 1+#define __alignof_is_defined 1++#endif
@@ -0,0 +1,21 @@+#ifndef _STDARG_H+#define _STDARG_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_va_list++#include <bits/alltypes.h>++#define va_start(v,l) __builtin_va_start(v,l)+#define va_end(v) __builtin_va_end(v)+#define va_arg(v,l) __builtin_va_arg(v,l)+#define va_copy(d,s) __builtin_va_copy(d,s)++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,14 @@+#ifndef _STDBOOL_H+#define _STDBOOL_H++#ifndef __cplusplus++#define true 1+#define false 0+#define bool _Bool++#endif++#define __bool_true_false_are_defined 1++#endif
@@ -0,0 +1,18 @@+#ifndef _STDC_PREDEF_H+#define _STDC_PREDEF_H++#define __STDC_ISO_10646__ 201206L++#if !defined(__GCC_IEC_559) || __GCC_IEC_559 > 0+#define __STDC_IEC_559__ 1+#endif++#if !defined(__STDC_UTF_16__)+#define __STDC_UTF_16__ 1+#endif++#if !defined(__STDC_UTF_32__)+#define __STDC_UTF_32__ 1+#endif++#endif
@@ -0,0 +1,27 @@+#ifndef _STDDEF_H+#define _STDDEF_H++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define __NEED_ptrdiff_t+#define __NEED_size_t+#define __NEED_wchar_t+#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L+#define __NEED_max_align_t+#endif++#include <bits/alltypes.h>++#if __GNUC__ > 3+#define offsetof(type, member) __builtin_offsetof(type, member)+#else+#define offsetof(type, member) ((size_t)( (char *)&(((type *)0)->member) - (char *)0 ))+#endif++#endif
@@ -0,0 +1,117 @@+#ifndef _STDINT_H+#define _STDINT_H++#define __NEED_int8_t+#define __NEED_int16_t+#define __NEED_int32_t+#define __NEED_int64_t++#define __NEED_uint8_t+#define __NEED_uint16_t+#define __NEED_uint32_t+#define __NEED_uint64_t++#define __NEED_intptr_t+#define __NEED_uintptr_t++#define __NEED_intmax_t+#define __NEED_uintmax_t++#include <bits/alltypes.h>++typedef int8_t int_fast8_t;+typedef int64_t int_fast64_t;++typedef int8_t int_least8_t;+typedef int16_t int_least16_t;+typedef int32_t int_least32_t;+typedef int64_t int_least64_t;++typedef uint8_t uint_fast8_t;+typedef uint64_t uint_fast64_t;++typedef uint8_t uint_least8_t;+typedef uint16_t uint_least16_t;+typedef uint32_t uint_least32_t;+typedef uint64_t uint_least64_t;++#define INT8_MIN (-1-0x7f)+#define INT16_MIN (-1-0x7fff)+#define INT32_MIN (-1-0x7fffffff)+#define INT64_MIN (-1-0x7fffffffffffffff)++#define INT8_MAX (0x7f)+#define INT16_MAX (0x7fff)+#define INT32_MAX (0x7fffffff)+#define INT64_MAX (0x7fffffffffffffff)++#define UINT8_MAX (0xff)+#define UINT16_MAX (0xffff)+#define UINT32_MAX (0xffffffffu)+#define UINT64_MAX (0xffffffffffffffffu)++#define INT_FAST8_MIN INT8_MIN+#define INT_FAST64_MIN INT64_MIN++#define INT_LEAST8_MIN INT8_MIN+#define INT_LEAST16_MIN INT16_MIN+#define INT_LEAST32_MIN INT32_MIN+#define INT_LEAST64_MIN INT64_MIN++#define INT_FAST8_MAX INT8_MAX+#define INT_FAST64_MAX INT64_MAX++#define INT_LEAST8_MAX INT8_MAX+#define INT_LEAST16_MAX INT16_MAX+#define INT_LEAST32_MAX INT32_MAX+#define INT_LEAST64_MAX INT64_MAX++#define UINT_FAST8_MAX UINT8_MAX+#define UINT_FAST64_MAX UINT64_MAX++#define UINT_LEAST8_MAX UINT8_MAX+#define UINT_LEAST16_MAX UINT16_MAX+#define UINT_LEAST32_MAX UINT32_MAX+#define UINT_LEAST64_MAX UINT64_MAX++#define INTMAX_MIN INT64_MIN+#define INTMAX_MAX INT64_MAX+#define UINTMAX_MAX UINT64_MAX++#define WINT_MIN 0U+#define WINT_MAX UINT32_MAX++#if L'\0'-1 > 0+#define WCHAR_MAX (0xffffffffu+L'\0')+#define WCHAR_MIN (0+L'\0')+#else+#define WCHAR_MAX (0x7fffffff+L'\0')+#define WCHAR_MIN (-1-0x7fffffff+L'\0')+#endif++#define SIG_ATOMIC_MIN INT32_MIN+#define SIG_ATOMIC_MAX INT32_MAX++#include <bits/stdint.h>++#define INT8_C(c) c+#define INT16_C(c) c+#define INT32_C(c) c++#define UINT8_C(c) c+#define UINT16_C(c) c+#define UINT32_C(c) c ## U++#if UINTPTR_MAX == UINT64_MAX+#define INT64_C(c) c ## L+#define UINT64_C(c) c ## UL+#define INTMAX_C(c) c ## L+#define UINTMAX_C(c) c ## UL+#else+#define INT64_C(c) c ## LL+#define UINT64_C(c) c ## ULL+#define INTMAX_C(c) c ## LL+#define UINTMAX_C(c) c ## ULL+#endif++#endif
@@ -0,0 +1,224 @@+#ifndef _STDIO_H+#define _STDIO_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_FILE+#define __NEED___isoc_va_list+#define __NEED_size_t++#if __STDC_VERSION__ < 201112L+#define __NEED_struct__IO_FILE+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+#define __NEED_ssize_t+#define __NEED_off_t+#define __NEED_va_list+#endif++#include <bits/alltypes.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#undef EOF+#define EOF (-1)++#undef SEEK_SET+#undef SEEK_CUR+#undef SEEK_END+#define SEEK_SET 0+#define SEEK_CUR 1+#define SEEK_END 2++#define _IOFBF 0+#define _IOLBF 1+#define _IONBF 2++#define BUFSIZ 1024+#define FILENAME_MAX 4096+#define FOPEN_MAX 1000+#define TMP_MAX 10000+#define L_tmpnam 20++typedef union _G_fpos64_t {+ char __opaque[16];+ long long __lldata;+ double __align;+} fpos_t;++extern FILE *const stdin;+extern FILE *const stdout;+extern FILE *const stderr;++#define stdin (stdin)+#define stdout (stdout)+#define stderr (stderr)++FILE *fopen(const char *__restrict, const char *__restrict);+FILE *freopen(const char *__restrict, const char *__restrict, FILE *__restrict);+int fclose(FILE *);++int remove(const char *);+int rename(const char *, const char *);++int feof(FILE *);+int ferror(FILE *);+int fflush(FILE *);+void clearerr(FILE *);++int fseek(FILE *, long, int);+long ftell(FILE *);+void rewind(FILE *);++int fgetpos(FILE *__restrict, fpos_t *__restrict);+int fsetpos(FILE *, const fpos_t *);++size_t fread(void *__restrict, size_t, size_t, FILE *__restrict);+size_t fwrite(const void *__restrict, size_t, size_t, FILE *__restrict);++int fgetc(FILE *);+int getc(FILE *);+int getchar(void);+int ungetc(int, FILE *);++int fputc(int, FILE *);+int putc(int, FILE *);+int putchar(int);++char *fgets(char *__restrict, int, FILE *__restrict);+#if __STDC_VERSION__ < 201112L+char *gets(char *);+#endif++int fputs(const char *__restrict, FILE *__restrict);+int puts(const char *);++int printf(const char *__restrict, ...);+int fprintf(FILE *__restrict, const char *__restrict, ...);+int sprintf(char *__restrict, const char *__restrict, ...);+int snprintf(char *__restrict, size_t, const char *__restrict, ...);++int vprintf(const char *__restrict, __isoc_va_list);+int vfprintf(FILE *__restrict, const char *__restrict, __isoc_va_list);+int vsprintf(char *__restrict, const char *__restrict, __isoc_va_list);+int vsnprintf(char *__restrict, size_t, const char *__restrict, __isoc_va_list);++int scanf(const char *__restrict, ...);+int fscanf(FILE *__restrict, const char *__restrict, ...);+int sscanf(const char *__restrict, const char *__restrict, ...);+int vscanf(const char *__restrict, __isoc_va_list);+int vfscanf(FILE *__restrict, const char *__restrict, __isoc_va_list);+int vsscanf(const char *__restrict, const char *__restrict, __isoc_va_list);++void perror(const char *);++int setvbuf(FILE *__restrict, char *__restrict, int, size_t);+void setbuf(FILE *__restrict, char *__restrict);++char *tmpnam(char *);+FILE *tmpfile(void);++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+FILE *fmemopen(void *__restrict, size_t, const char *__restrict);+FILE *open_memstream(char **, size_t *);+FILE *fdopen(int, const char *);+FILE *popen(const char *, const char *);+int pclose(FILE *);+int fileno(FILE *);+int fseeko(FILE *, off_t, int);+off_t ftello(FILE *);+int dprintf(int, const char *__restrict, ...);+int vdprintf(int, const char *__restrict, __isoc_va_list);+void flockfile(FILE *);+int ftrylockfile(FILE *);+void funlockfile(FILE *);+int getc_unlocked(FILE *);+int getchar_unlocked(void);+int putc_unlocked(int, FILE *);+int putchar_unlocked(int);+ssize_t getdelim(char **__restrict, size_t *__restrict, int, FILE *__restrict);+ssize_t getline(char **__restrict, size_t *__restrict, FILE *__restrict);+int renameat(int, const char *, int, const char *);+char *ctermid(char *);+#define L_ctermid 20+#endif+++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+#define P_tmpdir "/tmp"+char *tempnam(const char *, const char *);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define L_cuserid 20+char *cuserid(char *);+void setlinebuf(FILE *);+void setbuffer(FILE *, char *, size_t);+int fgetc_unlocked(FILE *);+int fputc_unlocked(int, FILE *);+int fflush_unlocked(FILE *);+size_t fread_unlocked(void *, size_t, size_t, FILE *);+size_t fwrite_unlocked(const void *, size_t, size_t, FILE *);+void clearerr_unlocked(FILE *);+int feof_unlocked(FILE *);+int ferror_unlocked(FILE *);+int fileno_unlocked(FILE *);+int getw(FILE *);+int putw(int, FILE *);+char *fgetln(FILE *, size_t *);+int asprintf(char **, const char *, ...);+int vasprintf(char **, const char *, __isoc_va_list);+#endif++#ifdef _GNU_SOURCE+char *fgets_unlocked(char *, int, FILE *);+int fputs_unlocked(const char *, FILE *);++typedef ssize_t (cookie_read_function_t)(void *, char *, size_t);+typedef ssize_t (cookie_write_function_t)(void *, const char *, size_t);+typedef int (cookie_seek_function_t)(void *, off_t *, int);+typedef int (cookie_close_function_t)(void *);++typedef struct _IO_cookie_io_functions_t {+ cookie_read_function_t *read;+ cookie_write_function_t *write;+ cookie_seek_function_t *seek;+ cookie_close_function_t *close;+} cookie_io_functions_t;++FILE *fopencookie(void *, const char *, cookie_io_functions_t);+#endif++#if defined(_LARGEFILE64_SOURCE)+#define tmpfile64 tmpfile+#define fopen64 fopen+#define freopen64 freopen+#define fseeko64 fseeko+#define ftello64 ftello+#define fgetpos64 fgetpos+#define fsetpos64 fsetpos+#define fpos64_t fpos_t+#define off64_t off_t+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,34 @@+#ifndef _STDIO_EXT_H+#define _STDIO_EXT_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdio.h>++#define FSETLOCKING_QUERY 0+#define FSETLOCKING_INTERNAL 1+#define FSETLOCKING_BYCALLER 2++void _flushlbf(void);+int __fsetlocking(FILE *, int);+int __fwriting(FILE *);+int __freading(FILE *);+int __freadable(FILE *);+int __fwritable(FILE *);+int __flbf(FILE *);+size_t __fbufsize(FILE *);+size_t __fpending(FILE *);+int __fpurge(FILE *);++size_t __freadahead(FILE *);+const char *__freadptr(FILE *, size_t *);+void __freadptrinc(FILE *, size_t);+void __fseterr(FILE *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,179 @@+#ifndef _STDLIB_H+#define _STDLIB_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define __NEED_size_t+#define __NEED_wchar_t++#include <bits/alltypes.h>++int atoi (const char *);+long atol (const char *);+long long atoll (const char *);+double atof (const char *);++float strtof (const char *__restrict, char **__restrict);+double strtod (const char *__restrict, char **__restrict);+long double strtold (const char *__restrict, char **__restrict);++long strtol (const char *__restrict, char **__restrict, int);+unsigned long strtoul (const char *__restrict, char **__restrict, int);+long long strtoll (const char *__restrict, char **__restrict, int);+unsigned long long strtoull (const char *__restrict, char **__restrict, int);++int rand (void);+void srand (unsigned);++void *malloc (size_t);+void *calloc (size_t, size_t);+void *realloc (void *, size_t);+void free (void *);+void *aligned_alloc(size_t, size_t);++_Noreturn void abort (void);+int atexit (void (*) (void));+_Noreturn void exit (int);+_Noreturn void _Exit (int);+int at_quick_exit (void (*) (void));+_Noreturn void quick_exit (int);++char *getenv (const char *);++int system (const char *);++void *bsearch (const void *, const void *, size_t, size_t, int (*)(const void *, const void *));+void qsort (void *, size_t, size_t, int (*)(const void *, const void *));++int abs (int);+long labs (long);+long long llabs (long long);++typedef struct { int quot, rem; } div_t;+typedef struct { long quot, rem; } ldiv_t;+typedef struct { long long quot, rem; } lldiv_t;++div_t div (int, int);+ldiv_t ldiv (long, long);+lldiv_t lldiv (long long, long long);++int mblen (const char *, size_t);+int mbtowc (wchar_t *__restrict, const char *__restrict, size_t);+int wctomb (char *, wchar_t);+size_t mbstowcs (wchar_t *__restrict, const char *__restrict, size_t);+size_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t);++#define EXIT_FAILURE 1+#define EXIT_SUCCESS 0++size_t __ctype_get_mb_cur_max(void);+#define MB_CUR_MAX (__ctype_get_mb_cur_max())++#define RAND_MAX (0x7fffffff)+++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)++#define WNOHANG 1+#define WUNTRACED 2++#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)+#define WTERMSIG(s) ((s) & 0x7f)+#define WSTOPSIG(s) WEXITSTATUS(s)+#define WIFEXITED(s) (!WTERMSIG(s))+#define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001U)>>8) > 0x7f00)+#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu)++int posix_memalign (void **, size_t, size_t);+int setenv (const char *, const char *, int);+int unsetenv (const char *);+int mkstemp (char *);+int mkostemp (char *, int);+char *mkdtemp (char *);+int getsubopt (char **, char *const *, char **);+int rand_r (unsigned *);++#endif+++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+char *realpath (const char *__restrict, char *__restrict);+long int random (void);+void srandom (unsigned int);+char *initstate (unsigned int, char *, size_t);+char *setstate (char *);+int putenv (char *);+int posix_openpt (int);+int grantpt (int);+int unlockpt (int);+char *ptsname (int);+char *l64a (long);+long a64l (const char *);+void setkey (const char *);+double drand48 (void);+double erand48 (unsigned short [3]);+long int lrand48 (void);+long int nrand48 (unsigned short [3]);+long mrand48 (void);+long jrand48 (unsigned short [3]);+void srand48 (long);+unsigned short *seed48 (unsigned short [3]);+void lcong48 (unsigned short [7]);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#include <alloca.h>+char *mktemp (char *);+int mkstemps (char *, int);+int mkostemps (char *, int, int);+void *valloc (size_t);+void *memalign(size_t, size_t);+int getloadavg(double *, int);+int clearenv(void);+#define WCOREDUMP(s) ((s) & 0x80)+#define WIFCONTINUED(s) ((s) == 0xffff)+void *reallocarray (void *, size_t, size_t);+void qsort_r (void *, size_t, size_t, int (*)(const void *, const void *, void *), void *);+#endif++#ifdef _GNU_SOURCE+int ptsname_r(int, char *, size_t);+char *ecvt(double, int, int *, int *);+char *fcvt(double, int, int *, int *);+char *gcvt(double, int, char *);+char *secure_getenv(const char *);+struct __locale_struct;+float strtof_l(const char *__restrict, char **__restrict, struct __locale_struct *);+double strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *);+long double strtold_l(const char *__restrict, char **__restrict, struct __locale_struct *);+#endif++#if defined(_LARGEFILE64_SOURCE)+#define mkstemp64 mkstemp+#define mkostemp64 mkostemp+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define mkstemps64 mkstemps+#define mkostemps64 mkostemps+#endif+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,7 @@+#ifndef _STDNORETURN_H+#define _STDNORETURN_H+#ifndef __cplusplus+#include <features.h>+#define noreturn _Noreturn+#endif+#endif
@@ -0,0 +1,104 @@+#ifndef _STRING_H+#define _STRING_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#if __cplusplus >= 201103L+#define NULL nullptr+#elif defined(__cplusplus)+#define NULL 0L+#else+#define NULL ((void*)0)+#endif++#define __NEED_size_t+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+#define __NEED_locale_t+#endif++#include <bits/alltypes.h>++void *memcpy (void *__restrict, const void *__restrict, size_t);+void *memmove (void *, const void *, size_t);+void *memset (void *, int, size_t);+int memcmp (const void *, const void *, size_t);+void *memchr (const void *, int, size_t);++char *strcpy (char *__restrict, const char *__restrict);+char *strncpy (char *__restrict, const char *__restrict, size_t);++char *strcat (char *__restrict, const char *__restrict);+char *strncat (char *__restrict, const char *__restrict, size_t);++int strcmp (const char *, const char *);+int strncmp (const char *, const char *, size_t);++int strcoll (const char *, const char *);+size_t strxfrm (char *__restrict, const char *__restrict, size_t);++char *strchr (const char *, int);+char *strrchr (const char *, int);++size_t strcspn (const char *, const char *);+size_t strspn (const char *, const char *);+char *strpbrk (const char *, const char *);+char *strstr (const char *, const char *);+char *strtok (char *__restrict, const char *__restrict);++size_t strlen (const char *);++char *strerror (int);++#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)+#include <strings.h>+#endif++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+char *strtok_r (char *__restrict, const char *__restrict, char **__restrict);+int strerror_r (int, char *, size_t);+char *stpcpy(char *__restrict, const char *__restrict);+char *stpncpy(char *__restrict, const char *__restrict, size_t);+size_t strnlen (const char *, size_t);+char *strdup (const char *);+char *strndup (const char *, size_t);+char *strsignal(int);+char *strerror_l (int, locale_t);+int strcoll_l (const char *, const char *, locale_t);+size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t);+void *memmem(const void *, size_t, const void *, size_t);+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \+ || defined(_BSD_SOURCE)+void *memccpy (void *__restrict, const void *__restrict, int, size_t);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+char *strsep(char **, const char *);+size_t strlcat (char *, const char *, size_t);+size_t strlcpy (char *, const char *, size_t);+void explicit_bzero (void *, size_t);+#endif++#ifdef _GNU_SOURCE+#define strdupa(x) strcpy(alloca(strlen(x)+1),x)+int strverscmp (const char *, const char *);+char *strchrnul(const char *, int);+char *strcasestr(const char *, const char *);+void *memrchr(const void *, int, size_t);+void *mempcpy(void *, const void *, size_t);+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,40 @@+#ifndef _STRINGS_H+#define _STRINGS_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_size_t+#define __NEED_locale_t+#include <bits/alltypes.h>++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \+ || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)+int bcmp (const void *, const void *, size_t);+void bcopy (const void *, void *, size_t);+void bzero (void *, size_t);+char *index (const char *, int);+char *rindex (const char *, int);+#endif++#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int ffs (int);+int ffsl (long);+int ffsll (long long);+#endif++int strcasecmp (const char *, const char *);+int strncasecmp (const char *, const char *, size_t);++int strcasecmp_l (const char *, const char *, locale_t);+int strncasecmp_l (const char *, const char *, size_t, locale_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,139 @@+#ifndef _STROPTS_H+#define _STROPTS_H++#ifdef __cplusplus+extern "C" {+#endif++#define __SID ('S' << 8)++#define I_NREAD (__SID | 1)+#define I_PUSH (__SID | 2)+#define I_POP (__SID | 3)+#define I_LOOK (__SID | 4)+#define I_FLUSH (__SID | 5)+#define I_SRDOPT (__SID | 6)+#define I_GRDOPT (__SID | 7)+#define I_STR (__SID | 8)+#define I_SETSIG (__SID | 9)+#define I_GETSIG (__SID |10)+#define I_FIND (__SID |11)+#define I_LINK (__SID |12)+#define I_UNLINK (__SID |13)+#define I_PEEK (__SID |15)+#define I_FDINSERT (__SID |16)+#define I_SENDFD (__SID |17)+#define I_RECVFD (__SID |14)+#define I_SWROPT (__SID |19)+#define I_GWROPT (__SID |20)+#define I_LIST (__SID |21)+#define I_PLINK (__SID |22)+#define I_PUNLINK (__SID |23)+#define I_FLUSHBAND (__SID |28)+#define I_CKBAND (__SID |29)+#define I_GETBAND (__SID |30)+#define I_ATMARK (__SID |31)+#define I_SETCLTIME (__SID |32)+#define I_GETCLTIME (__SID |33)+#define I_CANPUT (__SID |34)++#define FMNAMESZ 8++#define FLUSHR 0x01+#define FLUSHW 0x02+#define FLUSHRW 0x03+#define FLUSHBAND 0x04++#define S_INPUT 0x0001+#define S_HIPRI 0x0002+#define S_OUTPUT 0x0004+#define S_MSG 0x0008+#define S_ERROR 0x0010+#define S_HANGUP 0x0020+#define S_RDNORM 0x0040+#define S_WRNORM S_OUTPUT+#define S_RDBAND 0x0080+#define S_WRBAND 0x0100+#define S_BANDURG 0x0200++#define RS_HIPRI 0x01++#define RNORM 0x0000+#define RMSGD 0x0001+#define RMSGN 0x0002+#define RPROTDAT 0x0004+#define RPROTDIS 0x0008+#define RPROTNORM 0x0010+#define RPROTMASK 0x001C++#define SNDZERO 0x001+#define SNDPIPE 0x002++#define ANYMARK 0x01+#define LASTMARK 0x02++#define MUXID_ALL (-1)++#define MSG_HIPRI 0x01+#define MSG_ANY 0x02+#define MSG_BAND 0x04++#define MORECTL 1+#define MOREDATA 2++struct bandinfo {+ unsigned char bi_pri;+ int bi_flag;+};++struct strbuf {+ int maxlen;+ int len;+ char *buf;+};++struct strpeek {+ struct strbuf ctlbuf;+ struct strbuf databuf;+ unsigned flags;+};++struct strfdinsert {+ struct strbuf ctlbuf;+ struct strbuf databuf;+ unsigned flags;+ int fildes;+ int offset;+};++struct strioctl {+ int ic_cmd;+ int ic_timout;+ int ic_len;+ char *ic_dp;+};++struct strrecvfd {+ int fd;+ int uid;+ int gid;+ char __fill[8];+};++struct str_mlist {+ char l_name[FMNAMESZ + 1];+};++struct str_list {+ int sl_nmods;+ struct str_mlist *sl_modlist;+};++int isastream(int);+int ioctl(int, int, ...);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,72 @@+#ifndef _SYS_ACCT_H+#define _SYS_ACCT_H++#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>+#include <time.h>+#include <stdint.h>++#define ACCT_COMM 16++typedef uint16_t comp_t;++struct acct {+ char ac_flag;+ uint16_t ac_uid;+ uint16_t ac_gid;+ uint16_t ac_tty;+ uint32_t ac_btime;+ comp_t ac_utime;+ comp_t ac_stime;+ comp_t ac_etime;+ comp_t ac_mem;+ comp_t ac_io;+ comp_t ac_rw;+ comp_t ac_minflt;+ comp_t ac_majflt;+ comp_t ac_swaps;+ uint32_t ac_exitcode;+ char ac_comm[ACCT_COMM+1];+ char ac_pad[10];+};+++struct acct_v3 {+ char ac_flag;+ char ac_version;+ uint16_t ac_tty;+ uint32_t ac_exitcode;+ uint32_t ac_uid;+ uint32_t ac_gid;+ uint32_t ac_pid;+ uint32_t ac_ppid;+ uint32_t ac_btime;+ float ac_etime;+ comp_t ac_utime;+ comp_t ac_stime;+ comp_t ac_mem;+ comp_t ac_io;+ comp_t ac_rw;+ comp_t ac_minflt;+ comp_t ac_majflt;+ comp_t ac_swaps;+ char ac_comm[ACCT_COMM];+};++#define AFORK 1+#define ASU 2+#define ACORE 8+#define AXSIG 16+#define ACCT_BYTEORDER (128*(__BYTE_ORDER==__BIG_ENDIAN))+#define AHZ 100++int acct(const char *);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,17 @@+#ifndef _SYS_AUXV_H+#define _SYS_AUXV_H++#ifdef __cplusplus+extern "C" {+#endif++#include <elf.h>+#include <bits/hwcap.h>++unsigned long getauxval(unsigned long);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,22 @@+#ifndef _SYS_CACHECTL_H+#define _SYS_CACHECTL_H++#ifdef __cplusplus+extern "C" {+#endif++#define ICACHE (1<<0)+#define DCACHE (1<<1)+#define BCACHE (ICACHE|DCACHE)+#define CACHEABLE 0+#define UNCACHEABLE 1+ +int cachectl(void *, int, int);+int cacheflush(void *, int, int);+int _flush_cache(void *, int, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,2 @@+#include <dirent.h>+#define direct dirent
@@ -0,0 +1,69 @@+#ifndef _SYS_EPOLL_H+#define _SYS_EPOLL_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <sys/types.h>+#include <fcntl.h>++#define __NEED_sigset_t++#include <bits/alltypes.h>++#define EPOLL_CLOEXEC O_CLOEXEC+#define EPOLL_NONBLOCK O_NONBLOCK++enum EPOLL_EVENTS { __EPOLL_DUMMY };+#define EPOLLIN 0x001+#define EPOLLPRI 0x002+#define EPOLLOUT 0x004+#define EPOLLRDNORM 0x040+#define EPOLLNVAL 0x020+#define EPOLLRDBAND 0x080+#define EPOLLWRNORM 0x100+#define EPOLLWRBAND 0x200+#define EPOLLMSG 0x400+#define EPOLLERR 0x008+#define EPOLLHUP 0x010+#define EPOLLRDHUP 0x2000+#define EPOLLEXCLUSIVE (1U<<28)+#define EPOLLWAKEUP (1U<<29)+#define EPOLLONESHOT (1U<<30)+#define EPOLLET (1U<<31)++#define EPOLL_CTL_ADD 1+#define EPOLL_CTL_DEL 2+#define EPOLL_CTL_MOD 3++typedef union epoll_data {+ void *ptr;+ int fd;+ uint32_t u32;+ uint64_t u64;+} epoll_data_t;++struct epoll_event {+ uint32_t events;+ epoll_data_t data;+}+#ifdef __x86_64__+__attribute__ ((__packed__))+#endif+;+++int epoll_create(int);+int epoll_create1(int);+int epoll_ctl(int, int, int, struct epoll_event *);+int epoll_wait(int, struct epoll_event *, int, int);+int epoll_pwait(int, struct epoll_event *, int, int, const sigset_t *);+++#ifdef __cplusplus+}+#endif++#endif /* sys/epoll.h */
@@ -0,0 +1,2 @@+#warning redirecting incorrect #include <sys/errno.h> to <errno.h>+#include <errno.h>
@@ -0,0 +1,26 @@+#ifndef _SYS_EVENTFD_H+#define _SYS_EVENTFD_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <fcntl.h>++typedef uint64_t eventfd_t;++#define EFD_SEMAPHORE 1+#define EFD_CLOEXEC O_CLOEXEC+#define EFD_NONBLOCK O_NONBLOCK++int eventfd(unsigned int, int);+int eventfd_read(int, eventfd_t *);+int eventfd_write(int, eventfd_t);+++#ifdef __cplusplus+}+#endif++#endif /* sys/eventfd.h */
@@ -0,0 +1,111 @@+#ifndef _FANOTIFY_H+#define _FANOTIFY_H++#ifdef __cplusplus+extern "C" {+#endif++#include <sys/statfs.h>++struct fanotify_event_metadata {+ unsigned event_len;+ unsigned char vers;+ unsigned char reserved;+ unsigned short metadata_len;+ unsigned long long mask+#ifdef __GNUC__+ __attribute__((__aligned__(8)))+#endif+ ;+ int fd;+ int pid;+};++struct fanotify_event_info_header {+ unsigned char info_type;+ unsigned char pad;+ unsigned short len;+};++struct fanotify_event_info_fid {+ struct fanotify_event_info_header hdr;+ fsid_t fsid;+ unsigned char handle[];+};++struct fanotify_response {+ int fd;+ unsigned response;+};++#define FAN_ACCESS 0x01+#define FAN_MODIFY 0x02+#define FAN_ATTRIB 0x04+#define FAN_CLOSE_WRITE 0x08+#define FAN_CLOSE_NOWRITE 0x10+#define FAN_OPEN 0x20+#define FAN_MOVED_FROM 0x40+#define FAN_MOVED_TO 0x80+#define FAN_CREATE 0x100+#define FAN_DELETE 0x200+#define FAN_DELETE_SELF 0x400+#define FAN_MOVE_SELF 0x800+#define FAN_OPEN_EXEC 0x1000+#define FAN_Q_OVERFLOW 0x4000+#define FAN_OPEN_PERM 0x10000+#define FAN_ACCESS_PERM 0x20000+#define FAN_OPEN_EXEC_PERM 0x40000+#define FAN_DIR_MODIFY 0x00080000+#define FAN_EVENT_ON_CHILD 0x08000000+#define FAN_ONDIR 0x40000000+#define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)+#define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)+#define FAN_CLOEXEC 0x01+#define FAN_NONBLOCK 0x02+#define FAN_CLASS_NOTIF 0+#define FAN_CLASS_CONTENT 0x04+#define FAN_CLASS_PRE_CONTENT 0x08+#define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | FAN_CLASS_PRE_CONTENT)+#define FAN_UNLIMITED_QUEUE 0x10+#define FAN_UNLIMITED_MARKS 0x20+#define FAN_ENABLE_AUDIT 0x40+#define FAN_REPORT_TID 0x100+#define FAN_REPORT_FID 0x200+#define FAN_REPORT_DIR_FID 0x00000400+#define FAN_REPORT_NAME 0x00000800+#define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)+#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)+#define FAN_MARK_ADD 0x01+#define FAN_MARK_REMOVE 0x02+#define FAN_MARK_DONT_FOLLOW 0x04+#define FAN_MARK_ONLYDIR 0x08+#define FAN_MARK_IGNORED_MASK 0x20+#define FAN_MARK_IGNORED_SURV_MODIFY 0x40+#define FAN_MARK_FLUSH 0x80+#define FAN_MARK_INODE 0x00+#define FAN_MARK_MOUNT 0x10+#define FAN_MARK_FILESYSTEM 0x100+#define FAN_MARK_TYPE_MASK (FAN_MARK_INODE | FAN_MARK_MOUNT | FAN_MARK_FILESYSTEM)+#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD | FAN_MARK_REMOVE | FAN_MARK_DONT_FOLLOW | FAN_MARK_ONLYDIR | FAN_MARK_MOUNT | FAN_MARK_IGNORED_MASK | FAN_MARK_IGNORED_SURV_MODIFY | FAN_MARK_FLUSH)+#define FAN_ALL_EVENTS (FAN_ACCESS | FAN_MODIFY | FAN_CLOSE | FAN_OPEN)+#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM | FAN_ACCESS_PERM)+#define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS | FAN_ALL_PERM_EVENTS | FAN_Q_OVERFLOW)+#define FANOTIFY_METADATA_VERSION 3+#define FAN_EVENT_INFO_TYPE_FID 1+#define FAN_EVENT_INFO_TYPE_DFID_NAME 2+#define FAN_EVENT_INFO_TYPE_DFID 3+#define FAN_ALLOW 0x01+#define FAN_DENY 0x02+#define FAN_AUDIT 0x10+#define FAN_NOFD -1+#define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))+#define FAN_EVENT_NEXT(meta, len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata*)(((char *)(meta)) + (meta)->event_len))+#define FAN_EVENT_OK(meta, len) ((long)(len) >= (long)FAN_EVENT_METADATA_LEN && (long)(meta)->event_len >= (long)FAN_EVENT_METADATA_LEN && (long)(meta)->event_len <= (long)(len))++int fanotify_init(unsigned, unsigned);+int fanotify_mark(int, unsigned, unsigned long long, int, const char *);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,2 @@+#warning redirecting incorrect #include <sys/fcntl.h> to <fcntl.h>+#include <fcntl.h>
@@ -0,0 +1,21 @@+#ifndef _SYS_FILE_H+#define _SYS_FILE_H+#ifdef __cplusplus+extern "C" {+#endif++#define LOCK_SH 1+#define LOCK_EX 2+#define LOCK_NB 4+#define LOCK_UN 8++#define L_SET 0+#define L_INCR 1+#define L_XTND 2++int flock(int, int);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,20 @@+#ifndef _SYS_FSUID_H+#define _SYS_FSUID_H++#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_uid_t+#define __NEED_gid_t++#include <bits/alltypes.h>++int setfsuid(uid_t);+int setfsgid(gid_t);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,58 @@+#ifndef _SYS_INOTIFY_H+#define _SYS_INOTIFY_H++#ifdef __cplusplus+extern "C" {+#endif++#include <stdint.h>+#include <fcntl.h>++struct inotify_event {+ int wd;+ uint32_t mask, cookie, len;+ char name[];+};++#define IN_CLOEXEC O_CLOEXEC+#define IN_NONBLOCK O_NONBLOCK++#define IN_ACCESS 0x00000001+#define IN_MODIFY 0x00000002+#define IN_ATTRIB 0x00000004+#define IN_CLOSE_WRITE 0x00000008+#define IN_CLOSE_NOWRITE 0x00000010+#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)+#define IN_OPEN 0x00000020+#define IN_MOVED_FROM 0x00000040+#define IN_MOVED_TO 0x00000080+#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO)+#define IN_CREATE 0x00000100+#define IN_DELETE 0x00000200+#define IN_DELETE_SELF 0x00000400+#define IN_MOVE_SELF 0x00000800+#define IN_ALL_EVENTS 0x00000fff++#define IN_UNMOUNT 0x00002000+#define IN_Q_OVERFLOW 0x00004000+#define IN_IGNORED 0x00008000++#define IN_ONLYDIR 0x01000000+#define IN_DONT_FOLLOW 0x02000000+#define IN_EXCL_UNLINK 0x04000000+#define IN_MASK_CREATE 0x10000000+#define IN_MASK_ADD 0x20000000++#define IN_ISDIR 0x40000000+#define IN_ONESHOT 0x80000000++int inotify_init(void);+int inotify_init1(int);+int inotify_add_watch(int, const char *, uint32_t);+int inotify_rm_watch(int, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,17 @@+#ifndef _SYS_IO_H+#define _SYS_IO_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#include <bits/io.h>++int iopl(int);+int ioperm(unsigned long, unsigned long, int);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,120 @@+#ifndef _SYS_IOCTL_H+#define _SYS_IOCTL_H+#ifdef __cplusplus+extern "C" {+#endif++#define __NEED_struct_winsize++#include <bits/alltypes.h>+#include <bits/ioctl.h>++#define N_TTY 0+#define N_SLIP 1+#define N_MOUSE 2+#define N_PPP 3+#define N_STRIP 4+#define N_AX25 5+#define N_X25 6+#define N_6PACK 7+#define N_MASC 8+#define N_R3964 9+#define N_PROFIBUS_FDL 10+#define N_IRDA 11+#define N_SMSBLOCK 12+#define N_HDLC 13+#define N_SYNC_PPP 14+#define N_HCI 15+#define N_GIGASET_M101 16+#define N_SLCAN 17+#define N_PPS 18+#define N_V253 19+#define N_CAIF 20+#define N_GSM0710 21+#define N_TI_WL 22+#define N_TRACESINK 23+#define N_TRACEROUTER 24+#define N_NCI 25+#define N_SPEAKUP 26+#define N_NULL 27++#define TIOCPKT_DATA 0+#define TIOCPKT_FLUSHREAD 1+#define TIOCPKT_FLUSHWRITE 2+#define TIOCPKT_STOP 4+#define TIOCPKT_START 8+#define TIOCPKT_NOSTOP 16+#define TIOCPKT_DOSTOP 32+#define TIOCPKT_IOCTL 64++#define TIOCSER_TEMT 1++#define SIOCADDRT 0x890B+#define SIOCDELRT 0x890C+#define SIOCRTMSG 0x890D++#define SIOCGIFNAME 0x8910+#define SIOCSIFLINK 0x8911+#define SIOCGIFCONF 0x8912+#define SIOCGIFFLAGS 0x8913+#define SIOCSIFFLAGS 0x8914+#define SIOCGIFADDR 0x8915+#define SIOCSIFADDR 0x8916+#define SIOCGIFDSTADDR 0x8917+#define SIOCSIFDSTADDR 0x8918+#define SIOCGIFBRDADDR 0x8919+#define SIOCSIFBRDADDR 0x891a+#define SIOCGIFNETMASK 0x891b+#define SIOCSIFNETMASK 0x891c+#define SIOCGIFMETRIC 0x891d+#define SIOCSIFMETRIC 0x891e+#define SIOCGIFMEM 0x891f+#define SIOCSIFMEM 0x8920+#define SIOCGIFMTU 0x8921+#define SIOCSIFMTU 0x8922+#define SIOCSIFNAME 0x8923+#define SIOCSIFHWADDR 0x8924+#define SIOCGIFENCAP 0x8925+#define SIOCSIFENCAP 0x8926+#define SIOCGIFHWADDR 0x8927+#define SIOCGIFSLAVE 0x8929+#define SIOCSIFSLAVE 0x8930+#define SIOCADDMULTI 0x8931+#define SIOCDELMULTI 0x8932+#define SIOCGIFINDEX 0x8933+#define SIOGIFINDEX SIOCGIFINDEX+#define SIOCSIFPFLAGS 0x8934+#define SIOCGIFPFLAGS 0x8935+#define SIOCDIFADDR 0x8936+#define SIOCSIFHWBROADCAST 0x8937+#define SIOCGIFCOUNT 0x8938++#define SIOCGIFBR 0x8940+#define SIOCSIFBR 0x8941++#define SIOCGIFTXQLEN 0x8942+#define SIOCSIFTXQLEN 0x8943++#define SIOCDARP 0x8953+#define SIOCGARP 0x8954+#define SIOCSARP 0x8955++#define SIOCDRARP 0x8960+#define SIOCGRARP 0x8961+#define SIOCSRARP 0x8962++#define SIOCGIFMAP 0x8970+#define SIOCSIFMAP 0x8971++#define SIOCADDDLCI 0x8980+#define SIOCDELDLCI 0x8981++#define SIOCDEVPRIVATE 0x89F0+#define SIOCPROTOPRIVATE 0x89E0++int ioctl (int, int, ...);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,42 @@+#ifndef _SYS_IPC_H+#define _SYS_IPC_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_uid_t+#define __NEED_gid_t+#define __NEED_mode_t+#define __NEED_key_t++#include <bits/alltypes.h>++#define __ipc_perm_key __key+#define __ipc_perm_seq __seq++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define __key key+#define __seq seq+#endif++#include <bits/ipc.h>+#include <bits/ipcstat.h>++#define IPC_CREAT 01000+#define IPC_EXCL 02000+#define IPC_NOWAIT 04000++#define IPC_RMID 0+#define IPC_SET 1+#define IPC_INFO 3++#define IPC_PRIVATE ((key_t) 0)++key_t ftok (const char *, int);++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,1 @@+#include <bits/kd.h>
@@ -0,0 +1,14 @@+#ifndef _SYS_KLOG_H+#define _SYS_KLOG_H++#ifdef __cplusplus+extern "C" {+#endif++int klogctl (int, char *, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,21 @@+#ifndef _SYS_MEMBARRIER_H+#define _SYS_MEMBARRIER_H++#define MEMBARRIER_CMD_QUERY 0+#define MEMBARRIER_CMD_GLOBAL 1+#define MEMBARRIER_CMD_GLOBAL_EXPEDITED 2+#define MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED 4+#define MEMBARRIER_CMD_PRIVATE_EXPEDITED 8+#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED 16+#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE 32+#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE 64+#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ 128+#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ 256++#define MEMBARRIER_CMD_SHARED MEMBARRIER_CMD_GLOBAL++#define MEMBARRIER_CMD_FLAG_CPU 1++int membarrier(int, int);++#endif
@@ -0,0 +1,152 @@+#ifndef _SYS_MMAN_H+#define _SYS_MMAN_H+#ifdef __cplusplus+extern "C" {+#endif++#include <features.h>++#define __NEED_mode_t+#define __NEED_size_t+#define __NEED_off_t++#if defined(_GNU_SOURCE)+#define __NEED_ssize_t+#endif++#include <bits/alltypes.h>++#define MAP_FAILED ((void *) -1)++#define MAP_SHARED 0x01+#define MAP_PRIVATE 0x02+#define MAP_SHARED_VALIDATE 0x03+#define MAP_TYPE 0x0f+#define MAP_FIXED 0x10+#define MAP_ANON 0x20+#define MAP_ANONYMOUS MAP_ANON+#define MAP_NORESERVE 0x4000+#define MAP_GROWSDOWN 0x0100+#define MAP_DENYWRITE 0x0800+#define MAP_EXECUTABLE 0x1000+#define MAP_LOCKED 0x2000+#define MAP_POPULATE 0x8000+#define MAP_NONBLOCK 0x10000+#define MAP_STACK 0x20000+#define MAP_HUGETLB 0x40000+#define MAP_SYNC 0x80000+#define MAP_FIXED_NOREPLACE 0x100000+#define MAP_FILE 0++#define MAP_HUGE_SHIFT 26+#define MAP_HUGE_MASK 0x3f+#define MAP_HUGE_16KB (14 << 26)+#define MAP_HUGE_64KB (16 << 26)+#define MAP_HUGE_512KB (19 << 26)+#define MAP_HUGE_1MB (20 << 26)+#define MAP_HUGE_2MB (21 << 26)+#define MAP_HUGE_8MB (23 << 26)+#define MAP_HUGE_16MB (24 << 26)+#define MAP_HUGE_32MB (25 << 26)+#define MAP_HUGE_256MB (28 << 26)+#define MAP_HUGE_512MB (29 << 26)+#define MAP_HUGE_1GB (30 << 26)+#define MAP_HUGE_2GB (31 << 26)+#define MAP_HUGE_16GB (34U << 26)++#define PROT_NONE 0+#define PROT_READ 1+#define PROT_WRITE 2+#define PROT_EXEC 4+#define PROT_GROWSDOWN 0x01000000+#define PROT_GROWSUP 0x02000000++#define MS_ASYNC 1+#define MS_INVALIDATE 2+#define MS_SYNC 4++#define MCL_CURRENT 1+#define MCL_FUTURE 2+#define MCL_ONFAULT 4++#define POSIX_MADV_NORMAL 0+#define POSIX_MADV_RANDOM 1+#define POSIX_MADV_SEQUENTIAL 2+#define POSIX_MADV_WILLNEED 3+#define POSIX_MADV_DONTNEED 4++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+#define MADV_NORMAL 0+#define MADV_RANDOM 1+#define MADV_SEQUENTIAL 2+#define MADV_WILLNEED 3+#define MADV_DONTNEED 4+#define MADV_FREE 8+#define MADV_REMOVE 9+#define MADV_DONTFORK 10+#define MADV_DOFORK 11+#define MADV_MERGEABLE 12+#define MADV_UNMERGEABLE 13+#define MADV_HUGEPAGE 14+#define MADV_NOHUGEPAGE 15+#define MADV_DONTDUMP 16+#define MADV_DODUMP 17+#define MADV_WIPEONFORK 18+#define MADV_KEEPONFORK 19+#define MADV_COLD 20+#define MADV_PAGEOUT 21+#define MADV_HWPOISON 100+#define MADV_SOFT_OFFLINE 101+#endif++#ifdef _GNU_SOURCE+#define MREMAP_MAYMOVE 1+#define MREMAP_FIXED 2+#define MREMAP_DONTUNMAP 4++#define MLOCK_ONFAULT 0x01++#define MFD_CLOEXEC 0x0001U+#define MFD_ALLOW_SEALING 0x0002U+#define MFD_HUGETLB 0x0004U+#endif++#include <bits/mman.h>++void *mmap (void *, size_t, int, int, int, off_t);+int munmap (void *, size_t);++int mprotect (void *, size_t, int);+int msync (void *, size_t, int);++int posix_madvise (void *, size_t, int);++int mlock (const void *, size_t);+int munlock (const void *, size_t);+int mlockall (int);+int munlockall (void);++#ifdef _GNU_SOURCE+void *mremap (void *, size_t, size_t, int, ...);+int remap_file_pages (void *, size_t, int, size_t, int);+int memfd_create (const char *, unsigned);+int mlock2 (const void *, size_t, unsigned);+#endif++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+int madvise (void *, size_t, int);+int mincore (void *, size_t, unsigned char *);+#endif++int shm_open (const char *, int, mode_t);+int shm_unlink (const char *);++#if defined(_LARGEFILE64_SOURCE)+#define mmap64 mmap+#define off64_t off_t+#endif++#ifdef __cplusplus+}+#endif+#endif
@@ -0,0 +1,75 @@+#ifndef _SYS_MOUNT_H+#define _SYS_MOUNT_H++#ifdef __cplusplus+extern "C" {+#endif++#include <sys/ioctl.h>++#define BLKROSET _IO(0x12, 93)+#define BLKROGET _IO(0x12, 94)+#define BLKRRPART _IO(0x12, 95)+#define BLKGETSIZE _IO(0x12, 96)+#define BLKFLSBUF _IO(0x12, 97)+#define BLKRASET _IO(0x12, 98)+#define BLKRAGET _IO(0x12, 99)+#define BLKFRASET _IO(0x12,100)+#define BLKFRAGET _IO(0x12,101)+#define BLKSECTSET _IO(0x12,102)+#define BLKSECTGET _IO(0x12,103)+#define BLKSSZGET _IO(0x12,104)+#define BLKBSZGET _IOR(0x12,112,size_t)+#define BLKBSZSET _IOW(0x12,113,size_t)+#define BLKGETSIZE64 _IOR(0x12,114,size_t)++#define MS_RDONLY 1+#define MS_NOSUID 2+#define MS_NODEV 4+#define MS_NOEXEC 8+#define MS_SYNCHRONOUS 16+#define MS_REMOUNT 32+#define MS_MANDLOCK 64+#define MS_DIRSYNC 128+#define MS_NOSYMFOLLOW 256+#define MS_NOATIME 1024+#define MS_NODIRATIME 2048+#define MS_BIND 4096+#define MS_MOVE 8192+#define MS_REC 16384+#define MS_SILENT 32768+#define MS_POSIXACL (1<<16)+#define MS_UNBINDABLE (1<<17)+#define MS_PRIVATE (1<<18)+#define MS_SLAVE (1<<19)+#define MS_SHARED (1<<20)+#define MS_RELATIME (1<<21)+#define MS_KERNMOUNT (1<<22)+#define MS_I_VERSION (1<<23)+#define MS_STRICTATIME (1<<24)+#define MS_LAZYTIME (1<<25)+#define MS_NOREMOTELOCK (1<<27)+#define MS_NOSEC (1<<28)+#define MS_BORN (1<<29)+#define MS_ACTIVE (1<<30)+#define MS_NOUSER (1U<<31)++#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|MS_LAZYTIME)++#define MS_MGC_VAL 0xc0ed0000+#define MS_MGC_MSK 0xffff0000++#define MNT_FORCE 1+#define MNT_DETACH 2+#define MNT_EXPIRE 4+#define UMOUNT_NOFOLLOW 8++int mount(const char *, const char *, const char *, unsigned long, const void *);+int umount(const char *);+int umount2(const char *, int);++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,53 @@+#ifndef _SYS_MSG_H+#define _SYS_MSG_H++#ifdef __cplusplus+extern "C" {+#endif++#include <sys/ipc.h>++#define __NEED_pid_t+#define __NEED_key_t+#define __NEED_time_t+#define __NEED_size_t+#define __NEED_ssize_t++#include <bits/alltypes.h>++typedef unsigned long msgqnum_t;+typedef unsigned long msglen_t;++#include <bits/msg.h>++#define __msg_cbytes msg_cbytes++#define MSG_NOERROR 010000+#define MSG_EXCEPT 020000++#define MSG_STAT (11 | (IPC_STAT & 0x100))+#define MSG_INFO 12+#define MSG_STAT_ANY (13 | (IPC_STAT & 0x100))++struct msginfo {+ int msgpool, msgmap, msgmax, msgmnb, msgmni, msgssz, msgtql;+ unsigned short msgseg;+};++int msgctl (int, int, struct msqid_ds *);+int msgget (key_t, int);+ssize_t msgrcv (int, void *, size_t, long, int);+int msgsnd (int, const void *, size_t, int);++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)+struct msgbuf {+ long mtype;+ char mtext[1];+};+#endif++#ifdef __cplusplus+}+#endif++#endif
@@ -0,0 +1,188 @@+#ifndef _SYS_MTIO_H+#define _SYS_MTIO_H++#include <sys/types.h>+#include <sys/ioctl.h>++struct mtop {+ short mt_op;+ int mt_count;+};++#define _IOT_mtop _IOT (_IOTS (short), 1, _IOTS (int), 1, 0, 0)+#define _IOT_mtget _IOT (_IOTS (long), 7, 0, 0, 0, 0)+#define _IOT_mtpos _IOT_SIMPLE (long)+#define _IOT_mtconfiginfo _IOT (_IOTS (long), 2, _IOTS (short), 3, _IOTS (long), 1)+++#define MTRESET 0+#define MTFSF 1+#define MTBSF 2+#define MTFSR 3+#define MTBSR 4+#define MTWEOF 5+#define MTREW 6+#define MTOFFL 7+#define MTNOP 8+#define MTRETEN 9+#define MTBSFM 10+#define MTFSFM 11+#define MTEOM 12+#define MTERASE 13+#define MTRAS1 14+#define MTRAS2 15+#define MTRAS3 16+#define MTSETBLK 20+#define MTSETDENSITY 21+#define MTSEEK 22+#define MTTELL 23+#define MTSETDRVBUFFER 24+#define MTFSS 25+#define MTBSS 26+#define MTWSM 27+#define MTLOCK 28+#define MTUNLOCK 29+#define MTLOAD 30+#define MTUNLOAD 31+#define MTCOMPRESSION 32+#define MTSETPART 33+#define MTMKPART 34++struct mtget {+ long mt_type;+ long mt_resid;+ long mt_dsreg;+ long mt_gstat;+ long mt_erreg;+ int mt_fileno;+ int mt_blkno;+};++#define MT_ISUNKNOWN 0x01+#define MT_ISQIC02 0x02+#define MT_ISWT5150 0x03+#define MT_ISARCHIVE_5945L2 0x04+#define MT_ISCMSJ500 0x05+#define MT_ISTDC3610 0x06+#define MT_ISARCHIVE_VP60I 0x07+#define MT_ISARCHIVE_2150L 0x08+#define MT_ISARCHIVE_2060L 0x09+#define MT_ISARCHIVESC499 0x0A+#define MT_ISQIC02_ALL_FEATURES 0x0F+#define MT_ISWT5099EEN24 0x11+#define MT_ISTEAC_MT2ST 0x12+#define MT_ISEVEREX_FT40A 0x32+#define MT_ISDDS1 0x51+#define MT_ISDDS2 0x52+#define MT_ISSCSI1 0x71+#define MT_ISSCSI2 0x72+#define MT_ISFTAPE_UNKNOWN 0x800000+#define MT_ISFTAPE_FLAG 0x800000++struct mt_tape_info {+ long t_type;+ char *t_name;+};++#define MT_TAPE_INFO \+{ \+ {MT_ISUNKNOWN, "Unknown type of tape device"}, \+ {MT_ISQIC02, "Generic QIC-02 tape streamer"}, \+ {MT_ISWT5150, "Wangtek 5150, QIC-150"}, \+ {MT_ISARCHIVE_5945L2, "Archive 5945L-2"}, \+ {MT_ISCMSJ500, "CMS Jumbo 500"}, \+ {MT_ISTDC3610, "Tandberg TDC 3610, QIC-24"}, \+ {MT_ISARCHIVE_VP60I, "Archive VP60i, QIC-02"}, \+ {MT_ISARCHIVE_2150L, "Archive Viper 2150L"}, \+ {MT_ISARCHIVE_2060L, "Archive Viper 2060L"}, \+ {MT_ISARCHIVESC499, "Archive SC-499 QIC-36 controller"}, \+ {MT_ISQIC02_ALL_FEATURES, "Generic QIC-02 tape, all features"}, \+ {MT_ISWT5099EEN24, "Wangtek 5099-een24, 60MB"}, \+ {MT_ISTEAC_MT2ST, "Teac MT-2ST 155mb data cassette drive"}, \+ {MT_ISEVEREX_FT40A, "Everex FT40A, QIC-40"}, \+ {MT_ISSCSI1, "Generic SCSI-1 tape"}, \+ {MT_ISSCSI2, "Generic SCSI-2 tape"}, \+ {0, 0} \+}++struct mtpos {+ long mt_blkno;+};++struct mtconfiginfo {+ long mt_type;+ long ifc_type;+ unsigned short irqnr;+ unsigned short dmanr;+ unsigned short port;+ unsigned long debug;+ unsigned have_dens:1;+ unsigned have_bsf:1;+ unsigned have_fsr:1;+ unsigned have_bsr:1;+ unsigned have_eod:1;+ unsigned have_seek:1;+ unsigned have_tell:1;+ unsigned have_ras1:1;+ unsigned have_ras2:1;+ unsigned have_ras3:1;+ unsigned have_qfa:1;+ unsigned pad1:5;+ char reserved[10];+};++#define MTIOCTOP _IOW('m', 1, struct mtop)+#define MTIOCGET _IOR('m', 2, struct mtget)+#define MTIOCPOS _IOR('m', 3, struct mtpos)++#define MTIOCGETCONFIG _IOR('m', 4, struct mtconfiginfo)+#define MTIOCSETCONFIG _IOW('m', 5, struct mtconfiginfo)++#define GMT_EOF(x) ((x) & 0x80000000)+#define GMT_BOT(x) ((x) & 0x40000000)+#define GMT_EOT(x) ((x) & 0x20000000)+#define GMT_SM(x) ((x) & 0x10000000)+#define GMT_EOD(x) ((x) & 0x08000000)+#define GMT_WR_PROT(x) ((x) & 0x04000000)+#define GMT_ONLINE(x) ((x) & 0x01000000)+#define GMT_D_6250(x) ((x) & 0x00800000)+#define GMT_D_1600(x) ((x) & 0x00400000)+#define GMT_D_800(x) ((x) & 0x00200000)+#define GMT_DR_OPEN(x) ((x) & 0x00040000)+#define GMT_IM_REP_EN(x) ((x) & 0x00010000)++#define MT_ST_BLKSIZE_SHIFT 0+#define MT_ST_BLKSIZE_MASK 0xffffff+#define MT_ST_DENSITY_SHIFT 24+#define MT_ST_DENSITY_MASK 0xff000000+#define MT_ST_SOFTERR_SHIFT 0+#define MT_ST_SOFTERR_MASK 0xffff+#define MT_ST_OPTIONS 0xf0000000+#define MT_ST_BOOLEANS 0x10000000+#define MT_ST_SETBOOLEANS 0x30000000+#define MT_ST_CLEARBOOLEANS 0x40000000+#define MT_ST_WRITE_THRESHOLD 0x20000000+#define MT_ST_DEF_BLKSIZE 0x50000000+#define MT_ST_DEF_OPTIONS 0x60000000+#define MT_ST_BUFFER_WRITES 0x1+#define MT_ST_ASYNC_WRITES 0x2+#define MT_ST_READ_AHEAD 0x4+#define MT_ST_DEBUGGING 0x8+#define MT_ST_TWO_FM 0x10+#define MT_ST_FAST_MTEOM 0x20+#define MT_ST_AUTO_LOCK 0x40+#define MT_ST_DEF_WRITES 0x80+#define MT_ST_CAN_BSR 0x100+#define MT_ST_NO_BLKLIMS 0x200+#define MT_ST_CAN_PARTITIONS 0x400+#define MT_ST_SCSI2LOGICAL 0x800+#define MT_ST_CLEAR_DEFAULT 0xfffff+#define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000)+#define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000)+#define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000)+#define MT_ST_HPLOADER_OFFSET 10000+#ifndef DEFTAPE+# define DEFTAPE "/dev/tape"+#endif++#endif
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff