initial check-in, version 0.5.0
authorRich Felker <dalias@aerifal.cx>
Sat, 12 Feb 2011 05:22:29 +0000 (00:22 -0500)
committerRich Felker <dalias@aerifal.cx>
Sat, 12 Feb 2011 05:22:29 +0000 (00:22 -0500)
1021 files changed:
COPYING [new file with mode: 0644]
COPYRIGHT [new file with mode: 0644]
INSTALL [new file with mode: 0644]
Makefile [new file with mode: 0644]
README [new file with mode: 0644]
crt/crt1.c [new file with mode: 0644]
crt/crti.c [new file with mode: 0644]
crt/crtn.c [new file with mode: 0644]
crt/i386/crt1.s [new file with mode: 0644]
dist/config.mak [new file with mode: 0644]
include/alloca.h [new file with mode: 0644]
include/arpa/inet.h [new file with mode: 0644]
include/arpa/nameser.h [new file with mode: 0644]
include/arpa/telnet.h [new file with mode: 0644]
include/assert.h [new file with mode: 0644]
include/bits/alltypes.h.sh [new file with mode: 0755]
include/bits/endian.h [new file with mode: 0644]
include/bits/errno.h [new file with mode: 0644]
include/bits/fcntl.h [new file with mode: 0644]
include/bits/fenv.h [new file with mode: 0644]
include/bits/float.h [new file with mode: 0644]
include/bits/in.h [new file with mode: 0644]
include/bits/ioctl.h [new file with mode: 0644]
include/bits/ipc.h [new file with mode: 0644]
include/bits/limits.h [new file with mode: 0644]
include/bits/mman.h [new file with mode: 0644]
include/bits/posix.h [new file with mode: 0644]
include/bits/pthread.h [new file with mode: 0644]
include/bits/reg.h [new file with mode: 0644]
include/bits/setjmp.h [new file with mode: 0644]
include/bits/shm.h [new file with mode: 0644]
include/bits/signal.h [new file with mode: 0644]
include/bits/socket.h [new file with mode: 0644]
include/bits/stat.h [new file with mode: 0644]
include/bits/statfs.h [new file with mode: 0644]
include/bits/stdint.h [new file with mode: 0644]
include/bits/stdio.h [new file with mode: 0644]
include/bits/sysmacros.h [new file with mode: 0644]
include/bits/tcp.h [new file with mode: 0644]
include/bits/termios.h [new file with mode: 0644]
include/bits/uio.h [new file with mode: 0644]
include/bits/user.h [new file with mode: 0644]
include/bits/wait.h [new file with mode: 0644]
include/bits/wexitstatus.h [new file with mode: 0644]
include/byteswap.h [new file with mode: 0644]
include/cpio.h [new file with mode: 0644]
include/ctype.h [new file with mode: 0644]
include/dirent.h [new file with mode: 0644]
include/dlfcn.h [new file with mode: 0644]
include/elf.h [new file with mode: 0644]
include/endian.h [new file with mode: 0644]
include/errno.h [new file with mode: 0644]
include/fcntl.h [new file with mode: 0644]
include/features.h [new file with mode: 0644]
include/fenv.h [new file with mode: 0644]
include/float.h [new file with mode: 0644]
include/fnmatch.h [new file with mode: 0644]
include/ftw.h [new file with mode: 0644]
include/getopt.h [new file with mode: 0644]
include/glob.h [new file with mode: 0644]
include/grp.h [new file with mode: 0644]
include/iconv.h [new file with mode: 0644]
include/inttypes.h [new file with mode: 0644]
include/langinfo.h [new file with mode: 0644]
include/libgen.h [new file with mode: 0644]
include/libintl.h [new file with mode: 0644]
include/limits.h [new file with mode: 0644]
include/linux/loop.h [new file with mode: 0644]
include/linux/version.h [new file with mode: 0644]
include/locale.h [new file with mode: 0644]
include/malloc.h [new file with mode: 0644]
include/math.h [new file with mode: 0644]
include/mntent.h [new file with mode: 0644]
include/net/ethernet.h [new file with mode: 0644]
include/net/if.h [new file with mode: 0644]
include/net/if_arp.h [new file with mode: 0644]
include/net/route.h [new file with mode: 0644]
include/netdb.h [new file with mode: 0644]
include/netinet/icmp6.h [new file with mode: 0644]
include/netinet/if_ether.h [new file with mode: 0644]
include/netinet/in.h [new file with mode: 0644]
include/netinet/ip.h [new file with mode: 0644]
include/netinet/ip6.h [new file with mode: 0644]
include/netinet/ip_icmp.h [new file with mode: 0644]
include/netinet/tcp.h [new file with mode: 0644]
include/netinet/udp.h [new file with mode: 0644]
include/nl_types.h [new file with mode: 0644]
include/paths.h [new file with mode: 0644]
include/poll.h [new file with mode: 0644]
include/pthread.h [new file with mode: 0644]
include/pty.h [new file with mode: 0644]
include/pwd.h [new file with mode: 0644]
include/regex.h [new file with mode: 0644]
include/resolv.h [new file with mode: 0644]
include/sched.h [new file with mode: 0644]
include/search.h [new file with mode: 0644]
include/semaphore.h [new file with mode: 0644]
include/setjmp.h [new file with mode: 0644]
include/shadow.h [new file with mode: 0644]
include/signal.h [new file with mode: 0644]
include/stdarg.h [new file with mode: 0644]
include/stdbool.h [new file with mode: 0644]
include/stddef.h [new file with mode: 0644]
include/stdint.h [new file with mode: 0644]
include/stdio.h [new file with mode: 0644]
include/stdlib.h [new file with mode: 0644]
include/string.h [new file with mode: 0644]
include/strings.h [new file with mode: 0644]
include/stropts.h [new file with mode: 0644]
include/sys/epoll.h [new file with mode: 0644]
include/sys/file.h [new file with mode: 0644]
include/sys/ioctl.h [new file with mode: 0644]
include/sys/ipc.h [new file with mode: 0644]
include/sys/kd.h [new file with mode: 0644]
include/sys/klog.h [new file with mode: 0644]
include/sys/mman.h [new file with mode: 0644]
include/sys/mount.h [new file with mode: 0644]
include/sys/msg.h [new file with mode: 0644]
include/sys/param.h [new file with mode: 0644]
include/sys/poll.h [new file with mode: 0644]
include/sys/prctl.h [new file with mode: 0644]
include/sys/procfs.h [new file with mode: 0644]
include/sys/ptrace.h [new file with mode: 0644]
include/sys/reboot.h [new file with mode: 0644]
include/sys/reg.h [new file with mode: 0644]
include/sys/resource.h [new file with mode: 0644]
include/sys/select.h [new file with mode: 0644]
include/sys/sem.h [new file with mode: 0644]
include/sys/shm.h [new file with mode: 0644]
include/sys/signalfd.h [new file with mode: 0644]
include/sys/socket.h [new file with mode: 0644]
include/sys/soundcard.h [new file with mode: 0644]
include/sys/stat.h [new file with mode: 0644]
include/sys/statfs.h [new file with mode: 0644]
include/sys/statvfs.h [new file with mode: 0644]
include/sys/stropts.h [new file with mode: 0644]
include/sys/swap.h [new file with mode: 0644]
include/sys/sysctl.h [new file with mode: 0644]
include/sys/sysinfo.h [new file with mode: 0644]
include/sys/sysmacros.h [new file with mode: 0644]
include/sys/time.h [new file with mode: 0644]
include/sys/times.h [new file with mode: 0644]
include/sys/types.h [new file with mode: 0644]
include/sys/ucontext.h [new file with mode: 0644]
include/sys/uio.h [new file with mode: 0644]
include/sys/un.h [new file with mode: 0644]
include/sys/user.h [new file with mode: 0644]
include/sys/utsname.h [new file with mode: 0644]
include/sys/vfs.h [new file with mode: 0644]
include/sys/vt.h [new file with mode: 0644]
include/sys/wait.h [new file with mode: 0644]
include/syslog.h [new file with mode: 0644]
include/tar.h [new file with mode: 0644]
include/termios.h [new file with mode: 0644]
include/time.h [new file with mode: 0644]
include/ucontext.h [new file with mode: 0644]
include/ulimit.h [new file with mode: 0644]
include/unistd.h [new file with mode: 0644]
include/utime.h [new file with mode: 0644]
include/utmp.h [new file with mode: 0644]
include/utmpx.h [new file with mode: 0644]
include/wchar.h [new file with mode: 0644]
include/wctype.h [new file with mode: 0644]
include/wordexp.h [new file with mode: 0644]
src/conf/fpathconf.c [new file with mode: 0644]
src/conf/pathconf.c [new file with mode: 0644]
src/conf/sysconf.c [new file with mode: 0644]
src/ctype/__ctype_get_mb_cur_max.c [new file with mode: 0644]
src/ctype/isalnum.c [new file with mode: 0644]
src/ctype/isalpha.c [new file with mode: 0644]
src/ctype/isascii.c [new file with mode: 0644]
src/ctype/isblank.c [new file with mode: 0644]
src/ctype/iscntrl.c [new file with mode: 0644]
src/ctype/isdigit.c [new file with mode: 0644]
src/ctype/isgraph.c [new file with mode: 0644]
src/ctype/islower.c [new file with mode: 0644]
src/ctype/isprint.c [new file with mode: 0644]
src/ctype/ispunct.c [new file with mode: 0644]
src/ctype/isspace.c [new file with mode: 0644]
src/ctype/isupper.c [new file with mode: 0644]
src/ctype/iswalnum.c [new file with mode: 0644]
src/ctype/iswalpha.c [new file with mode: 0644]
src/ctype/iswblank.c [new file with mode: 0644]
src/ctype/iswcntrl.c [new file with mode: 0644]
src/ctype/iswctype.c [new file with mode: 0644]
src/ctype/iswdigit.c [new file with mode: 0644]
src/ctype/iswgraph.c [new file with mode: 0644]
src/ctype/iswlower.c [new file with mode: 0644]
src/ctype/iswprint.c [new file with mode: 0644]
src/ctype/iswpunct.c [new file with mode: 0644]
src/ctype/iswspace.c [new file with mode: 0644]
src/ctype/iswupper.c [new file with mode: 0644]
src/ctype/iswxdigit.c [new file with mode: 0644]
src/ctype/isxdigit.c [new file with mode: 0644]
src/ctype/toascii.c [new file with mode: 0644]
src/ctype/tolower.c [new file with mode: 0644]
src/ctype/toupper.c [new file with mode: 0644]
src/ctype/towctrans.c [new file with mode: 0644]
src/ctype/wcswidth.c [new file with mode: 0644]
src/ctype/wctrans.c [new file with mode: 0644]
src/ctype/wcwidth.c [new file with mode: 0644]
src/dirent/__dirent.h [new file with mode: 0644]
src/dirent/__getdents.c [new file with mode: 0644]
src/dirent/alphasort.c [new file with mode: 0644]
src/dirent/closedir.c [new file with mode: 0644]
src/dirent/dirfd.c [new file with mode: 0644]
src/dirent/fdopendir.c [new file with mode: 0644]
src/dirent/opendir.c [new file with mode: 0644]
src/dirent/readdir.c [new file with mode: 0644]
src/dirent/readdir_r.c [new file with mode: 0644]
src/dirent/rewinddir.c [new file with mode: 0644]
src/dirent/scandir.c [new file with mode: 0644]
src/dirent/seekdir.c [new file with mode: 0644]
src/dirent/telldir.c [new file with mode: 0644]
src/env/__environ.c [new file with mode: 0644]
src/env/__libc_start_main.c [new file with mode: 0644]
src/env/clearenv.c [new file with mode: 0644]
src/env/getenv.c [new file with mode: 0644]
src/env/putenv.c [new file with mode: 0644]
src/env/setenv.c [new file with mode: 0644]
src/env/unsetenv.c [new file with mode: 0644]
src/errno/__errno_location.c [new file with mode: 0644]
src/errno/__strerror.h [new file with mode: 0644]
src/errno/strerror.c [new file with mode: 0644]
src/exit/_Exit.c [new file with mode: 0644]
src/exit/abort.c [new file with mode: 0644]
src/exit/assert.c [new file with mode: 0644]
src/exit/atexit.c [new file with mode: 0644]
src/exit/exit.c [new file with mode: 0644]
src/fcntl/creat.c [new file with mode: 0644]
src/fcntl/fcntl.c [new file with mode: 0644]
src/fcntl/open.c [new file with mode: 0644]
src/fcntl/openat.c [new file with mode: 0644]
src/internal/atomic.h [new file with mode: 0644]
src/internal/clone.h [new file with mode: 0644]
src/internal/futex.h [new file with mode: 0644]
src/internal/libc.c [new file with mode: 0644]
src/internal/libc.h [new file with mode: 0644]
src/internal/locale_impl.h [new file with mode: 0644]
src/internal/pthread_impl.h [new file with mode: 0644]
src/internal/stdio_impl.h [new file with mode: 0644]
src/internal/syscall.c [new file with mode: 0644]
src/internal/syscall.h [new file with mode: 0644]
src/internal/util.h [new file with mode: 0644]
src/ipc/ftok.c [new file with mode: 0644]
src/ipc/ipc.h [new file with mode: 0644]
src/ipc/semctl.c [new file with mode: 0644]
src/ipc/semget.c [new file with mode: 0644]
src/ipc/semop.c [new file with mode: 0644]
src/ipc/shmat.c [new file with mode: 0644]
src/ipc/shmctl.c [new file with mode: 0644]
src/ipc/shmdt.c [new file with mode: 0644]
src/ipc/shmget.c [new file with mode: 0644]
src/linux/brk.c [new file with mode: 0644]
src/linux/chroot.c [new file with mode: 0644]
src/linux/daemon.c [new file with mode: 0644]
src/linux/epoll_create.c [new file with mode: 0644]
src/linux/epoll_create1.c [new file with mode: 0644]
src/linux/epoll_ctl.c [new file with mode: 0644]
src/linux/epoll_pwait.c [new file with mode: 0644]
src/linux/epoll_wait.c [new file with mode: 0644]
src/linux/getdtablesize.c [new file with mode: 0644]
src/linux/gethostid.c [new file with mode: 0644]
src/linux/getopt_long.c [new file with mode: 0644]
src/linux/getpagesize.c [new file with mode: 0644]
src/linux/getpass.c [new file with mode: 0644]
src/linux/initgroups.c [new file with mode: 0644]
src/linux/klogctl.c [new file with mode: 0644]
src/linux/mntent.c [new file with mode: 0644]
src/linux/mount.c [new file with mode: 0644]
src/linux/prctl.c [new file with mode: 0644]
src/linux/reboot.c [new file with mode: 0644]
src/linux/sbrk.c [new file with mode: 0644]
src/linux/sendfile.c [new file with mode: 0644]
src/linux/setgroups.c [new file with mode: 0644]
src/linux/sethostname.c [new file with mode: 0644]
src/linux/settimeofday.c [new file with mode: 0644]
src/linux/signalfd.c [new file with mode: 0644]
src/linux/stime.c [new file with mode: 0644]
src/linux/swapoff.c [new file with mode: 0644]
src/linux/swapon.c [new file with mode: 0644]
src/linux/sysinfo.c [new file with mode: 0644]
src/linux/umount.c [new file with mode: 0644]
src/linux/umount2.c [new file with mode: 0644]
src/linux/utimes.c [new file with mode: 0644]
src/linux/wait3.c [new file with mode: 0644]
src/linux/wait4.c [new file with mode: 0644]
src/locale/catclose.c [new file with mode: 0644]
src/locale/catgets.c [new file with mode: 0644]
src/locale/catopen.c [new file with mode: 0644]
src/locale/duplocale.c [new file with mode: 0644]
src/locale/freelocale.c [new file with mode: 0644]
src/locale/iconv.c [new file with mode: 0644]
src/locale/intl.c [new file with mode: 0644]
src/locale/isalnum_l.c [new file with mode: 0644]
src/locale/isalpha_l.c [new file with mode: 0644]
src/locale/isblank_l.c [new file with mode: 0644]
src/locale/iscntrl_l.c [new file with mode: 0644]
src/locale/isdigit_l.c [new file with mode: 0644]
src/locale/isgraph_l.c [new file with mode: 0644]
src/locale/islower_l.c [new file with mode: 0644]
src/locale/isprint_l.c [new file with mode: 0644]
src/locale/ispunct_l.c [new file with mode: 0644]
src/locale/isspace_l.c [new file with mode: 0644]
src/locale/isupper_l.c [new file with mode: 0644]
src/locale/isxdigit_l.c [new file with mode: 0644]
src/locale/langinfo.c [new file with mode: 0644]
src/locale/localeconv.c [new file with mode: 0644]
src/locale/newlocale.c [new file with mode: 0644]
src/locale/nl_langinfo.c [new file with mode: 0644]
src/locale/setlocale.c [new file with mode: 0644]
src/locale/strcoll.c [new file with mode: 0644]
src/locale/strxfrm.c [new file with mode: 0644]
src/locale/tmp [new file with mode: 0644]
src/locale/tolower_l.c [new file with mode: 0644]
src/locale/toupper_l.c [new file with mode: 0644]
src/locale/wcscoll.c [new file with mode: 0644]
src/locale/wcsxfrm.c [new file with mode: 0644]
src/malloc/DESIGN [new file with mode: 0644]
src/malloc/__brk.c [new file with mode: 0644]
src/malloc/__simple_malloc.c [new file with mode: 0644]
src/malloc/calloc.c [new file with mode: 0644]
src/malloc/malloc.c [new file with mode: 0644]
src/malloc/memalign.c [new file with mode: 0644]
src/malloc/posix_memalign.c [new file with mode: 0644]
src/math/__fpclassify.c [new file with mode: 0644]
src/math/__fpclassifyf.c [new file with mode: 0644]
src/math/__fpclassifyl.c [new file with mode: 0644]
src/math/e_acos.c [new file with mode: 0644]
src/math/e_acosf.c [new file with mode: 0644]
src/math/e_acosh.c [new file with mode: 0644]
src/math/e_acoshf.c [new file with mode: 0644]
src/math/e_asin.c [new file with mode: 0644]
src/math/e_asinf.c [new file with mode: 0644]
src/math/e_atan2.c [new file with mode: 0644]
src/math/e_atan2f.c [new file with mode: 0644]
src/math/e_atanh.c [new file with mode: 0644]
src/math/e_atanhf.c [new file with mode: 0644]
src/math/e_cosh.c [new file with mode: 0644]
src/math/e_coshf.c [new file with mode: 0644]
src/math/e_exp.c [new file with mode: 0644]
src/math/e_expf.c [new file with mode: 0644]
src/math/e_fmod.c [new file with mode: 0644]
src/math/e_fmodf.c [new file with mode: 0644]
src/math/e_hypot.c [new file with mode: 0644]
src/math/e_hypotf.c [new file with mode: 0644]
src/math/e_log.c [new file with mode: 0644]
src/math/e_log10.c [new file with mode: 0644]
src/math/e_log10f.c [new file with mode: 0644]
src/math/e_logf.c [new file with mode: 0644]
src/math/e_pow.c [new file with mode: 0644]
src/math/e_powf.c [new file with mode: 0644]
src/math/e_rem_pio2.c [new file with mode: 0644]
src/math/e_rem_pio2f.c [new file with mode: 0644]
src/math/e_remainder.c [new file with mode: 0644]
src/math/e_remainderf.c [new file with mode: 0644]
src/math/e_scalb.c [new file with mode: 0644]
src/math/e_scalbf.c [new file with mode: 0644]
src/math/e_sinh.c [new file with mode: 0644]
src/math/e_sinhf.c [new file with mode: 0644]
src/math/e_sqrt.c [new file with mode: 0644]
src/math/e_sqrtf.c [new file with mode: 0644]
src/math/i386/e_exp.s [new file with mode: 0644]
src/math/i386/e_expf.s [new file with mode: 0644]
src/math/i386/e_log.s [new file with mode: 0644]
src/math/i386/e_log10.s [new file with mode: 0644]
src/math/i386/e_log10f.s [new file with mode: 0644]
src/math/i386/e_logf.s [new file with mode: 0644]
src/math/i386/e_remainder.s [new file with mode: 0644]
src/math/i386/e_remainderf.s [new file with mode: 0644]
src/math/i386/e_sqrt.s [new file with mode: 0644]
src/math/i386/e_sqrtf.s [new file with mode: 0644]
src/math/i386/s_ceil.s [new file with mode: 0644]
src/math/i386/s_ceilf.s [new file with mode: 0644]
src/math/i386/s_fabs.s [new file with mode: 0644]
src/math/i386/s_fabsf.s [new file with mode: 0644]
src/math/i386/s_floor.s [new file with mode: 0644]
src/math/i386/s_floorf.s [new file with mode: 0644]
src/math/i386/s_ldexp.s [new file with mode: 0644]
src/math/i386/s_ldexpf.s [new file with mode: 0644]
src/math/i386/s_rint.s [new file with mode: 0644]
src/math/i386/s_rintf.s [new file with mode: 0644]
src/math/i386/s_scalbln.s [new file with mode: 0644]
src/math/i386/s_scalblnf.s [new file with mode: 0644]
src/math/i386/s_trunc.s [new file with mode: 0644]
src/math/i386/s_truncf.s [new file with mode: 0644]
src/math/k_cos.c [new file with mode: 0644]
src/math/k_cosf.c [new file with mode: 0644]
src/math/k_rem_pio2.c [new file with mode: 0644]
src/math/k_rem_pio2f.c [new file with mode: 0644]
src/math/k_sin.c [new file with mode: 0644]
src/math/k_sinf.c [new file with mode: 0644]
src/math/k_tan.c [new file with mode: 0644]
src/math/k_tanf.c [new file with mode: 0644]
src/math/math_private.h [new file with mode: 0644]
src/math/s_asinh.c [new file with mode: 0644]
src/math/s_asinhf.c [new file with mode: 0644]
src/math/s_atan.c [new file with mode: 0644]
src/math/s_atanf.c [new file with mode: 0644]
src/math/s_cbrt.c [new file with mode: 0644]
src/math/s_cbrtf.c [new file with mode: 0644]
src/math/s_ceil.c [new file with mode: 0644]
src/math/s_ceilf.c [new file with mode: 0644]
src/math/s_copysign.c [new file with mode: 0644]
src/math/s_copysignf.c [new file with mode: 0644]
src/math/s_cos.c [new file with mode: 0644]
src/math/s_cosf.c [new file with mode: 0644]
src/math/s_erf.c [new file with mode: 0644]
src/math/s_erff.c [new file with mode: 0644]
src/math/s_expm1.c [new file with mode: 0644]
src/math/s_expm1f.c [new file with mode: 0644]
src/math/s_fabs.c [new file with mode: 0644]
src/math/s_fabsf.c [new file with mode: 0644]
src/math/s_floor.c [new file with mode: 0644]
src/math/s_floorf.c [new file with mode: 0644]
src/math/s_ilogb.c [new file with mode: 0644]
src/math/s_ilogbf.c [new file with mode: 0644]
src/math/s_ldexp.c [new file with mode: 0644]
src/math/s_ldexpf.c [new file with mode: 0644]
src/math/s_llrint.c [new file with mode: 0644]
src/math/s_log1p.c [new file with mode: 0644]
src/math/s_log1pf.c [new file with mode: 0644]
src/math/s_logb.c [new file with mode: 0644]
src/math/s_logbf.c [new file with mode: 0644]
src/math/s_lrint.c [new file with mode: 0644]
src/math/s_lrintf.c [new file with mode: 0644]
src/math/s_modf.c [new file with mode: 0644]
src/math/s_modff.c [new file with mode: 0644]
src/math/s_nextafter.c [new file with mode: 0644]
src/math/s_nextafterf.c [new file with mode: 0644]
src/math/s_remquo.c [new file with mode: 0644]
src/math/s_remquof.c [new file with mode: 0644]
src/math/s_rint.c [new file with mode: 0644]
src/math/s_rintf.c [new file with mode: 0644]
src/math/s_round.c [new file with mode: 0644]
src/math/s_roundf.c [new file with mode: 0644]
src/math/s_scalbln.c [new file with mode: 0644]
src/math/s_scalblnf.c [new file with mode: 0644]
src/math/s_sin.c [new file with mode: 0644]
src/math/s_sinf.c [new file with mode: 0644]
src/math/s_tan.c [new file with mode: 0644]
src/math/s_tanf.c [new file with mode: 0644]
src/math/s_tanh.c [new file with mode: 0644]
src/math/s_tanhf.c [new file with mode: 0644]
src/math/s_trunc.c [new file with mode: 0644]
src/math/s_truncf.c [new file with mode: 0644]
src/misc/basename.c [new file with mode: 0644]
src/misc/bswap_32.c [new file with mode: 0644]
src/misc/bswap_64.c [new file with mode: 0644]
src/misc/crypt.c [new file with mode: 0644]
src/misc/cuserid.c [new file with mode: 0644]
src/misc/dirname.c [new file with mode: 0644]
src/misc/ffs.c [new file with mode: 0644]
src/misc/ftw.c [new file with mode: 0644]
src/misc/getdomainname.c [new file with mode: 0644]
src/misc/getgrouplist.c [new file with mode: 0644]
src/misc/getopt.c [new file with mode: 0644]
src/misc/getpriority.c [new file with mode: 0644]
src/misc/getrlimit.c [new file with mode: 0644]
src/misc/getrusage.c [new file with mode: 0644]
src/misc/getsubopt.c [new file with mode: 0644]
src/misc/ioctl.c [new file with mode: 0644]
src/misc/lockf.c [new file with mode: 0644]
src/misc/nftw.c [new file with mode: 0644]
src/misc/openpty.c [new file with mode: 0644]
src/misc/pty.c [new file with mode: 0644]
src/misc/realpath.c [new file with mode: 0644]
src/misc/sched_yield.c [new file with mode: 0644]
src/misc/setpriority.c [new file with mode: 0644]
src/misc/setrlimit.c [new file with mode: 0644]
src/misc/syslog.c [new file with mode: 0644]
src/misc/uname.c [new file with mode: 0644]
src/mman/madvise.c [new file with mode: 0644]
src/mman/mlock.c [new file with mode: 0644]
src/mman/mlockall.c [new file with mode: 0644]
src/mman/mmap.c [new file with mode: 0644]
src/mman/mprotect.c [new file with mode: 0644]
src/mman/mremap.c [new file with mode: 0644]
src/mman/msync.c [new file with mode: 0644]
src/mman/munlock.c [new file with mode: 0644]
src/mman/munlockall.c [new file with mode: 0644]
src/mman/munmap.c [new file with mode: 0644]
src/mman/posix_madvise.c [new file with mode: 0644]
src/multibyte/btowc.c [new file with mode: 0644]
src/multibyte/decode.c [new file with mode: 0644]
src/multibyte/internal.c [new file with mode: 0644]
src/multibyte/internal.h [new file with mode: 0644]
src/multibyte/mblen.c [new file with mode: 0644]
src/multibyte/mbrlen.c [new file with mode: 0644]
src/multibyte/mbrtowc.c [new file with mode: 0644]
src/multibyte/mbsinit.c [new file with mode: 0644]
src/multibyte/mbsnrtowcs.c [new file with mode: 0644]
src/multibyte/mbsrtowcs.c [new file with mode: 0644]
src/multibyte/mbstowcs.c [new file with mode: 0644]
src/multibyte/mbtowc.c [new file with mode: 0644]
src/multibyte/wcrtomb.c [new file with mode: 0644]
src/multibyte/wcsnrtombs.c [new file with mode: 0644]
src/multibyte/wcsrtombs.c [new file with mode: 0644]
src/multibyte/wcstombs.c [new file with mode: 0644]
src/multibyte/wctob.c [new file with mode: 0644]
src/multibyte/wctomb.c [new file with mode: 0644]
src/network/__dns.c [new file with mode: 0644]
src/network/__dns.h [new file with mode: 0644]
src/network/__ipparse.c [new file with mode: 0644]
src/network/accept.c [new file with mode: 0644]
src/network/bind.c [new file with mode: 0644]
src/network/connect.c [new file with mode: 0644]
src/network/dn_expand.c [new file with mode: 0644]
src/network/ent.c [new file with mode: 0644]
src/network/freeaddrinfo.c [new file with mode: 0644]
src/network/gai_strerror.c [new file with mode: 0644]
src/network/getaddrinfo.c [new file with mode: 0644]
src/network/gethostbyaddr.c [new file with mode: 0644]
src/network/gethostbyaddr_r.c [new file with mode: 0644]
src/network/gethostbyname.c [new file with mode: 0644]
src/network/gethostbyname2.c [new file with mode: 0644]
src/network/gethostbyname2_r.c [new file with mode: 0644]
src/network/gethostbyname_r.c [new file with mode: 0644]
src/network/getnameinfo.c [new file with mode: 0644]
src/network/getpeername.c [new file with mode: 0644]
src/network/getservbyname.c [new file with mode: 0644]
src/network/getservbyname_r.c [new file with mode: 0644]
src/network/getservbyport.c [new file with mode: 0644]
src/network/getservbyport_r.c [new file with mode: 0644]
src/network/getsockname.c [new file with mode: 0644]
src/network/getsockopt.c [new file with mode: 0644]
src/network/h_errno.c [new file with mode: 0644]
src/network/hstrerror.c [new file with mode: 0644]
src/network/htonl.c [new file with mode: 0644]
src/network/htons.c [new file with mode: 0644]
src/network/in6addr_any.c [new file with mode: 0644]
src/network/in6addr_loopback.c [new file with mode: 0644]
src/network/inet_addr.c [new file with mode: 0644]
src/network/inet_aton.c [new file with mode: 0644]
src/network/inet_ntoa.c [new file with mode: 0644]
src/network/inet_ntop.c [new file with mode: 0644]
src/network/inet_pton.c [new file with mode: 0644]
src/network/listen.c [new file with mode: 0644]
src/network/ntohl.c [new file with mode: 0644]
src/network/ntohs.c [new file with mode: 0644]
src/network/proto.c [new file with mode: 0644]
src/network/recv.c [new file with mode: 0644]
src/network/recvfrom.c [new file with mode: 0644]
src/network/recvmsg.c [new file with mode: 0644]
src/network/res_init.c [new file with mode: 0644]
src/network/res_query.c [new file with mode: 0644]
src/network/send.c [new file with mode: 0644]
src/network/sendmsg.c [new file with mode: 0644]
src/network/sendto.c [new file with mode: 0644]
src/network/serv.c [new file with mode: 0644]
src/network/setsockopt.c [new file with mode: 0644]
src/network/shutdown.c [new file with mode: 0644]
src/network/sockatmark.c [new file with mode: 0644]
src/network/socket.c [new file with mode: 0644]
src/network/socketcall.h [new file with mode: 0644]
src/network/socketpair.c [new file with mode: 0644]
src/passwd/getgr_r.c [new file with mode: 0644]
src/passwd/getgrent.c [new file with mode: 0644]
src/passwd/getgrent_a.c [new file with mode: 0644]
src/passwd/getpw_r.c [new file with mode: 0644]
src/passwd/getpwent.c [new file with mode: 0644]
src/passwd/getpwent_a.c [new file with mode: 0644]
src/passwd/getspent.c [new file with mode: 0644]
src/passwd/getspnam.c [new file with mode: 0644]
src/passwd/getspnam_r.c [new file with mode: 0644]
src/passwd/lckpwdf.c [new file with mode: 0644]
src/passwd/pwf.h [new file with mode: 0644]
src/prng/__rand48_step.c [new file with mode: 0644]
src/prng/__seed48.c [new file with mode: 0644]
src/prng/drand48.c [new file with mode: 0644]
src/prng/lcong48.c [new file with mode: 0644]
src/prng/lrand48.c [new file with mode: 0644]
src/prng/mrand48.c [new file with mode: 0644]
src/prng/rand.c [new file with mode: 0644]
src/prng/rand_r.c [new file with mode: 0644]
src/prng/random.c [new file with mode: 0644]
src/prng/seed48.c [new file with mode: 0644]
src/prng/srand48.c [new file with mode: 0644]
src/prng/srandom.c [new file with mode: 0644]
src/process/execl.c [new file with mode: 0644]
src/process/execle.c [new file with mode: 0644]
src/process/execlp.c [new file with mode: 0644]
src/process/execv.c [new file with mode: 0644]
src/process/execve.c [new file with mode: 0644]
src/process/execvp.c [new file with mode: 0644]
src/process/fork.c [new file with mode: 0644]
src/process/system.c [new file with mode: 0644]
src/process/vfork.c [new file with mode: 0644]
src/process/wait.c [new file with mode: 0644]
src/process/waitid.c [new file with mode: 0644]
src/process/waitpid.c [new file with mode: 0644]
src/regex/fnmatch.c [new file with mode: 0644]
src/regex/glob.c [new file with mode: 0644]
src/regex/regcomp.c [new file with mode: 0644]
src/regex/regerror.c [new file with mode: 0644]
src/regex/regexec.c [new file with mode: 0644]
src/regex/tre-mem.c [new file with mode: 0644]
src/regex/tre.h [new file with mode: 0644]
src/select/poll.c [new file with mode: 0644]
src/select/pselect.c [new file with mode: 0644]
src/select/select.c [new file with mode: 0644]
src/setjmp/i386/longjmp.s [new file with mode: 0644]
src/setjmp/i386/setjmp.s [new file with mode: 0644]
src/setjmp/longjmp.c [new file with mode: 0644]
src/setjmp/setjmp.c [new file with mode: 0644]
src/signal/bsd_signal.c [new file with mode: 0644]
src/signal/getitimer.c [new file with mode: 0644]
src/signal/i386/sigsetjmp.s [new file with mode: 0644]
src/signal/kill.c [new file with mode: 0644]
src/signal/killpg.c [new file with mode: 0644]
src/signal/raise.c [new file with mode: 0644]
src/signal/setitimer.c [new file with mode: 0644]
src/signal/sigaction.c [new file with mode: 0644]
src/signal/sigaddset.c [new file with mode: 0644]
src/signal/sigaltstack.c [new file with mode: 0644]
src/signal/sigdelset.c [new file with mode: 0644]
src/signal/sigemptyset.c [new file with mode: 0644]
src/signal/sigfillset.c [new file with mode: 0644]
src/signal/sighold.c [new file with mode: 0644]
src/signal/sigignore.c [new file with mode: 0644]
src/signal/siginterrupt.c [new file with mode: 0644]
src/signal/sigismember.c [new file with mode: 0644]
src/signal/siglongjmp.c [new file with mode: 0644]
src/signal/signal.c [new file with mode: 0644]
src/signal/sigpause.c [new file with mode: 0644]
src/signal/sigpending.c [new file with mode: 0644]
src/signal/sigprocmask.c [new file with mode: 0644]
src/signal/sigqueue.c [new file with mode: 0644]
src/signal/sigrelse.c [new file with mode: 0644]
src/signal/sigrtmax.c [new file with mode: 0644]
src/signal/sigrtmin.c [new file with mode: 0644]
src/signal/sigset.c [new file with mode: 0644]
src/signal/sigsetjmp.c [new file with mode: 0644]
src/signal/sigsuspend.c [new file with mode: 0644]
src/signal/sigtimedwait.c [new file with mode: 0644]
src/signal/sigwait.c [new file with mode: 0644]
src/signal/sigwaitinfo.c [new file with mode: 0644]
src/stat/chmod.c [new file with mode: 0644]
src/stat/fchmod.c [new file with mode: 0644]
src/stat/fchmodat.c [new file with mode: 0644]
src/stat/fstat.c [new file with mode: 0644]
src/stat/fstatat.c [new file with mode: 0644]
src/stat/fstatvfs.c [new file with mode: 0644]
src/stat/lstat.c [new file with mode: 0644]
src/stat/mkdir.c [new file with mode: 0644]
src/stat/mkdirat.c [new file with mode: 0644]
src/stat/mkfifo.c [new file with mode: 0644]
src/stat/mkfifoat.c [new file with mode: 0644]
src/stat/mknod.c [new file with mode: 0644]
src/stat/mknodat.c [new file with mode: 0644]
src/stat/stat.c [new file with mode: 0644]
src/stat/statvfs.c [new file with mode: 0644]
src/stat/umask.c [new file with mode: 0644]
src/stdio/__fclose_ca.c [new file with mode: 0644]
src/stdio/__fdopen.c [new file with mode: 0644]
src/stdio/__fopen_rb_ca.c [new file with mode: 0644]
src/stdio/__fpending.c [new file with mode: 0644]
src/stdio/__ofl.c [new file with mode: 0644]
src/stdio/__overflow.c [new file with mode: 0644]
src/stdio/__scanf.c [new file with mode: 0644]
src/stdio/__scanf.h [new file with mode: 0644]
src/stdio/__stdio_close.c [new file with mode: 0644]
src/stdio/__stdio_read.c [new file with mode: 0644]
src/stdio/__stdio_seek.c [new file with mode: 0644]
src/stdio/__stdio_write.c [new file with mode: 0644]
src/stdio/__uflow.c [new file with mode: 0644]
src/stdio/__underflow.c [new file with mode: 0644]
src/stdio/asprintf.c [new file with mode: 0644]
src/stdio/clearerr.c [new file with mode: 0644]
src/stdio/dprintf.c [new file with mode: 0644]
src/stdio/fclose.c [new file with mode: 0644]
src/stdio/feof.c [new file with mode: 0644]
src/stdio/ferror.c [new file with mode: 0644]
src/stdio/fflush.c [new file with mode: 0644]
src/stdio/fgetc.c [new file with mode: 0644]
src/stdio/fgetpos.c [new file with mode: 0644]
src/stdio/fgets.c [new file with mode: 0644]
src/stdio/fgetwc.c [new file with mode: 0644]
src/stdio/fgetws.c [new file with mode: 0644]
src/stdio/fileno.c [new file with mode: 0644]
src/stdio/fmemopen.c [new file with mode: 0644]
src/stdio/fopen.c [new file with mode: 0644]
src/stdio/fprintf.c [new file with mode: 0644]
src/stdio/fputc.c [new file with mode: 0644]
src/stdio/fputs.c [new file with mode: 0644]
src/stdio/fputwc.c [new file with mode: 0644]
src/stdio/fputws.c [new file with mode: 0644]
src/stdio/fread.c [new file with mode: 0644]
src/stdio/freopen.c [new file with mode: 0644]
src/stdio/fscanf.c [new file with mode: 0644]
src/stdio/fseek.c [new file with mode: 0644]
src/stdio/fsetpos.c [new file with mode: 0644]
src/stdio/ftell.c [new file with mode: 0644]
src/stdio/fwide.c [new file with mode: 0644]
src/stdio/fwrite.c [new file with mode: 0644]
src/stdio/fwscanf.c [new file with mode: 0644]
src/stdio/getc.c [new file with mode: 0644]
src/stdio/getc_unlocked.c [new file with mode: 0644]
src/stdio/getchar.c [new file with mode: 0644]
src/stdio/getchar_unlocked.c [new file with mode: 0644]
src/stdio/getdelim.c [new file with mode: 0644]
src/stdio/getline.c [new file with mode: 0644]
src/stdio/gets.c [new file with mode: 0644]
src/stdio/getw.c [new file with mode: 0644]
src/stdio/getwc.c [new file with mode: 0644]
src/stdio/getwchar.c [new file with mode: 0644]
src/stdio/pclose.c [new file with mode: 0644]
src/stdio/perror.c [new file with mode: 0644]
src/stdio/popen.c [new file with mode: 0644]
src/stdio/printf.c [new file with mode: 0644]
src/stdio/putc.c [new file with mode: 0644]
src/stdio/putc_unlocked.c [new file with mode: 0644]
src/stdio/putchar.c [new file with mode: 0644]
src/stdio/putchar_unlocked.c [new file with mode: 0644]
src/stdio/puts.c [new file with mode: 0644]
src/stdio/putw.c [new file with mode: 0644]
src/stdio/putwc.c [new file with mode: 0644]
src/stdio/putwchar.c [new file with mode: 0644]
src/stdio/remove.c [new file with mode: 0644]
src/stdio/rename.c [new file with mode: 0644]
src/stdio/rewind.c [new file with mode: 0644]
src/stdio/scanf.c [new file with mode: 0644]
src/stdio/setbuf.c [new file with mode: 0644]
src/stdio/setvbuf.c [new file with mode: 0644]
src/stdio/snprintf.c [new file with mode: 0644]
src/stdio/sprintf.c [new file with mode: 0644]
src/stdio/sscanf.c [new file with mode: 0644]
src/stdio/stderr.c [new file with mode: 0644]
src/stdio/stdin.c [new file with mode: 0644]
src/stdio/stdout.c [new file with mode: 0644]
src/stdio/swscanf.c [new file with mode: 0644]
src/stdio/tempnam.c [new file with mode: 0644]
src/stdio/tmpfile.c [new file with mode: 0644]
src/stdio/tmpnam.c [new file with mode: 0644]
src/stdio/ungetc.c [new file with mode: 0644]
src/stdio/ungetwc.c [new file with mode: 0644]
src/stdio/vasprintf.c [new file with mode: 0644]
src/stdio/vdprintf.c [new file with mode: 0644]
src/stdio/vfprintf.c [new file with mode: 0644]
src/stdio/vfscanf.c [new file with mode: 0644]
src/stdio/vfwscanf.c [new file with mode: 0644]
src/stdio/vprintf.c [new file with mode: 0644]
src/stdio/vscanf.c [new file with mode: 0644]
src/stdio/vsnprintf.c [new file with mode: 0644]
src/stdio/vsprintf.c [new file with mode: 0644]
src/stdio/vsscanf.c [new file with mode: 0644]
src/stdio/vswscanf.c [new file with mode: 0644]
src/stdio/vwscanf.c [new file with mode: 0644]
src/stdio/wscanf.c [new file with mode: 0644]
src/stdlib/abs.c [new file with mode: 0644]
src/stdlib/atof.c [new file with mode: 0644]
src/stdlib/atoi.c [new file with mode: 0644]
src/stdlib/atol.c [new file with mode: 0644]
src/stdlib/atoll.c [new file with mode: 0644]
src/stdlib/bsearch.c [new file with mode: 0644]
src/stdlib/div.c [new file with mode: 0644]
src/stdlib/frexp.c [new file with mode: 0644]
src/stdlib/frexpf.c [new file with mode: 0644]
src/stdlib/frexpl.c [new file with mode: 0644]
src/stdlib/imaxabs.c [new file with mode: 0644]
src/stdlib/imaxdiv.c [new file with mode: 0644]
src/stdlib/labs.c [new file with mode: 0644]
src/stdlib/ldiv.c [new file with mode: 0644]
src/stdlib/llabs.c [new file with mode: 0644]
src/stdlib/lldiv.c [new file with mode: 0644]
src/stdlib/qsort.c [new file with mode: 0644]
src/stdlib/strtod.c [new file with mode: 0644]
src/stdlib/strtof.c [new file with mode: 0644]
src/stdlib/strtoimax.c [new file with mode: 0644]
src/stdlib/strtol.c [new file with mode: 0644]
src/stdlib/strtold.c [new file with mode: 0644]
src/stdlib/strtoll.c [new file with mode: 0644]
src/stdlib/strtoul.c [new file with mode: 0644]
src/stdlib/strtoull.c [new file with mode: 0644]
src/stdlib/strtoumax.c [new file with mode: 0644]
src/stdlib/wcstoimax.c [new file with mode: 0644]
src/stdlib/wcstol.c [new file with mode: 0644]
src/stdlib/wcstoll.c [new file with mode: 0644]
src/stdlib/wcstoul.c [new file with mode: 0644]
src/stdlib/wcstoull.c [new file with mode: 0644]
src/stdlib/wcstoumax.c [new file with mode: 0644]
src/string/bcmp.c [new file with mode: 0644]
src/string/bcopy.c [new file with mode: 0644]
src/string/bzero.c [new file with mode: 0644]
src/string/index.c [new file with mode: 0644]
src/string/memchr.c [new file with mode: 0644]
src/string/memcmp.c [new file with mode: 0644]
src/string/memcpy.c [new file with mode: 0644]
src/string/memmove.c [new file with mode: 0644]
src/string/mempcpy.c [new file with mode: 0644]
src/string/memset.c [new file with mode: 0644]
src/string/rindex.c [new file with mode: 0644]
src/string/stpcpy.c [new file with mode: 0644]
src/string/stpncpy.c [new file with mode: 0644]
src/string/strcasecmp.c [new file with mode: 0644]
src/string/strcasestr.c [new file with mode: 0644]
src/string/strcat.c [new file with mode: 0644]
src/string/strchr.c [new file with mode: 0644]
src/string/strchrnul.c [new file with mode: 0644]
src/string/strcmp.c [new file with mode: 0644]
src/string/strcpy.c [new file with mode: 0644]
src/string/strcspn.c [new file with mode: 0644]
src/string/strdup.c [new file with mode: 0644]
src/string/strerror_r.c [new file with mode: 0644]
src/string/strlcat.c [new file with mode: 0644]
src/string/strlcpy.c [new file with mode: 0644]
src/string/strlen.c [new file with mode: 0644]
src/string/strncasecmp.c [new file with mode: 0644]
src/string/strncat.c [new file with mode: 0644]
src/string/strncmp.c [new file with mode: 0644]
src/string/strncpy.c [new file with mode: 0644]
src/string/strndup.c [new file with mode: 0644]
src/string/strnlen.c [new file with mode: 0644]
src/string/strpbrk.c [new file with mode: 0644]
src/string/strrchr.c [new file with mode: 0644]
src/string/strsep.c [new file with mode: 0644]
src/string/strsignal.c [new file with mode: 0644]
src/string/strspn.c [new file with mode: 0644]
src/string/strstr.c [new file with mode: 0644]
src/string/strtok.c [new file with mode: 0644]
src/string/strtok_r.c [new file with mode: 0644]
src/string/swab.c [new file with mode: 0644]
src/string/wcscat.c [new file with mode: 0644]
src/string/wcschr.c [new file with mode: 0644]
src/string/wcscmp.c [new file with mode: 0644]
src/string/wcscpy.c [new file with mode: 0644]
src/string/wcscspn.c [new file with mode: 0644]
src/string/wcslen.c [new file with mode: 0644]
src/string/wcsncat.c [new file with mode: 0644]
src/string/wcsncmp.c [new file with mode: 0644]
src/string/wcsncpy.c [new file with mode: 0644]
src/string/wcspbrk.c [new file with mode: 0644]
src/string/wcsrchr.c [new file with mode: 0644]
src/string/wcsspn.c [new file with mode: 0644]
src/string/wcsstr.c [new file with mode: 0644]
src/string/wcswcs.c [new file with mode: 0644]
src/string/wmemchr.c [new file with mode: 0644]
src/string/wmemcmp.c [new file with mode: 0644]
src/string/wmemcpy.c [new file with mode: 0644]
src/string/wmemmove.c [new file with mode: 0644]
src/string/wmemset.c [new file with mode: 0644]
src/stub/utmpx.c [new file with mode: 0644]
src/temp/mkdtemp.c [new file with mode: 0644]
src/temp/mkstemp.c [new file with mode: 0644]
src/temp/mktemp.c [new file with mode: 0644]
src/termios/cfgetospeed.c [new file with mode: 0644]
src/termios/cfsetospeed.c [new file with mode: 0644]
src/termios/tcdrain.c [new file with mode: 0644]
src/termios/tcflow.c [new file with mode: 0644]
src/termios/tcflush.c [new file with mode: 0644]
src/termios/tcgetattr.c [new file with mode: 0644]
src/termios/tcgetsid.c [new file with mode: 0644]
src/termios/tcsendbreak.c [new file with mode: 0644]
src/termios/tcsetattr.c [new file with mode: 0644]
src/thread/__futex.c [new file with mode: 0644]
src/thread/__lock.c [new file with mode: 0644]
src/thread/__set_thread_area.c [new file with mode: 0644]
src/thread/__timedwait.c [new file with mode: 0644]
src/thread/__unmapself.c [new file with mode: 0644]
src/thread/__wait.c [new file with mode: 0644]
src/thread/__wake.c [new file with mode: 0644]
src/thread/cancellation.c [new file with mode: 0644]
src/thread/clone.c [new file with mode: 0644]
src/thread/i386/__unmapself.s [new file with mode: 0644]
src/thread/i386/clone.s [new file with mode: 0644]
src/thread/pthread_attr_destroy.c [new file with mode: 0644]
src/thread/pthread_attr_getdetachstate.c [new file with mode: 0644]
src/thread/pthread_attr_getguardsize.c [new file with mode: 0644]
src/thread/pthread_attr_getscope.c [new file with mode: 0644]
src/thread/pthread_attr_getstacksize.c [new file with mode: 0644]
src/thread/pthread_attr_init.c [new file with mode: 0644]
src/thread/pthread_attr_setdetachstate.c [new file with mode: 0644]
src/thread/pthread_attr_setguardsize.c [new file with mode: 0644]
src/thread/pthread_attr_setscope.c [new file with mode: 0644]
src/thread/pthread_attr_setstacksize.c [new file with mode: 0644]
src/thread/pthread_barrier_destroy.c [new file with mode: 0644]
src/thread/pthread_barrier_init.c [new file with mode: 0644]
src/thread/pthread_barrier_wait.c [new file with mode: 0644]
src/thread/pthread_cancel.c [new file with mode: 0644]
src/thread/pthread_cond_broadcast.c [new file with mode: 0644]
src/thread/pthread_cond_destroy.c [new file with mode: 0644]
src/thread/pthread_cond_init.c [new file with mode: 0644]
src/thread/pthread_cond_signal.c [new file with mode: 0644]
src/thread/pthread_cond_timedwait.c [new file with mode: 0644]
src/thread/pthread_cond_wait.c [new file with mode: 0644]
src/thread/pthread_create.c [new file with mode: 0644]
src/thread/pthread_detach.c [new file with mode: 0644]
src/thread/pthread_equal.c [new file with mode: 0644]
src/thread/pthread_exit.c [new file with mode: 0644]
src/thread/pthread_getspecific.c [new file with mode: 0644]
src/thread/pthread_join.c [new file with mode: 0644]
src/thread/pthread_key_create.c [new file with mode: 0644]
src/thread/pthread_key_delete.c [new file with mode: 0644]
src/thread/pthread_kill.c [new file with mode: 0644]
src/thread/pthread_mutex_destroy.c [new file with mode: 0644]
src/thread/pthread_mutex_init.c [new file with mode: 0644]
src/thread/pthread_mutex_lock.c [new file with mode: 0644]
src/thread/pthread_mutex_timedlock.c [new file with mode: 0644]
src/thread/pthread_mutex_trylock.c [new file with mode: 0644]
src/thread/pthread_mutex_unlock.c [new file with mode: 0644]
src/thread/pthread_mutexattr_destroy.c [new file with mode: 0644]
src/thread/pthread_mutexattr_gettype.c [new file with mode: 0644]
src/thread/pthread_mutexattr_init.c [new file with mode: 0644]
src/thread/pthread_mutexattr_settype.c [new file with mode: 0644]
src/thread/pthread_once.c [new file with mode: 0644]
src/thread/pthread_rwlock_destroy.c [new file with mode: 0644]
src/thread/pthread_rwlock_init.c [new file with mode: 0644]
src/thread/pthread_rwlock_rdlock.c [new file with mode: 0644]
src/thread/pthread_rwlock_timedrdlock.c [new file with mode: 0644]
src/thread/pthread_rwlock_timedwrlock.c [new file with mode: 0644]
src/thread/pthread_rwlock_tryrdlock.c [new file with mode: 0644]
src/thread/pthread_rwlock_trywrlock.c [new file with mode: 0644]
src/thread/pthread_rwlock_unlock.c [new file with mode: 0644]
src/thread/pthread_rwlock_wrlock.c [new file with mode: 0644]
src/thread/pthread_self.c [new file with mode: 0644]
src/thread/pthread_setcancelstate.c [new file with mode: 0644]
src/thread/pthread_setcanceltype.c [new file with mode: 0644]
src/thread/pthread_setspecific.c [new file with mode: 0644]
src/thread/pthread_spin_destroy.c [new file with mode: 0644]
src/thread/pthread_spin_init.c [new file with mode: 0644]
src/thread/pthread_spin_lock.c [new file with mode: 0644]
src/thread/pthread_spin_trylock.c [new file with mode: 0644]
src/thread/pthread_spin_unlock.c [new file with mode: 0644]
src/thread/pthread_testcancel.c [new file with mode: 0644]
src/time/__asctime.c [new file with mode: 0644]
src/time/__time.h [new file with mode: 0644]
src/time/__time_to_tm.c [new file with mode: 0644]
src/time/__tm_to_time.c [new file with mode: 0644]
src/time/asctime.c [new file with mode: 0644]
src/time/asctime_r.c [new file with mode: 0644]
src/time/clock.c [new file with mode: 0644]
src/time/clock_gettime.c [new file with mode: 0644]
src/time/ctime.c [new file with mode: 0644]
src/time/ctime_r.c [new file with mode: 0644]
src/time/difftime.c [new file with mode: 0644]
src/time/gettimeofday.c [new file with mode: 0644]
src/time/gmtime.c [new file with mode: 0644]
src/time/gmtime_r.c [new file with mode: 0644]
src/time/localtime.c [new file with mode: 0644]
src/time/localtime_r.c [new file with mode: 0644]
src/time/mktime.c [new file with mode: 0644]
src/time/nanosleep.c [new file with mode: 0644]
src/time/strftime.c [new file with mode: 0644]
src/time/strptime.c [new file with mode: 0644]
src/time/time.c [new file with mode: 0644]
src/time/times.c [new file with mode: 0644]
src/time/timezone.s [new file with mode: 0644]
src/time/tzset.c [new file with mode: 0644]
src/time/utime.c [new file with mode: 0644]
src/unistd/_exit.c [new file with mode: 0644]
src/unistd/access.c [new file with mode: 0644]
src/unistd/alarm.c [new file with mode: 0644]
src/unistd/chdir.c [new file with mode: 0644]
src/unistd/chown.c [new file with mode: 0644]
src/unistd/close.c [new file with mode: 0644]
src/unistd/confstr.c [new file with mode: 0644]
src/unistd/ctermid.c [new file with mode: 0644]
src/unistd/dup.c [new file with mode: 0644]
src/unistd/dup2.c [new file with mode: 0644]
src/unistd/faccessat.c [new file with mode: 0644]
src/unistd/fchdir.c [new file with mode: 0644]
src/unistd/fchown.c [new file with mode: 0644]
src/unistd/fchownat.c [new file with mode: 0644]
src/unistd/fdatasync.c [new file with mode: 0644]
src/unistd/fsync.c [new file with mode: 0644]
src/unistd/ftruncate.c [new file with mode: 0644]
src/unistd/getcwd.c [new file with mode: 0644]
src/unistd/getegid.c [new file with mode: 0644]
src/unistd/geteuid.c [new file with mode: 0644]
src/unistd/getgid.c [new file with mode: 0644]
src/unistd/getgroups.c [new file with mode: 0644]
src/unistd/gethostname.c [new file with mode: 0644]
src/unistd/getlogin.c [new file with mode: 0644]
src/unistd/getlogin_r.c [new file with mode: 0644]
src/unistd/getpgid.c [new file with mode: 0644]
src/unistd/getpgrp.c [new file with mode: 0644]
src/unistd/getpid.c [new file with mode: 0644]
src/unistd/getppid.c [new file with mode: 0644]
src/unistd/getsid.c [new file with mode: 0644]
src/unistd/getuid.c [new file with mode: 0644]
src/unistd/isatty.c [new file with mode: 0644]
src/unistd/lchown.c [new file with mode: 0644]
src/unistd/link.c [new file with mode: 0644]
src/unistd/linkat.c [new file with mode: 0644]
src/unistd/lseek.c [new file with mode: 0644]
src/unistd/nice.c [new file with mode: 0644]
src/unistd/pause.c [new file with mode: 0644]
src/unistd/pipe.c [new file with mode: 0644]
src/unistd/pread.c [new file with mode: 0644]
src/unistd/pwrite.c [new file with mode: 0644]
src/unistd/read.c [new file with mode: 0644]
src/unistd/readlink.c [new file with mode: 0644]
src/unistd/readlinkat.c [new file with mode: 0644]
src/unistd/readv.c [new file with mode: 0644]
src/unistd/renameat.c [new file with mode: 0644]
src/unistd/rmdir.c [new file with mode: 0644]
src/unistd/setegid.c [new file with mode: 0644]
src/unistd/seteuid.c [new file with mode: 0644]
src/unistd/setgid.c [new file with mode: 0644]
src/unistd/setpgid.c [new file with mode: 0644]
src/unistd/setpgrp.c [new file with mode: 0644]
src/unistd/setregid.c [new file with mode: 0644]
src/unistd/setreuid.c [new file with mode: 0644]
src/unistd/setsid.c [new file with mode: 0644]
src/unistd/setuid.c [new file with mode: 0644]
src/unistd/sleep.c [new file with mode: 0644]
src/unistd/symlink.c [new file with mode: 0644]
src/unistd/symlinkat.c [new file with mode: 0644]
src/unistd/sync.c [new file with mode: 0644]
src/unistd/tcgetpgrp.c [new file with mode: 0644]
src/unistd/tcsetpgrp.c [new file with mode: 0644]
src/unistd/truncate.c [new file with mode: 0644]
src/unistd/ttyname.c [new file with mode: 0644]
src/unistd/ttyname_r.c [new file with mode: 0644]
src/unistd/ualarm.c [new file with mode: 0644]
src/unistd/unlink.c [new file with mode: 0644]
src/unistd/unlinkat.c [new file with mode: 0644]
src/unistd/usleep.c [new file with mode: 0644]
src/unistd/write.c [new file with mode: 0644]
src/unistd/writev.c [new file with mode: 0644]
tools/gen-musl-gcc.sh [new file with mode: 0644]

diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..223ede7
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,504 @@
+                 GNU LESSER GENERAL PUBLIC LICENSE
+                      Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+\f
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+\f
+                 GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/COPYRIGHT b/COPYRIGHT
new file mode 100644 (file)
index 0000000..30a74a2
--- /dev/null
+++ b/COPYRIGHT
@@ -0,0 +1,31 @@
+musl as a whole is licensed under the GNU LGPL version 2.1 or later.
+See the file COPYING for the text of this license.
+
+See below for the copyright status on all code included in musl:
+
+The TRE regular expression implementation (src/regex/reg* and
+src/regex/tre*) is Copyright © 2001-2006 Ville Laurikari and licensed
+under the terms of the GNU LGPL version 2.1 or later. The included
+version was heavily modified in Spring 2006 by Rich Felker in the
+interests of size, simplicity, and namespace cleanliness.
+
+Most of the math library code (src/math/*) is Copyright © 1993 Sun
+Microsystems, Inc. Some files are Copyright © 2003 Steven G. Kargl and
+labelled as such. All have been licensed under extremely permissive
+terms which are compatible with the GNU LGPL. See the comments in the
+individual files for details.
+
+The implementation of DES for crypt (src/misc/crypt.c) is Copyright ©
+1994 David Burren. It is licensed under a BSD license compatible with
+the GNU LGPL.
+
+All files which have no copyright comments are original works
+Copyright © 2005-2011 Rich Felker, the main author of this library.
+The decision to exclude such comments is intentional, as it should be
+possible to carry around the complete source code on tiny storage
+media. All public header files (include/*) should be treated as Public
+Domain as they intentionally contain no content which can be covered
+by copyright. Some source modules may fall in this category as well.
+If you believe that a file is so trivial that it should be in the
+Public Domain, please contact me and, if I agree, I will explicitly
+release it from copyright.
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..2470a5b
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,61 @@
+
+A quick-and-simple guide to installing musl:
+
+
+STEP 1: Configuration
+
+Edit config.mak to override installation prefix, compiler options,
+etc. as needed. The defaults should be okay for trying out musl with
+static linking only. The only arch supported at present is i386. If
+you're on an x86_64 machine, you can add -m32 to the compiler options
+to build a working 32bit musl. In this case you will also need to add
+-m32 in two locations in the generated tools/musl-gcc script if you
+intend to use it.
+
+DO NOT set the prefix to /, /usr, or even /usr/local unless you really
+know what you're doing! You'll probably break your system such that
+you'll no longer be able to compile and link programs against glibc!
+This kind of setup should only be used if you're building a system
+where musl is the default/primary/only libc.
+
+The default prefix is /usr/local/musl for a reason, but some people
+may prefer /opt/musl or $HOME/musl.
+
+
+STEP 2: Compiling
+
+Run "make". (GNU make is required.)
+
+
+STEP 3: Installation
+
+With appropriate privileges, run "make install".
+
+
+STEP 4: Using the gcc wrapper.
+
+musl comes with a script "musl-gcc" (installed in /usr/local/bin by
+default) that can be used to compile and link C programs against musl.
+It requires a version of gcc with the -wrapper option (gcc 4.x should
+work). For example:
+
+cat > hello.c <<EOF
+#include <stdio.h>
+int main()
+{
+       printf("hello, world!\n");
+       return 0;
+}
+EOF
+musl-gcc hello.c
+./a.out
+
+For compiling programs that use autoconf, you'll need to configure
+them with a command like this:
+
+CC=musl-gcc ./configure
+
+Be aware that (at present) libraries linked against glibc are unlikely
+to be usable, and the musl-gcc wrapper inhibits search of the system
+library paths in any case. You'll need to compile any prerequisite
+libraries (like ncurses, glib, etc.) yourself.
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..e4235cb
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,97 @@
+#
+# Makefile for musl (requires GNU make)
+#
+# This is how simple every makefile should be...
+# No, I take that back - actually most should be less than half this size.
+#
+# Use config.mak to override any of the following variables.
+# Do not make changes here.
+#
+
+exec_prefix = /usr/local
+bindir = $(exec_prefix)/bin
+
+prefix = /usr/local/musl
+includedir = $(prefix)/include
+libdir = $(prefix)/lib
+
+SRCS = $(sort $(wildcard src/*/*.c))
+OBJS = $(SRCS:.c=.o)
+LOBJS = $(OBJS:.o=.lo)
+GENH = include/bits/alltypes.h
+
+CFLAGS  = -Os -nostdinc -ffreestanding -pipe
+LDFLAGS = -nostdlib -shared -Wl,-Bsymbolic
+INC     = -I./include -I./src/internal
+PIC     = -fPIC
+AR      = $(CROSS_COMPILE)ar
+RANLIB  = $(CROSS_COMPILE)ranlib
+OBJCOPY = $(CROSS_COMPILE)objcopy
+
+ALL_INCLUDES = $(sort $(wildcard include/*.h include/*/*.h) $(GENH))
+
+EMPTY_LIB_NAMES = m rt pthread crypt util xnet resolv
+EMPTY_LIBS = $(EMPTY_LIB_NAMES:%=lib/lib%.a)
+CRT_LIBS = lib/crt1.o lib/crti.o lib/crtn.o
+LIBC_LIBS = lib/libc.a
+ALL_LIBS = $(LIBC_LIBS) $(CRT_LIBS) $(EMPTY_LIBS)
+
+ALL_TOOLS = tools/musl-gcc
+
+-include config.mak
+
+all: $(ALL_LIBS) $(ALL_TOOLS)
+
+install: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(ALL_INCLUDES:include/%=$(DESTDIR)$(includedir)/%) $(ALL_TOOLS:tools/%=$(DESTDIR)$(bindir)/%)
+
+clean:
+       rm -f crt/*.o
+       rm -f $(OBJS)
+       rm -f $(LOBJS)
+       rm -f $(ALL_LIBS) lib/*
+       rm -f $(ALL_TOOLS)
+       rm -f $(GENH) 
+
+include/bits/alltypes.h: include/bits/alltypes.h.sh
+       sh $< > $@
+
+%.o: $(ARCH)/%.s
+       $(CC) $(CFLAGS) $(INC) -c -o $@ $<
+
+%.o: %.c $(GENH)
+       $(CC) $(CFLAGS) $(INC) -c -o $@ $<
+
+%.lo: $(ARCH)/%.s
+       $(CC) $(CFLAGS) $(INC) $(PIC) -c -o $@ $<
+
+%.lo: %.c $(GENH)
+       $(CC) $(CFLAGS) $(INC) $(PIC) -c -o $@ $<
+
+lib/libc.so: $(LOBJS)
+       $(CC) $(LDFLAGS) -o $@ $(LOBJS) -lgcc
+       $(OBJCOPY) --weaken $@
+
+lib/libc.a: $(OBJS)
+       rm -f $@
+       $(AR) rc $@ $(OBJS)
+       $(RANLIB) $@
+
+$(EMPTY_LIBS):
+       $(AR) rc $@
+
+lib/%.o: crt/%.o
+       cp $< $@
+
+tools/musl-gcc: tools/gen-musl-gcc.sh config.mak
+       sh $< "$(prefix)" > $@ || { rm -f $@ ; exit 1 ; }
+       chmod +x $@
+
+$(DESTDIR)$(bindir)/%: tools/%
+       install -D $< $@
+
+$(DESTDIR)$(prefix)/%: %
+       install -D -m 644 $< $@
+
+.PRECIOUS: $(CRT_LIBS:lib/%=crt/%)
+
+.PHONY: all clean install
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..a57541c
--- /dev/null
+++ b/README
@@ -0,0 +1,44 @@
+
+musl libc - a new standard library to power a new generation of
+Linux-based devices. musl is lightweight, fast, simple, free, and
+strives to be correct in the sense of standards-conformance and
+safety.
+
+musl is an alternative to glibc, eglibc, uClibc, dietlibc, and klibc.
+For reasons why one might prefer musl, please see the FAQ and libc
+comparison chart on the project website,
+
+    http://www.etalabs.net/musl/
+
+For installation instructions, see the INSTALL file.
+
+Please refer to the COPYRIGHT file for details on the copyright status
+of code included in musl, and the COPYING file for the license (LGPL)
+under which the library as a whole is distributed.
+
+
+
+Greetings libc hackers!
+
+This package is an _alpha_ release of musl, intended for the curious
+and the adventurous. While it can be used to build a complete small
+Linux system (musl is self-hosted on the system I use to develop it),
+at this point doing so requires a lot of manual effort. Nonetheless, I
+hope low-level Linux enthusiasts will try out building some compact
+static binaries with musl using the provided gcc wrapper (which allows
+you to link programs with musl on a "standard" glibc Linux system),
+find whatever embarassing bugs I've let slip through, and provide
+feedback on issues encountered building various software against musl.
+
+Please visit #musl on Freenode IRC or contact me via email at dalias
+AT etalabs DOT net for bug reports, support requests, or to get
+involved in development. As this has been a one-person project so far,
+mailing lists will be setup in due time on an as-needed basis.
+
+Thank you for trying out musl.
+
+Cheers,
+
+Rich Felker / dalias
+
+
diff --git a/crt/crt1.c b/crt/crt1.c
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/crt/crti.c b/crt/crti.c
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/crt/crtn.c b/crt/crtn.c
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/crt/i386/crt1.s b/crt/i386/crt1.s
new file mode 100644 (file)
index 0000000..050adec
--- /dev/null
@@ -0,0 +1,17 @@
+.text
+.global _start
+_start:
+       xorl %ebp,%ebp
+       popl %ecx
+       movl %esp,%eax
+       andl $-16,%esp
+       pushl %esp
+       pushl %esp
+       pushl %edx
+       pushl $0
+       pushl $0
+       pushl %eax
+       pushl %ecx
+       pushl $main
+       call __libc_start_main
+.L0:   jmp .L0
diff --git a/dist/config.mak b/dist/config.mak
new file mode 100644 (file)
index 0000000..5120552
--- /dev/null
@@ -0,0 +1,25 @@
+#
+# musl config.mak template (original in dist/config.mak)
+#
+
+# Target CPU architecture. Supported values: i386
+ARCH = i386
+
+# Installation prefix. DO NOT use /, /usr, or /usr/local !
+prefix = /usr/local/musl
+
+# Installation prefix for musl-gcc compiler wrapper.
+exec_prefix = /usr/local
+
+# Uncomment if you want to build i386 musl on a 64-bit host
+#CFLAGS += -m32
+
+# Uncomment for smaller code size.
+#CFLAGS += -fomit-frame-pointer -mno-accumulate-outgoing-args
+
+# Uncomment for warnings (as errors). Might need tuning to your gcc version.
+#CFLAGS += -Werror -Wall -Wpointer-arith -Wcast-align -Wno-parentheses -Wno-char-subscripts -Wno-uninitialized -Wno-sequence-point -Wno-missing-braces -Wno-unused-value
+#CFLAGS += -Wno-pointer-sign
+
+# Uncomment if you want to build a shared library (experimental).
+#LIBC_LIBS += lib/libc.so
diff --git a/include/alloca.h b/include/alloca.h
new file mode 100644 (file)
index 0000000..ac78e46
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef        _ALLOCA_H
+#define        _ALLOCA_H
+
+#define        __NEED_size_t
+#include <bits/alltypes.h>
+
+void *alloca(size_t);
+
+#endif
diff --git a/include/arpa/inet.h b/include/arpa/inet.h
new file mode 100644 (file)
index 0000000..9342713
--- /dev/null
@@ -0,0 +1,33 @@
+#ifndef _ARPA_INET_H
+#define        _ARPA_INET_H
+
+#include <netinet/in.h>
+#include <inttypes.h>
+
+#define __NEED_socklen_t
+#define __NEED_in_addr_t
+#define __NEED_in_port_t
+#define __NEED_uint16_t
+#define __NEED_uint32_t
+#define __NEED_struct_in_addr
+
+#include <bits/alltypes.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 *);
+char *inet_ntoa (struct in_addr);
+int inet_pton (int, const char *, void *);
+const char *inet_ntop (int, const void *, char *, socklen_t);
+
+int inet_aton (const char *, struct in_addr *); /* nonstandard but widely used */
+
+#undef INET_ADDRSTRLEN
+#undef INET6_ADDRSTRLEN
+#define INET_ADDRSTRLEN  16
+#define INET6_ADDRSTRLEN 46
+
+#endif
diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
new file mode 100644 (file)
index 0000000..0f85460
--- /dev/null
@@ -0,0 +1,465 @@
+#ifndef _ARPA_NAMESER_H_
+#define _ARPA_NAMESER_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)
+
+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_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_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) do { \
+       register const unsigned char *t_cp = (const unsigned char *)(cp); \
+       (s) = ((uint16_t)t_cp[0] << 8) \
+           | ((uint16_t)t_cp[1]) \
+           ; \
+       (cp) += NS_INT16SZ; \
+} while (0)
+
+#define NS_GET32(l, cp) do { \
+       register const unsigned char *t_cp = (const unsigned char *)(cp); \
+       (l) = ((uint32_t)t_cp[0] << 24) \
+           | ((uint32_t)t_cp[1] << 16) \
+           | ((uint32_t)t_cp[2] << 8) \
+           | ((uint32_t)t_cp[3]) \
+           ; \
+       (cp) += NS_INT32SZ; \
+} while (0)
+
+#define NS_PUT16(s, cp) do { \
+       register uint16_t t_s = (uint16_t)(s); \
+       register unsigned char *t_cp = (unsigned char *)(cp); \
+       *t_cp++ = t_s >> 8; \
+       *t_cp   = t_s; \
+       (cp) += NS_INT16SZ; \
+} while (0)
+
+#define NS_PUT32(l, cp) do { \
+       register uint32_t t_l = (uint32_t)(l); \
+       register unsigned char *t_cp = (unsigned char *)(cp); \
+       *t_cp++ = t_l >> 24; \
+       *t_cp++ = t_l >> 16; \
+       *t_cp++ = t_l >> 8; \
+       *t_cp   = t_l; \
+       (cp) += NS_INT32SZ; \
+} while (0)
+
+
+
+
+#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_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 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
+
+#endif
diff --git a/include/arpa/telnet.h b/include/arpa/telnet.h
new file mode 100644 (file)
index 0000000..e2ad974
--- /dev/null
@@ -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
diff --git a/include/assert.h b/include/assert.h
new file mode 100644 (file)
index 0000000..bad2ccd
--- /dev/null
@@ -0,0 +1,17 @@
+#undef assert
+
+#ifdef NDEBUG
+#define        assert(x) (void)0
+#else
+#define assert(x) ((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0))
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void __assert_fail (const char *, const char *, int, const char *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/include/bits/alltypes.h.sh b/include/bits/alltypes.h.sh
new file mode 100755 (executable)
index 0000000..595bf13
--- /dev/null
@@ -0,0 +1,115 @@
+#!/bin/sh
+sed -e << EOF \
+'/^TYPEDEF/s/TYPEDEF \(.*\) \([^ ]*\);$/#if defined(__NEED_\2) \&\& !defined(__DEFINED_\2)\
+typedef \1 \2;\
+#define __DEFINED_\2\
+#endif\
+/
+/^STRUCT/s/STRUCT * \([^ ]*\) \(.*\);$/#if defined(__NEED_struct_\1) \&\& !defined(__DEFINED_struct_\1)\
+struct \1 \2;\
+#define __DEFINED_struct_\1\
+#endif\
+/
+/^UNION/s/UNION * \([^ ]*\) \(.*\);$/#if defined(__NEED_union_\1) \&\& !defined(__DEFINED_union_\1)\
+union \1 \2;\
+#define __DEFINED_union_\1\
+#endif\
+/'
+
+TYPEDEF unsigned size_t;
+TYPEDEF int ssize_t;
+TYPEDEF long ptrdiff_t;
+TYPEDEF struct __va_list * va_list;
+
+TYPEDEF long wchar_t;
+TYPEDEF long wint_t;
+TYPEDEF long wctrans_t;
+TYPEDEF long wctype_t;
+
+TYPEDEF char      int8_t;
+TYPEDEF short     int16_t;
+TYPEDEF int       int32_t;
+TYPEDEF long long int64_t;
+
+TYPEDEF unsigned char      uint8_t;
+TYPEDEF unsigned short     uint16_t;
+TYPEDEF unsigned int       uint32_t;
+TYPEDEF unsigned long long uint64_t;
+
+TYPEDEF unsigned char      __uint8_t;
+TYPEDEF unsigned short     __uint16_t;
+TYPEDEF unsigned int       __uint32_t;
+TYPEDEF unsigned long long __uint64_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_least8_t;
+TYPEDEF uint16_t uint_least16_t;
+TYPEDEF uint32_t uint_least32_t;
+TYPEDEF uint64_t uint_least64_t;
+
+TYPEDEF int8_t    int_fast8_t;
+TYPEDEF int       int_fast16_t;
+TYPEDEF int       int_fast32_t;
+TYPEDEF int64_t   int_fast64_t;
+
+TYPEDEF unsigned char      uint_fast8_t;
+TYPEDEF unsigned int       uint_fast16_t;
+TYPEDEF unsigned int       uint_fast32_t;
+TYPEDEF uint64_t           uint_fast64_t;
+
+TYPEDEF long          intptr_t;
+TYPEDEF unsigned long uintptr_t;
+
+TYPEDEF long long          intmax_t;
+TYPEDEF unsigned long long uintmax_t;
+
+TYPEDEF long time_t;
+TYPEDEF unsigned int useconds_t;
+TYPEDEF int suseconds_t;
+STRUCT timeval { time_t tv_sec; long tv_usec; };
+STRUCT timespec { time_t tv_sec; long tv_nsec; };
+
+TYPEDEF int pid_t;
+TYPEDEF int id_t;
+TYPEDEF int uid_t;
+TYPEDEF int gid_t;
+TYPEDEF int key_t;
+TYPEDEF struct __pthread * pthread_t;
+
+TYPEDEF long long off_t;
+
+TYPEDEF unsigned int mode_t;
+
+TYPEDEF unsigned int nlink_t;
+TYPEDEF unsigned long long ino_t;
+TYPEDEF long long dev_t;
+TYPEDEF long blksize_t;
+TYPEDEF long long blkcnt_t;
+TYPEDEF unsigned long long fsblkcnt_t;
+TYPEDEF unsigned long long fsfilcnt_t;
+
+TYPEDEF int timer_t;
+TYPEDEF int clockid_t;
+TYPEDEF unsigned long clock_t;
+
+TYPEDEF struct { unsigned long __bits[1024/sizeof(long)]; } sigset_t;
+TYPEDEF struct __siginfo siginfo_t;
+
+TYPEDEF unsigned int socklen_t;
+TYPEDEF unsigned short sa_family_t;
+TYPEDEF unsigned short in_port_t;
+TYPEDEF unsigned int in_addr_t;
+STRUCT in_addr { in_addr_t s_addr; };
+
+TYPEDEF struct __FILE_s FILE;
+
+TYPEDEF int nl_item;
+
+TYPEDEF struct __locale * locale_t;
+
+
+EOF
diff --git a/include/bits/endian.h b/include/bits/endian.h
new file mode 100644 (file)
index 0000000..172c338
--- /dev/null
@@ -0,0 +1 @@
+#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/include/bits/errno.h b/include/bits/errno.h
new file mode 100644 (file)
index 0000000..fddea5e
--- /dev/null
@@ -0,0 +1,125 @@
+#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 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
diff --git a/include/bits/fcntl.h b/include/bits/fcntl.h
new file mode 100644 (file)
index 0000000..550152f
--- /dev/null
@@ -0,0 +1,59 @@
+#define O_ACCMODE 03
+#define O_RDONLY  00
+#define O_WRONLY  01
+#define O_RDWR    02
+
+#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_SYNC       010000
+#define O_DIRECTORY 0200000
+#define O_NOFOLLOW  0400000
+#define O_CLOEXEC  02000000
+
+#ifdef _GNU_SOURCE
+#define O_ASYNC      020000
+#define O_DIRECT     040000
+#define O_NOATIME  01000000
+#define F_DUPFD_CLOEXEC 1030
+#define FAPPENT O_APPEND
+#define FFSYNC O_FSYNC
+#define FASYNC O_ASYNC
+#define FNONBLOCK O_NONBLOCK
+#define FNDELAY O_NDELAY
+#endif
+
+#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_GETLK 12
+#define F_SETLK 13
+#define F_SETLKW 14
+
+#define FD_CLOEXEC 1
+
+#define F_RDLCK 0
+#define F_WRLCK 1
+#define F_UNLCK 2
+
+#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
+#define POSIX_FADV_DONTNEED   4
+#define POSIX_FADV_NOREUSE    5
diff --git a/include/bits/fenv.h b/include/bits/fenv.h
new file mode 100644 (file)
index 0000000..24df041
--- /dev/null
@@ -0,0 +1,34 @@
+#define FE_INVALID    1
+#define __FE_DENORM   2
+#define FE_DIVBYZERO  4
+#define FE_OVERFLOW   8
+#define FE_UNDERFLOW  16
+#define FE_INEXACT    32
+
+#define FE_ALL_EXCEPT 63
+
+#define FE_TONEAREST  0
+#define FE_DOWNWARD   0x400
+#define FE_UPWARD     0x800
+#define FE_TOWARDZERO 0xc00
+
+typedef unsigned short fexcept_t;
+
+typedef struct {
+       unsigned short __control_word;
+       unsigned short __unused1;
+       unsigned short __status_word;
+       unsigned short __unused2;
+       unsigned short __tags;
+       unsigned short __unused3;
+       unsigned int __eip;
+       unsigned short __cs_selector;
+       unsigned int __opcode:11;
+       unsigned int __unused4:5;
+       unsigned int __data_offset;
+       unsigned short __data_selector;
+       unsigned short __unused5;
+       unsigned int __mxcsr;
+} fenv_t;
+
+#define FE_DFL_ENV      ((const fenv_t *) -1)
diff --git a/include/bits/float.h b/include/bits/float.h
new file mode 100644 (file)
index 0000000..162b3e4
--- /dev/null
@@ -0,0 +1,11 @@
+#define LDBL_MIN     3.3621031431120935063e-4932L
+#define LDBL_MAX     1.1897314953572317650e+4932L
+#define LDBL_EPSILON 1.0842021724855044340e-19L
+
+#define LDBL_MANT_DIG 64
+#define LDBL_MIN_EXP (-16381)
+#define LDBL_MAX_EXP 16384
+
+#define LDBL_DIG 18
+#define LDBL_MIN_10_EXP (-4931)
+#define LDBL_MAX_10_EXP 4932
diff --git a/include/bits/in.h b/include/bits/in.h
new file mode 100644 (file)
index 0000000..53ca31c
--- /dev/null
@@ -0,0 +1,89 @@
+#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_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_RECVRETOPTS IP_RETOPTS
+
+#define IP_PMTUDISC_DONT   0
+#define IP_PMTUDISC_WANT   1
+#define IP_PMTUDISC_DO     2
+
+#define SOL_IP 0
+
+#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];
+};
+
+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 in_pktinfo
+{
+       int ipi_ifindex;
+       struct in_addr ipi_spec_dst;
+       struct in_addr ipi_addr;
+};
+
+#define IPV6_ADDRFORM           1
+#define IPV6_PKTINFO            2
+#define IPV6_HOPOPTS            3
+#define IPV6_DSTOPTS            4
+#define IPV6_RXSRCRT            5
+#define IPV6_PKTOPTIONS         6
+#define IPV6_CHECKSUM           7
+#define IPV6_HOPLIMIT           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_ADD_MEMBERSHIP     20
+#define IPV6_DROP_MEMBERSHIP    21
+#define IPV6_ROUTER_ALERT       22
+
+#define SCM_SRCRT               IPV6_RXSRCRT
+
+#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 SOL_IPV6        41
+#define SOL_ICMPV6      58
diff --git a/include/bits/ioctl.h b/include/bits/ioctl.h
new file mode 100644 (file)
index 0000000..bb63ffb
--- /dev/null
@@ -0,0 +1,182 @@
+#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(1,(a),(b),sizeof(c))
+#define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c))
+#define _IOWR(a,b,c) _IOC(3,(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 TIOCTTYGSTRUCT 0x5426
+#define TIOCSBRK       0x5427
+#define TIOCCBRK       0x5428
+#define TIOCGSID       0x5429
+#define TIOCGPTN       0x80045430
+#define TIOCSPTLCK     0x40045431
+
+#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 TIOCGHAYESESP   0x545E
+#define TIOCSHAYESESP   0x545F
+#define FIOQSIZE       0x5460
+
+#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 TIOCSER_TEMT    0x01
+
+struct winsize {
+       unsigned short ws_row;
+       unsigned short ws_col;
+       unsigned short ws_xpixel;
+       unsigned short ws_ypixel;
+};
+
+#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 TIOCM_MODEM_BITS TIOCM_OUT2
+
+#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 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 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
diff --git a/include/bits/ipc.h b/include/bits/ipc.h
new file mode 100644 (file)
index 0000000..8e3ef9b
--- /dev/null
@@ -0,0 +1,22 @@
+#define IPC_CREAT  01000
+#define IPC_EXCL   02000
+#define IPC_NOWAIT 04000
+
+#define IPC_RMID 0
+#define IPC_SET  1
+#define IPC_STAT 2
+
+#define IPC_PRIVATE ((key_t) 0)
+
+struct ipc_perm
+{
+       key_t key;
+       uid_t uid;
+       gid_t gid;
+       uid_t cuid;
+       gid_t cgid;
+       mode_t mode;
+       int seq;
+       long __pad1;
+       long __pad2;
+};
diff --git a/include/bits/limits.h b/include/bits/limits.h
new file mode 100644 (file)
index 0000000..48fdd7a
--- /dev/null
@@ -0,0 +1,32 @@
+#define PIPE_BUF 4096
+#define PAGESIZE 4096
+#define PAGE_SIZE PAGESIZE
+#define FILESIZEBITS 64
+#define NAME_MAX 255
+#define SYMLINK_MAX 255
+#define PATH_MAX 4096
+#define NZERO 20
+#define NGROUPS_MAX 32
+#define ARG_MAX 131072
+#define IOV_MAX 1024
+#define SYMLOOP_MAX 40
+
+#define WORD_BIT 32
+#define LONG_BIT 32
+
+#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 0xffffffff
+
+#define LONG_MIN  (-1-0x7fffffffL)
+#define LONG_MAX  0x7fffffffL
+#define ULONG_MAX 0xffffffffL
+
+#define LLONG_MIN  (-1-0x7fffffffffffffffLL)
+#define LLONG_MAX  0x7fffffffffffffffLL
+#define ULLONG_MAX 0xffffffffffffffffULL
+
diff --git a/include/bits/mman.h b/include/bits/mman.h
new file mode 100644 (file)
index 0000000..e02d488
--- /dev/null
@@ -0,0 +1,39 @@
+#define MAP_FAILED ((void *) -1)
+
+#define        PROT_NONE      0
+#define        PROT_READ      1
+#define        PROT_WRITE     2
+#define        PROT_EXEC      4
+
+#define        MAP_SHARED     0x01
+#define        MAP_PRIVATE    0x02
+#define        MAP_FIXED      0x10
+
+/* linux extensions */
+#define MAP_TYPE       0x0f
+#define MAP_FILE       0x00
+#define MAP_ANON       0x20
+#define MAP_ANONYMOUS  MAP_ANON
+
+#define MADV_NORMAL     0
+#define MADV_RANDOM     1
+#define MADV_SEQUENTIAL 2
+#define MADV_WILLNEED   3
+#define MADV_DONTNEED   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     0
+
+#define MS_ASYNC        1
+#define MS_INVALIDATE   2
+#define MS_SYNC         4
+
+#define MCL_CURRENT     1
+#define MCL_FUTURE      2
+
+/* linux extensions */
+#define MREMAP_MAYMOVE  1
+#define MREMAP_FIXED    2
diff --git a/include/bits/posix.h b/include/bits/posix.h
new file mode 100644 (file)
index 0000000..30a3871
--- /dev/null
@@ -0,0 +1,2 @@
+#define _POSIX_V6_ILP32_OFFBIG  1
+#define _POSIX_V7_ILP32_OFFBIG  1
diff --git a/include/bits/pthread.h b/include/bits/pthread.h
new file mode 100644 (file)
index 0000000..7d19065
--- /dev/null
@@ -0,0 +1,6 @@
+struct __ptcb {
+       long __jb[7];
+       int __dummy;
+       struct __ptcb *__next;
+       void *__ptrs[3];
+};
diff --git a/include/bits/reg.h b/include/bits/reg.h
new file mode 100644 (file)
index 0000000..8bc2582
--- /dev/null
@@ -0,0 +1,19 @@
+#undef __WORDSIZE
+#define __WORDSIZE 32
+#define EBX 0
+#define ECX 1
+#define EDX 2
+#define ESI 3
+#define EDI 4
+#define EBP 5
+#define EAX 6
+#define DS 7
+#define ES 8
+#define FS 9
+#define GS 10
+#define ORIG_EAX 11
+#define EIP 12
+#define CS 13
+#define EFL 14
+#define UESP 15
+#define SS 16
diff --git a/include/bits/setjmp.h b/include/bits/setjmp.h
new file mode 100644 (file)
index 0000000..b6595bd
--- /dev/null
@@ -0,0 +1 @@
+typedef unsigned long jmp_buf [7];
diff --git a/include/bits/shm.h b/include/bits/shm.h
new file mode 100644 (file)
index 0000000..4677423
--- /dev/null
@@ -0,0 +1,18 @@
+#define SHMLBA 4096
+
+#define SHM_RDONLY 010000
+#define SHM_RND    020000
+
+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;
+};
diff --git a/include/bits/signal.h b/include/bits/signal.h
new file mode 100644 (file)
index 0000000..2427f37
--- /dev/null
@@ -0,0 +1,98 @@
+struct __siginfo
+{
+       int si_signo;
+       int si_errno;
+       int si_code;
+       union
+       {
+               char __pad[128 - 3*sizeof(int)];
+               struct {
+                       pid_t si_pid;
+                       uid_t si_uid;
+                       union sigval si_sigval;
+               } __rt;
+               struct {
+                       unsigned int si_timer1;
+                       unsigned int si_timer2;
+               } __timer;
+               struct {
+                       pid_t si_pid;
+                       uid_t si_uid;
+                       int si_status;
+                       clock_t si_utime;
+                       clock_t si_stime;
+               } __sigchld;
+               struct {
+                       void *si_addr;
+               } __sigfault;
+               struct {
+                       long int si_band;
+                       int si_fd;
+               } __sigpoll;
+       } __si_fields;
+};
+
+#define si_pid     __si_fields.__sigchld.si_pid
+#define si_uid     __si_fields.__sigchld.si_uid
+#define si_status  __si_fields.__sigchld.si_status
+#define si_utime   __si_fields.__sigchld.si_utime
+#define si_stime   __si_fields.__sigchld.si_stime
+#define si_value   __si_fields.__rt.si_sigval
+#define si_addr    __si_fields.__sigfault.si_addr
+#define si_band    __si_fields.__sigpoll.si_band
+
+#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 SS_ONSTACK    1
+#define SS_DISABLE    2
+
+#define SIG_BLOCK     0
+#define SIG_UNBLOCK   1
+#define SIG_SETMASK   2
+
+#define SIG_ERR  ((void (*)(int))-1)
+#define SIG_DFL  ((void (*)(int)) 0)
+#define SIG_IGN  ((void (*)(int)) 1)
+#define SIG_HOLD ((void (*)(int)) 2)
+
+#define NSIG      64
+
+#define SIGHUP    1
+#define SIGINT    2
+#define SIGQUIT   3
+#define SIGILL    4
+#define SIGTRAP   5
+#define SIGABRT   6
+#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
diff --git a/include/bits/socket.h b/include/bits/socket.h
new file mode 100644 (file)
index 0000000..7a51f79
--- /dev/null
@@ -0,0 +1,189 @@
+struct iovec;
+
+struct msghdr
+{
+       void *msg_name;
+       socklen_t msg_namelen;
+       struct iovec *msg_iov;
+       int msg_iovlen;
+       void *msg_control;
+       socklen_t msg_controllen;
+       int msg_flags;
+};
+
+struct cmsghdr
+{
+       socklen_t cmsg_len;
+       int cmsg_level;
+       int cmsg_type;
+};
+
+struct ucred
+{
+       pid_t pid;
+       uid_t uid;
+       gid_t gid;
+};
+
+struct linger
+{
+       int l_onoff;
+       int l_linger;
+};
+
+#define SHUT_RD 0
+#define SHUT_WD 1
+#define SHUT_RDWR 2
+
+#define SOCK_STREAM    1
+#define SOCK_DGRAM     2
+#define SOCK_RAW       3
+#define SOCK_RDM       4
+#define SOCK_SEQPACKET 5
+#define SOCK_PACKET    10
+
+#define AF_UNSPEC       0
+#define AF_LOCAL        1
+#define AF_UNIX         AF_LOCAL
+#define AF_FILE         AF_LOCAL
+#define AF_INET         2
+#define AF_AX25         3
+#define AF_IPX          4
+#define AF_APPLETALK    5
+#define AF_NETROM       6
+#define AF_BRIDGE       7
+#define AF_ATMPVC       8
+#define AF_X25          9
+#define AF_INET6        10
+#define AF_ROSE         11
+#define AF_DECnet       12
+#define AF_NETBEUI      13
+#define AF_SECURITY     14
+#define AF_KEY          15
+#define AF_NETLINK      16
+#define AF_ROUTE        AF_NETLINK
+#define AF_PACKET       17
+#define AF_ASH          18
+#define AF_ECONET       19
+#define AF_ATMSVC       20
+#define AF_SNA          22
+#define AF_IRDA         23
+#define AF_PPPOX        24
+#define AF_WANPIPE      25
+#define AF_BLUETOOTH    31
+
+#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_SNA          22
+#define PF_IRDA         23
+#define PF_PPPOX        24
+#define PF_WANPIPE      25
+#define PF_BLUETOOTH    31
+
+#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_RCVTIMEO     20
+#define SO_SNDTIMEO     21
+
+#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_PEERNAME             28
+#define SO_TIMESTAMP            29
+#define SCM_TIMESTAMP           SO_TIMESTAMP
+
+#define SO_ACCEPTCONN           30
+
+#define SOL_SOCKET      1
+
+/* ??? */
+#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 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 MSD_SYN       0x0400
+#define MSG_CONFIRM   0x0800
+#define MSG_RST       0x1000
+#define MSG_ERRQUEUE  0x2000
+#define MSG_NOSIGNAL  0x4000
+#define MSG_MORE      0x8000
+
+/* Internal use only!! to make CMSG_NXTHDR definition readable by mortals */
+#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) ? (struct cmsghdr *)0 : \
+        (__CMSG_NEXT(cmsg) + sizeof (struct cmsghdr) >= __MHDR_END(mhdr) ? (struct cmsghdr *)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)
+
+/* Are these valid? */
+#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
diff --git a/include/bits/stat.h b/include/bits/stat.h
new file mode 100644 (file)
index 0000000..1ef3469
--- /dev/null
@@ -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;
+       time_t st_atime;
+       unsigned long __st_atime_nsec;
+       time_t st_mtime;
+       unsigned long __st_mtime_nsec;
+       time_t st_ctime;
+       unsigned long __st_ctime_nsec;
+       ino_t st_ino;
+};
diff --git a/include/bits/statfs.h b/include/bits/statfs.h
new file mode 100644 (file)
index 0000000..9dda440
--- /dev/null
@@ -0,0 +1,16 @@
+struct statvfs {
+       unsigned long f_type;
+       unsigned long f_bsize;
+       fsblkcnt_t f_blocks;
+       fsblkcnt_t f_bfree;
+       fsblkcnt_t f_bavail;
+       fsfilcnt_t f_files;
+       fsfilcnt_t f_ffree;
+       unsigned long f_fsid;
+       unsigned long __unused;
+       unsigned long f_namemax;
+       unsigned long f_frsize;
+       fsfilcnt_t f_favail;
+       unsigned long f_flag;
+       unsigned long __reserved[2];
+};
diff --git a/include/bits/stdint.h b/include/bits/stdint.h
new file mode 100644 (file)
index 0000000..8e21a8c
--- /dev/null
@@ -0,0 +1,23 @@
+#define INT_FAST8_MIN   INT8_MIN
+#define INT_FAST16_MIN  INT32_MIN
+#define INT_FAST32_MIN  INT32_MIN
+#define INT_FAST64_MIN  INT64_MIN
+
+#define INT_FAST8_MAX   INT8_MAX
+#define INT_FAST16_MAX  INT32_MAX
+#define INT_FAST32_MAX  INT32_MAX
+#define INT_FAST64_MAX  INT64_MAX
+
+#define UINT_FAST8_MAX  UINT8_MAX
+#define UINT_FAST16_MAX UINT32_MAX
+#define UINT_FAST32_MAX UINT32_MAX
+#define UINT_FAST64_MAX UINT64_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 SIG_ATOMIC_MIN  INT32_MIN
+#define SIG_ATOMIC_MAX  INT32_MAX
+#define SIZE_MAX        UINT32_MAX
diff --git a/include/bits/stdio.h b/include/bits/stdio.h
new file mode 100644 (file)
index 0000000..0afd8b4
--- /dev/null
@@ -0,0 +1,10 @@
+#define BUFSIZ 1024
+
+#define FILENAME_MAX 4095
+#define FOPEN_MAX 1000
+#define TMP_MAX 10000
+
+#define L_cuserid 20
+#define L_ctermid 20
+#define L_tmpnam 20
+#define P_tmpdir "/tmp"
diff --git a/include/bits/sysmacros.h b/include/bits/sysmacros.h
new file mode 100644 (file)
index 0000000..da29022
--- /dev/null
@@ -0,0 +1,7 @@
+#define major(x) (((x) >> 8) & 0xff)
+#define minor(x) ((x) & 0xff)
+#define makedev(x,y) (((x)<<8)|((y)&0xff))
+
+//#define makedev(x,y) \
+//     ((x)*0x100000001ULL)&(0xfffffffffff0)
+//     ((y)*0x1001 & 0xffff0ff)
diff --git a/include/bits/tcp.h b/include/bits/tcp.h
new file mode 100644 (file)
index 0000000..923231b
--- /dev/null
@@ -0,0 +1 @@
+#define TCP_NODELAY 1
diff --git a/include/bits/termios.h b/include/bits/termios.h
new file mode 100644 (file)
index 0000000..316baeb
--- /dev/null
@@ -0,0 +1,158 @@
+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 OPOST  0000001
+#define OLCUC  0000002
+#define ONLCR  0000004
+#define OCRNL  0000010
+#define ONOCR  0000020
+#define ONLRET 0000040
+#define OFILL  0000100
+#define OFDEL  0000200
+#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
+
+#define VTDLY  0040000
+#define VT0    0000000
+#define VT1    0040000
+
+/* ?? */
+#define XTABS  0014000
+
+#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 CBAUD    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 CRTSCTS  020000000000
+
+#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
+
+/* Extensions? */
+#define ECHOCTL 0001000
+#define ECHOPRT 0002000
+#define ECHOKE 0004000
+#define FLUSHO 0010000
+#define PENDIN 0040000
+
+#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
diff --git a/include/bits/uio.h b/include/bits/uio.h
new file mode 100644 (file)
index 0000000..4325265
--- /dev/null
@@ -0,0 +1,4 @@
+struct iovec {
+       void *iov_base;
+       size_t iov_len;
+};
diff --git a/include/bits/user.h b/include/bits/user.h
new file mode 100644 (file)
index 0000000..13ff027
--- /dev/null
@@ -0,0 +1,77 @@
+#undef __WORDSIZE
+#define __WORDSIZE 32
+
+struct user_fpregs_struct
+{
+       long int cwd;
+       long int swd;
+       long int twd;
+       long int fip;
+       long int fcs;
+       long int foo;
+       long int fos;
+       long int st_space[20];
+};
+
+struct user_fpxregs_struct
+{
+       unsigned short int cwd;
+       unsigned short int swd;
+       unsigned short int twd;
+       unsigned short int fop;
+       long int fip;
+       long int fcs;
+       long int foo;
+       long int fos;
+       long int mxcsr;
+       long int reserved;
+       long int st_space[32];
+       long int xmm_space[32];
+       long int padding[56];
+};
+
+struct user_regs_struct
+{
+       long int ebx;
+       long int ecx;
+       long int edx;
+       long int esi;
+       long int edi;
+       long int ebp;
+       long int eax;
+       long int xds;
+       long int xes;
+       long int xfs;
+       long int xgs;
+       long int orig_eax;
+       long int eip;
+       long int xcs;
+       long int eflags;
+       long int esp;
+       long int xss;
+};
+
+struct user
+{
+       struct user_regs_struct         regs;
+       int                             u_fpvalid;
+       struct user_fpregs_struct       i387;
+       unsigned long int               u_tsize;
+       unsigned long int               u_dsize;
+       unsigned long int               u_ssize;
+       unsigned long                   start_code;
+       unsigned long                   start_stack;
+       long int                        signal;
+       int                             reserved;
+       struct user_regs_struct         *u_ar0;
+       struct user_fpregs_struct       *u_fpstate;
+       unsigned long int               magic;
+       char                            u_comm[32];
+       int                             u_debugreg[8];
+};
+
+#define PAGE_MASK              (~(PAGE_SIZE-1))
+#define NBPG                   PAGE_SIZE
+#define UPAGES                 1
+#define HOST_TEXT_START_ADDR   (u.start_code)
+#define HOST_STACK_END_ADDR    (u.start_stack + u.u_ssize * NBPG)
diff --git a/include/bits/wait.h b/include/bits/wait.h
new file mode 100644 (file)
index 0000000..ca9b57e
--- /dev/null
@@ -0,0 +1,11 @@
+#define WNOHANG    1
+#define WUNTRACED  2
+
+#define WSTOPPED   2
+#define WEXITED    4
+#define WCONTINUED 8
+#define WNOWAIT    0x1000000
+
+#define P_ALL  0
+#define P_PID  1
+#define P_PGID 2
diff --git a/include/bits/wexitstatus.h b/include/bits/wexitstatus.h
new file mode 100644 (file)
index 0000000..34a8023
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef WEXITSTATUS
+#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) (((s) & 0xff) == 0x7f)
+#define WIFSIGNALED(s) (!WIFSTOPPED(s) && !WIFEXITED(s))
+#endif
diff --git a/include/byteswap.h b/include/byteswap.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/include/cpio.h b/include/cpio.h
new file mode 100644 (file)
index 0000000..39a1f8b
--- /dev/null
@@ -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
diff --git a/include/ctype.h b/include/ctype.h
new file mode 100644 (file)
index 0000000..02f81fa
--- /dev/null
@@ -0,0 +1,53 @@
+#ifndef        _CTYPE_H
+#define        _CTYPE_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);
+
+int   isascii(int);
+int   toascii(int);
+
+#define _tolower(a) ((a)|0x20)
+#define _toupper(a) ((a)&0x5f)
+
+#define isalpha(a) ((unsigned)(((a)|32)-'a') < 26)
+#define isdigit(a) ((unsigned)((a)-'0') < 10)
+#define islower(a) ((unsigned)((a)-'a') < 26)
+#define isupper(a) ((unsigned)((a)-'A') < 26)
+#define isprint(a) ((unsigned)((a)-0x20) < 0x5f)
+#define isgraph(a) ((unsigned)((a)-0x21) < 0x5e)
+
+#if 1
+
+#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);
+#endif
+
+#endif
diff --git a/include/dirent.h b/include/dirent.h
new file mode 100644 (file)
index 0000000..a917093
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef        _DIRENT_H
+#define        _DIRENT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define __NEED_ino_t
+#define __NEED_off_t
+
+#include <bits/alltypes.h>
+
+typedef struct __DIR_s DIR;
+
+struct dirent
+{
+       ino_t d_ino;
+       off_t d_off;
+       unsigned short d_reclen;
+       unsigned char d_type;
+       char d_name[1];
+};
+
+int            closedir(DIR *);
+DIR           *fdopendir(int);
+DIR           *opendir(const char *);
+struct dirent *readdir(DIR *);
+int            readdir_r(DIR *, struct dirent *, struct dirent **);
+void           rewinddir(DIR *);
+void           seekdir(DIR *, long);
+long           telldir(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 **));
+
+#ifdef __cplusplus
+extern }
+#endif
+
+#endif
diff --git a/include/dlfcn.h b/include/dlfcn.h
new file mode 100644 (file)
index 0000000..81b829c
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef        _DLFCN_H
+#define        _DLFCN_H
+
+#define RTLD_LAZY   0x10000
+#define RTLD_NOW    0x20000
+#define RTLD_GLOBAL 0x40000
+#define RTLD_LOCAL  0x80000
+
+#if 1
+#define RTLD_NEXT    ((void *) -1l)
+#define RTLD_DEFAULT ((void *) 0)
+#endif
+
+int    dlclose(void *);
+char  *dlerror(void);
+void  *dlopen(const char *, int);
+void  *dlsym(void *, const char *);
+
+#endif
diff --git a/include/elf.h b/include/elf.h
new file mode 100644 (file)
index 0000000..b011e78
--- /dev/null
@@ -0,0 +1,2524 @@
+#ifndef _ELF_H
+#define        _ELF_H 1
+
+#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_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_OPENRISC    92
+#define EM_ARC_A5      93
+#define EM_XTENSA      94
+#define EM_NUM         95
+#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_NUM           19
+#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_MASKOS          0x0ff00000
+#define SHF_MASKPROC        0xf0000000
+#define SHF_ORDERED         (1 << 30)
+#define SHF_EXCLUDE         (1 << 31)
+
+#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;
+
+
+
+#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_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 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_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_PRXFPREG    0x46e62b7f
+#define NT_PPC_VMX     0x100
+#define NT_PPC_SPE     0x101
+#define NT_PPC_VSX     0x102
+#define NT_386_TLS     0x200
+#define NT_386_IOPERM  0x201
+#define NT_VERSION     1
+
+
+
+
+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_NUM          34
+#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 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_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
+
+
+
+
+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
+
+
+
+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_NUM      23
+
+#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_TLS_GOTDESC  39
+#define R_386_TLS_DESC_CALL 40
+#define R_386_TLS_DESC     41
+#define R_386_IRELATIVE           42
+#define R_386_NUM         43
+
+
+
+
+
+#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 HWCAP_SPARC_FLUSH      1
+#define HWCAP_SPARC_STBAR      2
+#define HWCAP_SPARC_SWAP       4
+#define HWCAP_SPARC_MULDIV     8
+#define HWCAP_SPARC_V9         16
+#define HWCAP_SPARC_ULTRA3     32
+#define HWCAP_SPARC_BLKINIT    64
+#define HWCAP_SPARC_N2         128
+
+
+
+
+
+#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_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            0x60000000
+#define EF_MIPS_ARCH_64            0x70000000
+
+
+
+#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   0x60000000
+#define E_MIPS_ARCH_64   0x70000000
+
+
+
+#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 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_NUM         0x35
+
+
+
+#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;
+
+
+
+
+
+
+#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