chiark / gitweb /
remove our own copy of klibc
authorKay Sievers <kay.sievers@suse.de>
Wed, 9 Nov 2005 14:42:07 +0000 (15:42 +0100)
committerKay Sievers <kay.sievers@suse.de>
Wed, 9 Nov 2005 14:42:07 +0000 (15:42 +0100)
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
532 files changed:
ChangeLog
Makefile
README
RELEASE-NOTES
klibc/MCONFIG [deleted file]
klibc/MRULES [deleted file]
klibc/Makefile [deleted file]
klibc/README [deleted file]
klibc/include/alloca.h [deleted file]
klibc/include/arch/alpha/klibc/archsetjmp.h [deleted file]
klibc/include/arch/alpha/klibc/archsignal.h [deleted file]
klibc/include/arch/alpha/klibc/archstat.h [deleted file]
klibc/include/arch/alpha/klibc/archsys.h [deleted file]
klibc/include/arch/alpha/machine/asm.h [deleted file]
klibc/include/arch/arm/klibc/archsetjmp.h [deleted file]
klibc/include/arch/arm/klibc/archsignal.h [deleted file]
klibc/include/arch/arm/klibc/archstat.h [deleted file]
klibc/include/arch/arm/klibc/archsys.h [deleted file]
klibc/include/arch/cris/klibc/archsetjmp.h [deleted file]
klibc/include/arch/cris/klibc/archsignal.h [deleted file]
klibc/include/arch/cris/klibc/archstat.h [deleted file]
klibc/include/arch/cris/klibc/archsys.h [deleted file]
klibc/include/arch/i386/klibc/archsetjmp.h [deleted file]
klibc/include/arch/i386/klibc/archsignal.h [deleted file]
klibc/include/arch/i386/klibc/archstat.h [deleted file]
klibc/include/arch/i386/klibc/archsys.h [deleted file]
klibc/include/arch/i386/klibc/diverr.h [deleted file]
klibc/include/arch/i386/sys/io.h [deleted file]
klibc/include/arch/i386/sys/vm86.h [deleted file]
klibc/include/arch/ia64/klibc/archsetjmp.h [deleted file]
klibc/include/arch/ia64/klibc/archsignal.h [deleted file]
klibc/include/arch/ia64/klibc/archstat.h [deleted file]
klibc/include/arch/ia64/klibc/archsys.h [deleted file]
klibc/include/arch/m32r/klibc/archsetjmp.h [deleted file]
klibc/include/arch/m32r/klibc/archsignal.h [deleted file]
klibc/include/arch/m32r/klibc/archstat.h [deleted file]
klibc/include/arch/m32r/klibc/archsys.h [deleted file]
klibc/include/arch/m68k/klibc/archsignal.h [deleted file]
klibc/include/arch/m68k/klibc/archstat.h [deleted file]
klibc/include/arch/m68k/klibc/archsys.h [deleted file]
klibc/include/arch/mips/klibc/archfcntl.h [deleted file]
klibc/include/arch/mips/klibc/archsetjmp.h [deleted file]
klibc/include/arch/mips/klibc/archsignal.h [deleted file]
klibc/include/arch/mips/klibc/archstat.h [deleted file]
klibc/include/arch/mips/klibc/archsys.h [deleted file]
klibc/include/arch/mips/machine/asm.h [deleted file]
klibc/include/arch/mips/sgidefs.h [deleted file]
klibc/include/arch/mips/spaces.h [deleted file]
klibc/include/arch/mips64/klibc/archsignal.h [deleted file]
klibc/include/arch/mips64/klibc/archstat.h [deleted file]
klibc/include/arch/mips64/klibc/archsys.h [deleted file]
klibc/include/arch/parisc/klibc/archsetjmp.h [deleted file]
klibc/include/arch/parisc/klibc/archsignal.h [deleted file]
klibc/include/arch/parisc/klibc/archstat.h [deleted file]
klibc/include/arch/parisc/klibc/archsys.h [deleted file]
klibc/include/arch/ppc/klibc/archsetjmp.h [deleted file]
klibc/include/arch/ppc/klibc/archsignal.h [deleted file]
klibc/include/arch/ppc/klibc/archstat.h [deleted file]
klibc/include/arch/ppc/klibc/archsys.h [deleted file]
klibc/include/arch/ppc64/klibc/archsetjmp.h [deleted file]
klibc/include/arch/ppc64/klibc/archsignal.h [deleted file]
klibc/include/arch/ppc64/klibc/archstat.h [deleted file]
klibc/include/arch/ppc64/klibc/archsys.h [deleted file]
klibc/include/arch/s390/klibc/archsetjmp.h [deleted file]
klibc/include/arch/s390/klibc/archsignal.h [deleted file]
klibc/include/arch/s390/klibc/archstat.h [deleted file]
klibc/include/arch/s390/klibc/archsys.h [deleted file]
klibc/include/arch/s390x/klibc/archsetjmp.h [deleted file]
klibc/include/arch/s390x/klibc/archsignal.h [deleted file]
klibc/include/arch/s390x/klibc/archstat.h [deleted file]
klibc/include/arch/s390x/klibc/archsys.h [deleted file]
klibc/include/arch/sh/klibc/archsetjmp.h [deleted file]
klibc/include/arch/sh/klibc/archsignal.h [deleted file]
klibc/include/arch/sh/klibc/archstat.h [deleted file]
klibc/include/arch/sh/klibc/archsys.h [deleted file]
klibc/include/arch/sparc/klibc/archsetjmp.h [deleted file]
klibc/include/arch/sparc/klibc/archsignal.h [deleted file]
klibc/include/arch/sparc/klibc/archstat.h [deleted file]
klibc/include/arch/sparc/klibc/archsys.h [deleted file]
klibc/include/arch/sparc/machine/asm.h [deleted file]
klibc/include/arch/sparc/machine/frame.h [deleted file]
klibc/include/arch/sparc/machine/trap.h [deleted file]
klibc/include/arch/sparc64/klibc/archsetjmp.h [deleted file]
klibc/include/arch/sparc64/klibc/archsignal.h [deleted file]
klibc/include/arch/sparc64/klibc/archstat.h [deleted file]
klibc/include/arch/sparc64/klibc/archsys.h [deleted file]
klibc/include/arch/x86_64/klibc/archsetjmp.h [deleted file]
klibc/include/arch/x86_64/klibc/archsignal.h [deleted file]
klibc/include/arch/x86_64/klibc/archstat.h [deleted file]
klibc/include/arch/x86_64/klibc/archsys.h [deleted file]
klibc/include/arch/x86_64/sys/io.h [deleted file]
klibc/include/arpa/inet.h [deleted file]
klibc/include/assert.h [deleted file]
klibc/include/bits32/bitsize.h [deleted file]
klibc/include/bits32/bitsize/limits.h [deleted file]
klibc/include/bits32/bitsize/stddef.h [deleted file]
klibc/include/bits32/bitsize/stdint.h [deleted file]
klibc/include/bits32/bitsize/stdintconst.h [deleted file]
klibc/include/bits32/bitsize/stdintlimits.h [deleted file]
klibc/include/bits64/bitsize.h [deleted file]
klibc/include/bits64/bitsize/limits.h [deleted file]
klibc/include/bits64/bitsize/stddef.h [deleted file]
klibc/include/bits64/bitsize/stdint.h [deleted file]
klibc/include/bits64/bitsize/stdintconst.h [deleted file]
klibc/include/bits64/bitsize/stdintlimits.h [deleted file]
klibc/include/ctype.h [deleted file]
klibc/include/dirent.h [deleted file]
klibc/include/elf.h [deleted file]
klibc/include/endian.h [deleted file]
klibc/include/errno.h [deleted file]
klibc/include/fcntl.h [deleted file]
klibc/include/grp.h [deleted file]
klibc/include/inttypes.h [deleted file]
klibc/include/klibc/compiler.h [deleted file]
klibc/include/klibc/diverr.h [deleted file]
klibc/include/klibc/extern.h [deleted file]
klibc/include/klibc/sysconfig.h [deleted file]
klibc/include/limits.h [deleted file]
klibc/include/malloc.h [deleted file]
klibc/include/net/if.h [deleted file]
klibc/include/net/if_arp.h [deleted file]
klibc/include/net/if_packet.h [deleted file]
klibc/include/net/route.h [deleted file]
klibc/include/netinet/if_ether.h [deleted file]
klibc/include/netinet/in.h [deleted file]
klibc/include/netinet/in6.h [deleted file]
klibc/include/netinet/ip.h [deleted file]
klibc/include/netinet/tcp.h [deleted file]
klibc/include/netinet/udp.h [deleted file]
klibc/include/netpacket/packet.h [deleted file]
klibc/include/paths.h [deleted file]
klibc/include/poll.h [deleted file]
klibc/include/sched.h [deleted file]
klibc/include/setjmp.h [deleted file]
klibc/include/signal.h [deleted file]
klibc/include/stdarg.h [deleted file]
klibc/include/stddef.h [deleted file]
klibc/include/stdint.h [deleted file]
klibc/include/stdio.h [deleted file]
klibc/include/stdlib.h [deleted file]
klibc/include/string.h [deleted file]
klibc/include/sys/dirent.h [deleted file]
klibc/include/sys/elf32.h [deleted file]
klibc/include/sys/elf64.h [deleted file]
klibc/include/sys/elfcommon.h [deleted file]
klibc/include/sys/fsuid.h [deleted file]
klibc/include/sys/inotify.h [deleted file]
klibc/include/sys/ioctl.h [deleted file]
klibc/include/sys/klog.h [deleted file]
klibc/include/sys/mman.h [deleted file]
klibc/include/sys/mount.h [deleted file]
klibc/include/sys/param.h [deleted file]
klibc/include/sys/reboot.h [deleted file]
klibc/include/sys/resource.h [deleted file]
klibc/include/sys/select.h [deleted file]
klibc/include/sys/socket.h [deleted file]
klibc/include/sys/socketcalls.h [deleted file]
klibc/include/sys/stat.h [deleted file]
klibc/include/sys/statfs.h [deleted file]
klibc/include/sys/syscall.h [deleted file]
klibc/include/sys/sysinfo.h [deleted file]
klibc/include/sys/sysmacros.h [deleted file]
klibc/include/sys/time.h [deleted file]
klibc/include/sys/times.h [deleted file]
klibc/include/sys/types.h [deleted file]
klibc/include/sys/uio.h [deleted file]
klibc/include/sys/un.h [deleted file]
klibc/include/sys/utime.h [deleted file]
klibc/include/sys/utsname.h [deleted file]
klibc/include/sys/vfs.h [deleted file]
klibc/include/sys/wait.h [deleted file]
klibc/include/syslog.h [deleted file]
klibc/include/termios.h [deleted file]
klibc/include/time.h [deleted file]
klibc/include/unistd.h [deleted file]
klibc/include/utime.h [deleted file]
klibc/klcc.1 [deleted file]
klibc/klcc.in [deleted file]
klibc/klibc.spec.in [deleted file]
klibc/klibc/CAVEATS [deleted file]
klibc/klibc/Kbuild [deleted file]
klibc/klibc/LICENSE [deleted file]
klibc/klibc/MCONFIG [deleted file]
klibc/klibc/Makefile [deleted file]
klibc/klibc/README [deleted file]
klibc/klibc/SOCKETCALLS.def [deleted file]
klibc/klibc/SYSCALLS.def [deleted file]
klibc/klibc/__put_env.c [deleted file]
klibc/klibc/__shared_init.c [deleted file]
klibc/klibc/__signal.c [deleted file]
klibc/klibc/__static_init.c [deleted file]
klibc/klibc/abort.c [deleted file]
klibc/klibc/alarm.c [deleted file]
klibc/klibc/arch/README [deleted file]
klibc/klibc/arch/alpha/MCONFIG [deleted file]
klibc/klibc/arch/alpha/Makefile.inc [deleted file]
klibc/klibc/arch/alpha/README-gcc [deleted file]
klibc/klibc/arch/alpha/crt0.S [deleted file]
klibc/klibc/arch/alpha/divide.c [deleted file]
klibc/klibc/arch/alpha/pipe.c [deleted file]
klibc/klibc/arch/alpha/setjmp.S [deleted file]
klibc/klibc/arch/alpha/syscall.S [deleted file]
klibc/klibc/arch/alpha/sysdual.S [deleted file]
klibc/klibc/arch/alpha/sysstub.ph [deleted file]
klibc/klibc/arch/arm/MCONFIG [deleted file]
klibc/klibc/arch/arm/Makefile.inc [deleted file]
klibc/klibc/arch/arm/crt0.S [deleted file]
klibc/klibc/arch/arm/setjmp-arm.S [deleted file]
klibc/klibc/arch/arm/setjmp-thumb.S [deleted file]
klibc/klibc/arch/arm/syscall.S [deleted file]
klibc/klibc/arch/arm/sysstub.ph [deleted file]
klibc/klibc/arch/cris/MCONFIG [deleted file]
klibc/klibc/arch/cris/Makefile.inc [deleted file]
klibc/klibc/arch/cris/__negdi2.S [deleted file]
klibc/klibc/arch/cris/crt0.S [deleted file]
klibc/klibc/arch/cris/divide.c [deleted file]
klibc/klibc/arch/cris/setjmp.S [deleted file]
klibc/klibc/arch/cris/syscall.S [deleted file]
klibc/klibc/arch/cris/sysstub.ph [deleted file]
klibc/klibc/arch/i386/MCONFIG [deleted file]
klibc/klibc/arch/i386/Makefile.inc [deleted file]
klibc/klibc/arch/i386/crt0.S [deleted file]
klibc/klibc/arch/i386/exits.S [deleted file]
klibc/klibc/arch/i386/libgcc/__ashldi3.S [deleted file]
klibc/klibc/arch/i386/libgcc/__ashrdi3.S [deleted file]
klibc/klibc/arch/i386/libgcc/__lshrdi3.S [deleted file]
klibc/klibc/arch/i386/libgcc/__muldi3.S [deleted file]
klibc/klibc/arch/i386/libgcc/__negdi2.S [deleted file]
klibc/klibc/arch/i386/open.S [deleted file]
klibc/klibc/arch/i386/setjmp.S [deleted file]
klibc/klibc/arch/i386/sigreturn.S [deleted file]
klibc/klibc/arch/i386/socketcall.S [deleted file]
klibc/klibc/arch/i386/syscall.S [deleted file]
klibc/klibc/arch/i386/sysstub.ph [deleted file]
klibc/klibc/arch/ia64/MCONFIG [deleted file]
klibc/klibc/arch/ia64/Makefile.inc [deleted file]
klibc/klibc/arch/ia64/crt0.S [deleted file]
klibc/klibc/arch/ia64/pipe.c [deleted file]
klibc/klibc/arch/ia64/setjmp.S [deleted file]
klibc/klibc/arch/ia64/syscall.S [deleted file]
klibc/klibc/arch/ia64/sysstub.ph [deleted file]
klibc/klibc/arch/ia64/vfork.S [deleted file]
klibc/klibc/arch/m32r/MCONFIG [deleted file]
klibc/klibc/arch/m32r/Makefile.inc [deleted file]
klibc/klibc/arch/m32r/crt0.S [deleted file]
klibc/klibc/arch/m32r/setjmp.S [deleted file]
klibc/klibc/arch/m32r/syscall.S [deleted file]
klibc/klibc/arch/m32r/sysstub.ph [deleted file]
klibc/klibc/arch/m68k/MCONFIG [deleted file]
klibc/klibc/arch/m68k/Makefile.inc [deleted file]
klibc/klibc/arch/mips/MCONFIG [deleted file]
klibc/klibc/arch/mips/Makefile.inc [deleted file]
klibc/klibc/arch/mips/crt0.S [deleted file]
klibc/klibc/arch/mips/klibc.ld [deleted file]
klibc/klibc/arch/mips/pipe.S [deleted file]
klibc/klibc/arch/mips/setjmp.S [deleted file]
klibc/klibc/arch/mips/syscall.S [deleted file]
klibc/klibc/arch/mips/sysstub.ph [deleted file]
klibc/klibc/arch/mips/vfork.S [deleted file]
klibc/klibc/arch/mips64/MCONFIG [deleted file]
klibc/klibc/arch/mips64/Makefile.inc [deleted file]
klibc/klibc/arch/parisc/MCONFIG [deleted file]
klibc/klibc/arch/parisc/Makefile.inc [deleted file]
klibc/klibc/arch/parisc/crt0.S [deleted file]
klibc/klibc/arch/parisc/setjmp.S [deleted file]
klibc/klibc/arch/parisc/syscall.c [deleted file]
klibc/klibc/arch/parisc/sysstub.ph [deleted file]
klibc/klibc/arch/ppc/MCONFIG [deleted file]
klibc/klibc/arch/ppc/Makefile.inc [deleted file]
klibc/klibc/arch/ppc/crt0.S [deleted file]
klibc/klibc/arch/ppc/setjmp.S [deleted file]
klibc/klibc/arch/ppc/syscall.S [deleted file]
klibc/klibc/arch/ppc/sysstub.ph [deleted file]
klibc/klibc/arch/ppc64/MCONFIG [deleted file]
klibc/klibc/arch/ppc64/Makefile.inc [deleted file]
klibc/klibc/arch/ppc64/crt0.S [deleted file]
klibc/klibc/arch/ppc64/setjmp.S [deleted file]
klibc/klibc/arch/ppc64/syscall.c [deleted file]
klibc/klibc/arch/ppc64/sysstub.ph [deleted file]
klibc/klibc/arch/s390/MCONFIG [deleted file]
klibc/klibc/arch/s390/Makefile.inc [deleted file]
klibc/klibc/arch/s390/crt0.S [deleted file]
klibc/klibc/arch/s390/mmap.c [deleted file]
klibc/klibc/arch/s390/setjmp.S [deleted file]
klibc/klibc/arch/s390/syscall.c [deleted file]
klibc/klibc/arch/s390/sysstub.ph [deleted file]
klibc/klibc/arch/s390x/MCONFIG [deleted file]
klibc/klibc/arch/s390x/Makefile.inc [deleted file]
klibc/klibc/arch/s390x/crt0.S [deleted file]
klibc/klibc/arch/s390x/mmap.c [deleted file]
klibc/klibc/arch/s390x/setjmp.S [deleted file]
klibc/klibc/arch/s390x/syscall.c [deleted file]
klibc/klibc/arch/s390x/sysstub.ph [deleted file]
klibc/klibc/arch/sh/MCONFIG [deleted file]
klibc/klibc/arch/sh/Makefile.inc [deleted file]
klibc/klibc/arch/sh/crt0.S [deleted file]
klibc/klibc/arch/sh/setjmp.S [deleted file]
klibc/klibc/arch/sh/syscall.S [deleted file]
klibc/klibc/arch/sh/sysstub.ph [deleted file]
klibc/klibc/arch/sparc/MCONFIG [deleted file]
klibc/klibc/arch/sparc/Makefile.inc [deleted file]
klibc/klibc/arch/sparc/crt0.S [deleted file]
klibc/klibc/arch/sparc/crt0i.S [deleted file]
klibc/klibc/arch/sparc/divrem.m4 [deleted file]
klibc/klibc/arch/sparc/setjmp.S [deleted file]
klibc/klibc/arch/sparc/smul.S [deleted file]
klibc/klibc/arch/sparc/syscall.S [deleted file]
klibc/klibc/arch/sparc/sysfork.S [deleted file]
klibc/klibc/arch/sparc/sysstub.ph [deleted file]
klibc/klibc/arch/sparc/umul.S [deleted file]
klibc/klibc/arch/sparc64/MCONFIG [deleted file]
klibc/klibc/arch/sparc64/Makefile.inc [deleted file]
klibc/klibc/arch/sparc64/crt0.S [deleted file]
klibc/klibc/arch/sparc64/setjmp.S [deleted file]
klibc/klibc/arch/sparc64/syscall.S [deleted file]
klibc/klibc/arch/sparc64/sysfork.S [deleted file]
klibc/klibc/arch/sparc64/sysstub.ph [deleted file]
klibc/klibc/arch/x86_64/MCONFIG [deleted file]
klibc/klibc/arch/x86_64/Makefile.inc [deleted file]
klibc/klibc/arch/x86_64/crt0.S [deleted file]
klibc/klibc/arch/x86_64/exits.S [deleted file]
klibc/klibc/arch/x86_64/setjmp.S [deleted file]
klibc/klibc/arch/x86_64/sigreturn.S [deleted file]
klibc/klibc/arch/x86_64/syscall.S [deleted file]
klibc/klibc/arch/x86_64/sysstub.ph [deleted file]
klibc/klibc/asprintf.c [deleted file]
klibc/klibc/assert.c [deleted file]
klibc/klibc/atexit.c [deleted file]
klibc/klibc/atexit.h [deleted file]
klibc/klibc/atoi.c [deleted file]
klibc/klibc/atol.c [deleted file]
klibc/klibc/atoll.c [deleted file]
klibc/klibc/atox.c [deleted file]
klibc/klibc/brk.c [deleted file]
klibc/klibc/bsd_signal.c [deleted file]
klibc/klibc/calloc.c [deleted file]
klibc/klibc/closelog.c [deleted file]
klibc/klibc/creat.c [deleted file]
klibc/klibc/ctypes.c [deleted file]
klibc/klibc/daemon.c [deleted file]
klibc/klibc/exec_l.c [deleted file]
klibc/klibc/execl.c [deleted file]
klibc/klibc/execle.c [deleted file]
klibc/klibc/execlp.c [deleted file]
klibc/klibc/execlpe.c [deleted file]
klibc/klibc/execv.c [deleted file]
klibc/klibc/execvp.c [deleted file]
klibc/klibc/execvpe.c [deleted file]
klibc/klibc/exitc.c [deleted file]
klibc/klibc/fgetc.c [deleted file]
klibc/klibc/fgets.c [deleted file]
klibc/klibc/fopen.c [deleted file]
klibc/klibc/fork.c [deleted file]
klibc/klibc/fprintf.c [deleted file]
klibc/klibc/fputc.c [deleted file]
klibc/klibc/fputs.c [deleted file]
klibc/klibc/fread.c [deleted file]
klibc/klibc/fread2.c [deleted file]
klibc/klibc/fstatfs.c [deleted file]
klibc/klibc/fwrite.c [deleted file]
klibc/klibc/fwrite2.c [deleted file]
klibc/klibc/getcwd.c [deleted file]
klibc/klibc/getdomainname.c [deleted file]
klibc/klibc/getenv.c [deleted file]
klibc/klibc/gethostname.c [deleted file]
klibc/klibc/getopt.c [deleted file]
klibc/klibc/getpgrp.c [deleted file]
klibc/klibc/getpriority.c [deleted file]
klibc/klibc/getpt.c [deleted file]
klibc/klibc/globals.c [deleted file]
klibc/klibc/inet/bindresvport.c [deleted file]
klibc/klibc/inet/inet_addr.c [deleted file]
klibc/klibc/inet/inet_aton.c [deleted file]
klibc/klibc/inet/inet_ntoa.c [deleted file]
klibc/klibc/inet/inet_ntop.c [deleted file]
klibc/klibc/inet/inet_pton.c [deleted file]
klibc/klibc/interp.S [deleted file]
klibc/klibc/isatty.c [deleted file]
klibc/klibc/jrand48.c [deleted file]
klibc/klibc/libc_init.c [deleted file]
klibc/klibc/libgcc/__divdi3.c [deleted file]
klibc/klibc/libgcc/__divsi3.c [deleted file]
klibc/klibc/libgcc/__moddi3.c [deleted file]
klibc/klibc/libgcc/__modsi3.c [deleted file]
klibc/klibc/libgcc/__udivdi3.c [deleted file]
klibc/klibc/libgcc/__udivmoddi4.c [deleted file]
klibc/klibc/libgcc/__udivmodsi4.c [deleted file]
klibc/klibc/libgcc/__udivsi3.c [deleted file]
klibc/klibc/libgcc/__umoddi3.c [deleted file]
klibc/klibc/libgcc/__umodsi3.c [deleted file]
klibc/klibc/llseek.c [deleted file]
klibc/klibc/lrand48.c [deleted file]
klibc/klibc/makeerrlist.pl [deleted file]
klibc/klibc/malloc.c [deleted file]
klibc/klibc/malloc.h [deleted file]
klibc/klibc/memccpy.c [deleted file]
klibc/klibc/memchr.c [deleted file]
klibc/klibc/memcmp.c [deleted file]
klibc/klibc/memcpy.c [deleted file]
klibc/klibc/memmem.c [deleted file]
klibc/klibc/memmove.c [deleted file]
klibc/klibc/memrchr.c [deleted file]
klibc/klibc/memset.c [deleted file]
klibc/klibc/memswap.c [deleted file]
klibc/klibc/mmap.c [deleted file]
klibc/klibc/mrand48.c [deleted file]
klibc/klibc/nice.c [deleted file]
klibc/klibc/nrand48.c [deleted file]
klibc/klibc/onexit.c [deleted file]
klibc/klibc/open.c [deleted file]
klibc/klibc/pause.c [deleted file]
klibc/klibc/perror.c [deleted file]
klibc/klibc/printf.c [deleted file]
klibc/klibc/pty.c [deleted file]
klibc/klibc/putchar.c [deleted file]
klibc/klibc/putenv.c [deleted file]
klibc/klibc/puts.c [deleted file]
klibc/klibc/qsort.c [deleted file]
klibc/klibc/raise.c [deleted file]
klibc/klibc/readdir.c [deleted file]
klibc/klibc/realloc.c [deleted file]
klibc/klibc/reboot.c [deleted file]
klibc/klibc/recv.c [deleted file]
klibc/klibc/sbrk.c [deleted file]
klibc/klibc/seed48.c [deleted file]
klibc/klibc/send.c [deleted file]
klibc/klibc/setegid.c [deleted file]
klibc/klibc/setenv.c [deleted file]
klibc/klibc/seteuid.c [deleted file]
klibc/klibc/setpgrp.c [deleted file]
klibc/klibc/sha1hash.c [deleted file]
klibc/klibc/sigaction.c [deleted file]
klibc/klibc/siglist.c [deleted file]
klibc/klibc/siglongjmp.c [deleted file]
klibc/klibc/sigpending.c [deleted file]
klibc/klibc/sigprocmask.c [deleted file]
klibc/klibc/sigsuspend.c [deleted file]
klibc/klibc/sleep.c [deleted file]
klibc/klibc/snprintf.c [deleted file]
klibc/klibc/socketcalls.pl [deleted file]
klibc/klibc/socketcommon.h [deleted file]
klibc/klibc/sprintf.c [deleted file]
klibc/klibc/srand48.c [deleted file]
klibc/klibc/sscanf.c [deleted file]
klibc/klibc/statfs.c [deleted file]
klibc/klibc/strcasecmp.c [deleted file]
klibc/klibc/strcat.c [deleted file]
klibc/klibc/strchr.c [deleted file]
klibc/klibc/strcmp.c [deleted file]
klibc/klibc/strcpy.c [deleted file]
klibc/klibc/strcspn.c [deleted file]
klibc/klibc/strdup.c [deleted file]
klibc/klibc/strerror.c [deleted file]
klibc/klibc/strlcat.c [deleted file]
klibc/klibc/strlcpy.c [deleted file]
klibc/klibc/strlen.c [deleted file]
klibc/klibc/strncasecmp.c [deleted file]
klibc/klibc/strncat.c [deleted file]
klibc/klibc/strncmp.c [deleted file]
klibc/klibc/strncpy.c [deleted file]
klibc/klibc/strndup.c [deleted file]
klibc/klibc/strnlen.c [deleted file]
klibc/klibc/strntoimax.c [deleted file]
klibc/klibc/strntoumax.c [deleted file]
klibc/klibc/strpbrk.c [deleted file]
klibc/klibc/strrchr.c [deleted file]
klibc/klibc/strsep.c [deleted file]
klibc/klibc/strspn.c [deleted file]
klibc/klibc/strstr.c [deleted file]
klibc/klibc/strtoimax.c [deleted file]
klibc/klibc/strtok.c [deleted file]
klibc/klibc/strtol.c [deleted file]
klibc/klibc/strtoll.c [deleted file]
klibc/klibc/strtotimespec.c [deleted file]
klibc/klibc/strtotimeval.c [deleted file]
klibc/klibc/strtotimex.c [deleted file]
klibc/klibc/strtoul.c [deleted file]
klibc/klibc/strtoull.c [deleted file]
klibc/klibc/strtoumax.c [deleted file]
klibc/klibc/strtox.c [deleted file]
klibc/klibc/strxspn.c [deleted file]
klibc/klibc/strxspn.h [deleted file]
klibc/klibc/syscalls.pl [deleted file]
klibc/klibc/syscommon.h [deleted file]
klibc/klibc/syslog.c [deleted file]
klibc/klibc/system.c [deleted file]
klibc/klibc/sysv_signal.c [deleted file]
klibc/klibc/time.c [deleted file]
klibc/klibc/umount.c [deleted file]
klibc/klibc/unsetenv.c [deleted file]
klibc/klibc/usleep.c [deleted file]
klibc/klibc/utime.c [deleted file]
klibc/klibc/vasprintf.c [deleted file]
klibc/klibc/vfprintf.c [deleted file]
klibc/klibc/vprintf.c [deleted file]
klibc/klibc/vsnprintf.c [deleted file]
klibc/klibc/vsprintf.c [deleted file]
klibc/klibc/vsscanf.c [deleted file]
klibc/klibc/wait.c [deleted file]
klibc/klibc/wait3.c [deleted file]
klibc/klibc/waitpid.c [deleted file]
klibc/klibc/zlib/FAQ [deleted file]
klibc/klibc/zlib/INDEX [deleted file]
klibc/klibc/zlib/README [deleted file]
klibc/klibc/zlib/adler32.c [deleted file]
klibc/klibc/zlib/algorithm.txt [deleted file]
klibc/klibc/zlib/compress.c [deleted file]
klibc/klibc/zlib/crc32.c [deleted file]
klibc/klibc/zlib/crc32.h [deleted file]
klibc/klibc/zlib/deflate.c [deleted file]
klibc/klibc/zlib/deflate.h [deleted file]
klibc/klibc/zlib/gzio.c [deleted file]
klibc/klibc/zlib/infback.c [deleted file]
klibc/klibc/zlib/inffast.c [deleted file]
klibc/klibc/zlib/inffast.h [deleted file]
klibc/klibc/zlib/inffixed.h [deleted file]
klibc/klibc/zlib/inflate.c [deleted file]
klibc/klibc/zlib/inflate.h [deleted file]
klibc/klibc/zlib/inftrees.c [deleted file]
klibc/klibc/zlib/inftrees.h [deleted file]
klibc/klibc/zlib/trees.c [deleted file]
klibc/klibc/zlib/trees.h [deleted file]
klibc/klibc/zlib/uncompr.c [deleted file]
klibc/klibc/zlib/zconf.h [deleted file]
klibc/klibc/zlib/zconf.in.h [deleted file]
klibc/klibc/zlib/zlib.3 [deleted file]
klibc/klibc/zlib/zlib.h [deleted file]
klibc/klibc/zlib/zutil.c [deleted file]
klibc/klibc/zlib/zutil.h [deleted file]
klibc/makeklcc.pl [deleted file]
klibc/version [deleted file]
test/simple-build-check.sh

index e6fd84f582bebae7f6290814a694df6d2b2eb89e..3ef3c4b838ce45882966ad98973141102c8409f4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+Summary of changes from v74 to v075
+============================================
+
 Summary of changes from v73 to v074
 ============================================
 
 Summary of changes from v73 to v074
 ============================================
 
index bc97388a1293283832214b873e99c8f6d6988178..c105dab2e28fc5313743423e587337ba296e03ff 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -122,7 +122,6 @@ configdir = ${etcdir}/udev
 udevdir =      /dev
 udevdb =       ${udevdir}/.udevdb
 LOCAL_CFG_DIR =        etc/udev
 udevdir =      /dev
 udevdb =       ${udevdir}/.udevdb
 LOCAL_CFG_DIR =        etc/udev
-KERNEL_DIR =   /lib/modules/${shell uname -r}/build
 DESTDIR =
 
 INSTALL = /usr/bin/install -c
 DESTDIR =
 
 INSTALL = /usr/bin/install -c
@@ -177,8 +176,7 @@ endif
 
 # if our own version of klibc is used, we need to build it
 ifeq ($(strip $(USE_KLIBC)),true)
 
 # if our own version of klibc is used, we need to build it
 ifeq ($(strip $(USE_KLIBC)),true)
-       KLIBC_INSTALL   = $(PWD)/klibc/.install
-       KLCC            = $(KLIBC_INSTALL)/bin/$(CROSS)klcc
+       KLCC            = /usr/bin/$(CROSS)klcc
        CC              = $(KLCC)
        LD              = $(KLCC)
        V = true
        CC              = $(KLCC)
        LD              = $(KLCC)
        V = true
@@ -203,7 +201,7 @@ else
        HOST_PROGS=
 endif
 
        HOST_PROGS=
 endif
 
-all: $(KLCC) $(PROGRAMS) $(MAN_PAGES)
+all: $(PROGRAMS) $(MAN_PAGES)
        @extras="$(EXTRAS)"; for target in $$extras; do \
                echo $$target; \
                $(MAKE) CC="$(CC)" \
        @extras="$(EXTRAS)"; for target in $$extras; do \
                echo $$target; \
                $(MAKE) CC="$(CC)" \
@@ -214,7 +212,6 @@ all: $(KLCC) $(PROGRAMS) $(MAN_PAGES)
                        LIB_OBJS="$(LIB_OBJS)" \
                        LIBUDEV="$(PWD)/$(LIBUDEV)" \
                        LIBSYSFS="$(PWD)/$(LIBSYSFS)" \
                        LIB_OBJS="$(LIB_OBJS)" \
                        LIBUDEV="$(PWD)/$(LIBUDEV)" \
                        LIBSYSFS="$(PWD)/$(LIBSYSFS)" \
-                       KERNEL_DIR="$(KERNEL_DIR)" \
                        QUIET="$(QUIET)" \
                        -C $$target $@; \
        done;
                        QUIET="$(QUIET)" \
                        -C $$target $@; \
        done;
@@ -229,28 +226,19 @@ all: $(KLCC) $(PROGRAMS) $(MAN_PAGES)
        $(QUIET) $(CC) -c $(CFLAGS) $< -o $@
 
 # "Static Pattern Rule" to build all programs
        $(QUIET) $(CC) -c $(CFLAGS) $< -o $@
 
 # "Static Pattern Rule" to build all programs
-$(PROGRAMS): %: $(HOST_PROGS) $(KLCC) $(HEADERS) $(GEN_HEADERS) $(LIBSYSFS) $(LIBUDEV) %.o
+$(PROGRAMS): %: $(HOST_PROGS) $(HEADERS) $(GEN_HEADERS) $(LIBSYSFS) $(LIBUDEV) %.o
        $(QUIET) $(LD) $(LDFLAGS) $@.o -o $@ $(LIBUDEV) $(LIBSYSFS) $(LIB_OBJS)
 ifneq ($(STRIPCMD),)
        $(QUIET) $(STRIPCMD) $@
 endif
 
        $(QUIET) $(LD) $(LDFLAGS) $@.o -o $@ $(LIBUDEV) $(LIBSYSFS) $(LIB_OBJS)
 ifneq ($(STRIPCMD),)
        $(QUIET) $(STRIPCMD) $@
 endif
 
-# our own copy of klibc, it is not used if KLCC is given
-$(KLCC):
-       $(MAKE) -C klibc KRNLSRC=$(KERNEL_DIR) SUBDIRS=klibc TESTS= \
-                        SHLIBDIR=$(KLIBC_INSTALL)/lib \
-                        INSTALLDIR=$(KLIBC_INSTALL) \
-                        bindir=$(KLIBC_INSTALL)/bin \
-                        mandir=$(KLIBC_INSTALL)/man all install
-.NOTPARALLEL: $(KLCC)
-
-$(UDEV_OBJS): $(KLCC)
+$(UDEV_OBJS):
 $(LIBUDEV): $(HOST_PROGS) $(HEADERS) $(GEN_HEADERS) $(UDEV_OBJS)
        @rm -f $@
        $(QUIET) $(AR) cq $@ $(UDEV_OBJS)
        $(QUIET) $(RANLIB) $@
 
 $(LIBUDEV): $(HOST_PROGS) $(HEADERS) $(GEN_HEADERS) $(UDEV_OBJS)
        @rm -f $@
        $(QUIET) $(AR) cq $@ $(UDEV_OBJS)
        $(QUIET) $(RANLIB) $@
 
-$(SYSFS_OBJS): $(KLCC)
+$(SYSFS_OBJS):
 $(LIBSYSFS): $(HOST_PROGS) $(SYSFS_OBJS)
        @rm -f $@
        $(QUIET) $(AR) cq $@ $(SYSFS_OBJS)
 $(LIBSYSFS): $(HOST_PROGS) $(SYSFS_OBJS)
        @rm -f $@
        $(QUIET) $(AR) cq $@ $(SYSFS_OBJS)
@@ -288,13 +276,10 @@ clean:
        - rm -f udev_gcov.txt
        - rm -f core $(PROGRAMS) $(GEN_HEADERS) $(GEN_CONFIGS)
        - rm -f udev-$(VERSION).tar.gz
        - rm -f udev_gcov.txt
        - rm -f core $(PROGRAMS) $(GEN_HEADERS) $(GEN_CONFIGS)
        - rm -f udev-$(VERSION).tar.gz
-       $(MAKE) -C klibc SUBDIRS=klibc clean
        @extras="$(EXTRAS)"; for target in $$extras; do \
                echo $$target; \
                $(MAKE) -C $$target $@; \
        done;
        @extras="$(EXTRAS)"; for target in $$extras; do \
                echo $$target; \
                $(MAKE) -C $$target $@; \
        done;
-       $(MAKE) -C klibc SUBDIRS=klibc spotless
-       rm -rf klibc/.install
 .PHONY: clean
 
 release:
 .PHONY: clean
 
 release:
diff --git a/README b/README
index 19ed4468eab0806207bacf6f27dc3f606413789a..3f4f947f79255816665dd63777da2eee64ec374a 100644 (file)
--- a/README
+++ b/README
@@ -45,9 +45,7 @@ Setting which are used for building udev:
   USE_LOG
        if set to 'true', udev will emit messages to the syslog when
        it creates or removes device nodes.  This is helpful to see
   USE_LOG
        if set to 'true', udev will emit messages to the syslog when
        it creates or removes device nodes.  This is helpful to see
-       what udev is doing.  This is enabled by default.  Note, if you
-       are building udev against klibc it is recommended that you
-       disable this option (due to klibc's syslog implementation.)
+       what udev is doing.  This is enabled by default.
   DEBUG
        if set to 'true', verbose debugging messages will be compiled into
        the udev binaries.  Default value is 'false'.
   DEBUG
        if set to 'true', verbose debugging messages will be compiled into
        the udev binaries.  Default value is 'false'.
@@ -55,20 +53,13 @@ Setting which are used for building udev:
        if set to 'true', udev will be built with SELinux support
        enabled.  This is disabled by default.
   USE_KLIBC
        if set to 'true', udev will be built with SELinux support
        enabled.  This is disabled by default.
   USE_KLIBC
-       if set to 'true', udev is built and linked against the
-       included version of klibc.  Default value is 'false'.
-  KERNEL_DIR
-       If this is not set it will default to /lib/modules/`uname -r`/build
-       This is used if USE_KLIBC=true to find the kernel include
-       directory that klibc needs to build against.  This must be set
-       if you are not building udev while running a 2.6 kernel.
+       if set to 'true', udev is built and linked against klibc.
+       Default value is 'false'. KLCC specifies the klibc compiler
+       wrapper, usually in /usr/bin/klcc
   EXTRAS
        if set, will build the "extra" helper programs as specified
        as listed (see below for an example.)
 
   EXTRAS
        if set, will build the "extra" helper programs as specified
        as listed (see below for an example.)
 
-if you want to build udev using klibc with debugging messages:
-  make USE_KLIBC=true DEBUG=true
-
 if you want to build the udev helper program cdrom_id and scsi_id:
   make EXTRAS="extras/cdrom_id extras/scsi_id"
 
 if you want to build the udev helper program cdrom_id and scsi_id:
   make EXTRAS="extras/cdrom_id extras/scsi_id"
 
index 8a1bde8a3b44c0a5a9a978f719c10fcfc7a5c956..d89aeaa69f987f0ef5aa86910476d1a5ff29e10e 100644 (file)
@@ -1,3 +1,8 @@
+udev 075
+========
+The copy of klibc is removed. A systemwide installed version of klibc
+can be used to buil a klibc udev.
+
 udev 074
 ========
 NAME="" will not create any nodes, but execute RUN keys. To completely
 udev 074
 ========
 NAME="" will not create any nodes, but execute RUN keys. To completely
diff --git a/klibc/MCONFIG b/klibc/MCONFIG
deleted file mode 100644 (file)
index 450e5c7..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-# -*- makefile -*-
-#
-# Makefile configuration, without explicit rules
-#
-
-# CROSS is the prefix used for system tools like gcc, ld etc.
-CROSS   = 
-
-# KCROSS is the prefix we use for klibc installations.  This is usually
-# the same as CROSS, but may be different, e.g. to install an i386
-# cross-compilation suite on an x86-64 system, using the same gcc/binutils.
-KCROSS ?= $(CROSS)
-
-# Location for installation
-prefix      = /usr
-bindir      = $(prefix)/bin
-libdir      = $(prefix)/lib
-mandir      = $(prefix)/man
-INSTALLDIR  = $(prefix)/lib/klibc
-INSTALLROOT =
-
-INSTALL_EXEC = install -m 755
-INSTALL_DATA = install -m 644
-
-# Eventually support separate compilation, but we don't have it yet...
-OBJROOT = $(SRCROOT)
-
-# Kernel trees (source and obj) - can potentially be different
-KRNLSRC = $(SRCROOT)/linux
-KRNLOBJ = $(SRCROOT)/linux
-
-# klibc version information
-KLIBCVER = -D__KLIBC__=$(shell cut -d. -f1 < $(SRCROOT)/version) \
-          -D__KLIBC_MINOR__=$(shell cut -d. -f2 < $(SRCROOT)/version)
-
-ARCH    = $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/parisc.*/parisc/)
-CC     = $(CROSS)gcc
-LD      = $(CROSS)ld
-KLIBSRC = $(SRCROOT)/klibc
-KLIBOBJ = $(OBJROOT)/klibc
-INCLUDE = -I$(SRCROOT)/include/arch/$(ARCH) \
-         -I$(SRCROOT)/include/bits$(BITSIZE) \
-         -I$(SRCROOT)/include \
-         -I$(KRNLOBJ)/include -I$(KRNLOBJ)/include2 -I$(KRNLSRC)/include
-REQFLAGS = $(ARCHREQFLAGS) $(KLIBCVER) -nostdlib -nostdinc -iwithprefix include \
-          $(INCLUDE)
-LDFLAGS =
-AR      = $(CROSS)ar
-RANLIB  = $(CROSS)ranlib
-NM     = $(CROSS)nm
-PERL    = perl
-OBJCOPY = $(CROSS)objcopy
-
-STRIP      = $(CROSS)strip
-STRIPFLAGS = --strip-all -R .comment -R .note
-STRIPCMD   = $(STRIP) $(STRIPFLAGS)
-
-HOST_CC      = gcc
-HOST_CFLAGS  = -g -O
-HOST_LDFLAGS = 
-HOST_LIBS    =
-
-# Static library paths
-CRT0      = $(KLIBOBJ)/crt0.o
-KLIBC     = $(KLIBOBJ)/libc.a
-LIBGCC    = $(shell $(CC) $(REQFLAGS) $(OPTFLAGS) --print-libgcc)
-
-# Shared library paths
-CRTSHARED = $(KLIBOBJ)/interp.o
-LIBSHARED = $(KLIBOBJ)/libc.so
-
-#
-# This indicates the location of the final version of the shared library.
-# THIS MUST BE AN ABSOLUTE PATH WITH NO FINAL SLASH.
-# Leave this empty to make it the root.
-#
-SHLIBDIR = /lib
-
-# Enable this to make perror/strerror return real error messages
-# This makes klibc.so and any static binary which uses these functions
-# about 4K bigger.
-ERRLIST = 1
-
-# Include zlib in klibc.  This roughly triples the size of klibc!
-ZLIB = 0
-
-#
-# Include arch-specific rule fragments
-#
-include $(KLIBSRC)/arch/$(ARCH)/MCONFIG
-
-ifeq ($(DEBUG),y)
-STRIP     = /bin/true -Since_we_are_debugging
-OPTFLAGS += -O1 -g
-endif
-
-# How to tell the linker main() is the entrypoint
-EMAIN ?= -e main
diff --git a/klibc/MRULES b/klibc/MRULES
deleted file mode 100644 (file)
index 41fdd07..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# -*- makefile -*-
-#
-# Standard pattern rules
-#
-
-.SUFFIXES: .c .o .a .so .lo .i .S .s .ls .ss .lss
-
-% : %.c        # Cancel default rule
-
-% : %.S
-
-.c.o:
-       $(CC) $(CFLAGS) -c -o $@ $<
-
-.c.i:
-       $(CC) $(CFLAGS) -E -o $@ $<
-
-.c.s:
-       $(CC) $(CFLAGS) -S -o $@ $<
-
-.S.o:
-       $(CC) $(CFLAGS) -D__ASSEMBLY__ -c -o $@ $<
-
-.S.s:
-       $(CC) $(CFLAGS) -D__ASSEMBLY__ -E -o $@ $<
-
-.S.lo:
-       $(CC) $(CFLAGS) $(SOFLAGS) -D__ASSEMBLY__ -c -o $@ $<
-
-.S.ls:
-       $(CC) $(CFLAGS) $(SOFLAGS) -D__ASSEMBLY__ -E -o $@ $<
-
-.s.o:
-       $(CC) $(CFLAGS) -x assembler -c -o $@ $<
-
-.ls.lo:
-       $(CC) $(CFLAGS) $(SOFLAGS) -x assembler -c -o $@ $<
-
-.c.lo:
-       $(CC) $(CFLAGS) $(SOFLAGS) -c -o $@ $<
-
-.c.ls:
-       $(CC) $(CFLAGS) $(SOFLAGS) -S -o $@ $<
-
-
diff --git a/klibc/Makefile b/klibc/Makefile
deleted file mode 100644 (file)
index e634aac..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-VERSION := $(shell cat version)
-SUBDIRS = klibc ash ipconfig nfsmount utils kinit gzip
-SRCROOT = .
-
-all:
-
-rpmbuild = $(shell which rpmbuild 2>/dev/null || which rpm)
-
-klibc.spec: klibc.spec.in version
-       sed -e 's/@@VERSION@@/$(VERSION)/g' < $< > $@
-
-.PHONY: rpm
-rpm: klibc.spec
-       +$(rpmbuild) -bb klibc.spec --target=$(ARCH)
-
-$(CROSS)klibc.config: Makefile
-       rm -f $@
-       echo 'ARCH=$(ARCH)' >> $@
-       echo 'CROSS=$(CROSS)' >> $@
-       echo 'KCROSS=$(KCROSS)' >> $@
-       echo 'CC=$(CC)' >> $@
-       echo 'LD=$(LD)' >> $@
-       echo 'REQFLAGS=$(filter-out -I%,$(REQFLAGS))' >> $@
-       echo 'OPTFLAGS=$(OPTFLAGS)' >> $@
-       echo 'LDFLAGS=$(LDFLAGS)' >> $@
-       echo 'STRIP=$(STRIP)' >> $@
-       echo 'STRIPFLAGS=$(STRIPFLAGS)' >> $@
-       echo 'EMAIN=$(EMAIN)' >> $@
-       echo 'BITSIZE=$(BITSIZE)' >> $@
-       echo 'prefix=$(INSTALLDIR)' >> $@
-       echo 'bindir=$(INSTALLDIR)/$(KCROSS)bin' >> $@
-       echo 'libdir=$(INSTALLDIR)/$(KCROSS)lib' >> $@
-       echo 'includedir=$(INSTALLDIR)/$(KCROSS)include' >> $@
-
-$(CROSS)klcc: klcc.in $(CROSS)klibc.config makeklcc.pl
-       $(PERL) makeklcc.pl klcc.in $(CROSS)klibc.config \
-               $(shell bash -c 'type -p $(PERL)') > $@ || ( rm -f $@ ; exit 1 )
-       chmod a+x $@
-
-%: local-%
-       @set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done
-
-local-all: $(CROSS)klcc
-
-local-clean:
-       rm -f klibc.config klcc
-
-local-spotless: local-clean
-       rm -f klibc.spec *~ tags
-
-local-install: $(CROSS)klcc
-       mkdir -p $(INSTALLROOT)$(bindir)
-       mkdir -p $(INSTALLROOT)$(mandir)/man1
-       mkdir -p $(INSTALLROOT)$(SHLIBDIR)
-       mkdir -p $(INSTALLROOT)$(INSTALLDIR)
-       -rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
-       mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
-       mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
-       mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
-       set -xe ; for d in linux scsi asm-$(ARCH) asm-generic $(ASMARCH); do \
-         mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d ; \
-         for r in $(KRNLSRC)/include $(KRNLOBJ)/include $(KRNLOBJ)/include2 ; do \
-           [ ! -d $$r/$$d ] || \
-             cp -rfL $$r/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \
-         done ; \
-       done
-       cd $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include && ln -sf asm-$(ARCH) asm
-       cp -rf include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/.
-       $(INSTALL_DATA) klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1
-       $(INSTALL_EXEC) $(KCROSS)klcc $(INSTALLROOT)$(bindir)
-
-# This does all the prep work needed to turn a freshly exported git repository
-# into a release tarball tree
-release: klibc.spec
-       rm -f maketar.sh
-
--include MCONFIG
diff --git a/klibc/README b/klibc/README
deleted file mode 100644 (file)
index eb72e1c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Please see klibc/README for build instructions and for the status of
-various platforms.
-
-
-
-klibc is archived at:
-
-       ftp://ftp.kernel.org/pub/linux/libs/klibc/
-
-There is a mailing list for klibc and early-userspace issues at:
-
-       http://www.zytor.com/mailman/listinfo/klibc/
-
-There is also a cvsweb repository at:
-
-       http://www.zytor.com/cvsweb.cgi/klibc/
-
-There is no direct public CVS access yet, however, the CVS repository
-is available for rsync from:
-
-       rsync://rsync.kernel.org/pub/linux/libs/klibc/cvsroot/
diff --git a/klibc/include/alloca.h b/klibc/include/alloca.h
deleted file mode 100644 (file)
index 41a4d94..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * alloca.h
- *
- * Just call the builtin alloca() function
- */
-
-#ifndef _ALLOCA_H
-#define _ALLOCA_H
-
-#define alloca(size) __builtin_alloca(size)
-
-#endif /* _ALLOCA_H */
-
diff --git a/klibc/include/arch/alpha/klibc/archsetjmp.h b/klibc/include/arch/alpha/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 9dc570a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * arch/alpha/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __s0;
-  unsigned long __s1;
-  unsigned long __s2;
-  unsigned long __s3;
-  unsigned long __s4;
-  unsigned long __s5;
-  unsigned long __fp;
-  unsigned long __ra;
-  unsigned long __gp;
-  unsigned long __sp;
-  
-  unsigned long __f2;
-  unsigned long __f3;
-  unsigned long __f4;
-  unsigned long __f5;
-  unsigned long __f6;
-  unsigned long __f7;
-  unsigned long __f8;
-  unsigned long __f9;
-};
-
-/* Must be an array so it will decay to a pointer when a function is called */
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _KLIBC_ARCHSETJMP_H */
diff --git a/klibc/include/arch/alpha/klibc/archsignal.h b/klibc/include/arch/alpha/klibc/archsignal.h
deleted file mode 100644 (file)
index b870a05..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/alpha/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/alpha/klibc/archstat.h b/klibc/include/arch/alpha/klibc/archstat.h
deleted file mode 100644 (file)
index 23302d7..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-struct stat {
-       unsigned long   st_dev;
-       unsigned long   st_ino;
-       unsigned long   st_rdev;
-       long            st_size;
-       unsigned long   st_blocks;
-
-       unsigned int    st_mode;
-       unsigned int    st_uid;
-       unsigned int    st_gid;
-       unsigned int    st_blksize;
-       unsigned int    st_nlink;
-       unsigned int    __pad0;
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-       long            __unused[3];
-};
-
-#endif
diff --git a/klibc/include/arch/alpha/klibc/archsys.h b/klibc/include/arch/alpha/klibc/archsys.h
deleted file mode 100644 (file)
index 16ed658..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * arch/alpha/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* Alpha has some bizarre Tru64-derived system calls which return two
-   different values in $0 and $20(!), respectively.  The standard
-   macros can't deal with these; even the ones that give the right
-   return value have the wrong clobbers. */
-
-#define _syscall0_dual0(type, name)                                     \
-type name(void)                                                         \
-{                                                                       \
-        long _sc_ret, _sc_err;                                          \
-        {                                                               \
-                register long _sc_0 __asm__("$0");                      \
-                register long _sc_19 __asm__("$19");                    \
-                register long _sc_20 __asm__("$20");                    \
-                                                                        \
-                _sc_0 = __NR_##name;                                    \
-                __asm__("callsys"                                       \
-                        : "=r"(_sc_0), "=r"(_sc_19), "=r" (_sc_20)      \
-                        : "0"(_sc_0)                                    \
-                        : _syscall_clobbers);                           \
-                _sc_ret = _sc_0, _sc_err = _sc_19; (void)(_sc_20);      \
-        }                                                               \
-        _syscall_return(type);                                          \
-}
-
-#define _syscall0_dual1(type, name)                                     \
-type name(void)                                                         \
-{                                                                       \
-        long _sc_ret, _sc_err;                                          \
-        {                                                               \
-                register long _sc_0 __asm__("$0");                      \
-                register long _sc_19 __asm__("$19");                    \
-                register long _sc_20 __asm__("$20");                    \
-                                                                        \
-                _sc_0 = __NR_##name;                                    \
-                __asm__("callsys"                                       \
-                        : "=r"(_sc_0), "=r"(_sc_19), "=r" (_sc_20)      \
-                        : "0"(_sc_0)                                    \
-                        : _syscall_clobbers);                           \
-                _sc_ret = _sc_20, _sc_err = _sc_19; (void)(_sc_0);      \
-        }                                                               \
-        _syscall_return(type);                                          \
-}
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/alpha/machine/asm.h b/klibc/include/arch/alpha/machine/asm.h
deleted file mode 100644 (file)
index e22db90..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * machine/asm.h
- */
-
-#ifndef _MACHINE_ASM_H
-#define _MACHINE_ASM_H
-
-/* Standard aliases for Alpha register names */
-
-#define v0     $0
-#define t0     $1
-#define t1     $2
-#define t2     $3
-#define t3     $4
-#define t4     $5
-#define t5     $6
-#define t6     $7
-#define t7     $8
-#define s0     $9
-#define s1     $10
-#define s2     $11
-#define s3     $12
-#define s4     $13
-#define s5     $14
-#define fp     $15
-#define a0     $16
-#define a1     $17
-#define a2     $18
-#define a3     $19
-#define a4     $20
-#define a5     $21
-#define t8     $22
-#define t9     $23
-#define t10    $24
-#define t11    $25
-#define ra     $26
-#define t12    $27             /* t12 and pv are both used for $27 */
-#define pv     $27             /* t12 and pv are both used for $27 */
-#define at     $28
-#define gp     $29
-#define sp     $30
-#define zero   $31
-
-#endif /* _MACHINE_ASM_H */
diff --git a/klibc/include/arch/arm/klibc/archsetjmp.h b/klibc/include/arch/arm/klibc/archsetjmp.h
deleted file mode 100644 (file)
index c956b50..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * arch/i386/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned int regs[10];
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/arm/klibc/archsignal.h b/klibc/include/arch/arm/klibc/archsignal.h
deleted file mode 100644 (file)
index 77685e6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/arm/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/arm/klibc/archstat.h b/klibc/include/arch/arm/klibc/archstat.h
deleted file mode 100644 (file)
index 42b1409..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#include <endian.h>
-
-#define _STATBUF_ST_NSEC
-
-/* This matches struct stat64 in glibc2.1, hence the absolutely
- * insane amounts of padding around dev_t's.
- * Note: The kernel zero's the padded region because glibc might read them
- * in the hope that the kernel has stretched to using larger sizes.
- */
-struct stat {
-       unsigned long long      st_dev;
-       unsigned char   __pad0[4];
-
-       unsigned long   __st_ino;
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned long   st_uid;
-       unsigned long   st_gid;
-
-       unsigned long long      st_rdev;
-       unsigned char   __pad3[4];
-
-       long long       st_size;
-       unsigned long   st_blksize;
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-       unsigned long   __pad4;         /* Future possible st_blocks hi bits */
-       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
-#else /* Must be little */
-       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
-       unsigned long   __pad4;         /* Future possible st_blocks hi bits */
-#endif
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-
-       unsigned long long      st_ino;
-};
-
-#endif
diff --git a/klibc/include/arch/arm/klibc/archsys.h b/klibc/include/arch/arm/klibc/archsys.h
deleted file mode 100644 (file)
index dfdc70a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/cris/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/cris/klibc/archsetjmp.h b/klibc/include/arch/cris/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 8d20800..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * arch/cris/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __r0;
-  unsigned long __r1;
-  unsigned long __r2;
-  unsigned long __r3;
-  unsigned long __r4;
-  unsigned long __r5;
-  unsigned long __r6;
-  unsigned long __r7;
-  unsigned long __r8;
-  unsigned long __sp;
-  unsigned long __srp;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _KLIBC_ARCHSETJMP_H */
diff --git a/klibc/include/arch/cris/klibc/archsignal.h b/klibc/include/arch/cris/klibc/archsignal.h
deleted file mode 100644 (file)
index 73b2e19..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/cris/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/cris/klibc/archstat.h b/klibc/include/arch/cris/klibc/archstat.h
deleted file mode 100644 (file)
index 1548207..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-/* This matches struct stat64 in glibc2.1, hence the absolutely
- * insane amounts of padding around dev_t's.
- */
-struct stat {
-       unsigned long long      st_dev;
-       unsigned char   __pad0[4];
-
-       unsigned long   __st_ino;
-
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned long   st_uid;
-       unsigned long   st_gid;
-
-       unsigned long long      st_rdev;
-       unsigned char   __pad3[4];
-
-       long long       st_size;
-       unsigned long   st_blksize;
-
-       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
-       unsigned long   __pad4;         /* future possible st_blocks high bits */
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-
-       unsigned long long      st_ino;
-};
-
-#endif
diff --git a/klibc/include/arch/cris/klibc/archsys.h b/klibc/include/arch/cris/klibc/archsys.h
deleted file mode 100644 (file)
index dfdc70a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/cris/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/i386/klibc/archsetjmp.h b/klibc/include/arch/i386/klibc/archsetjmp.h
deleted file mode 100644 (file)
index db04314..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/i386/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned int __ebx;
-  unsigned int __esp;
-  unsigned int __ebp;
-  unsigned int __esi;
-  unsigned int __edi;
-  unsigned int __eip;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/i386/klibc/archsignal.h b/klibc/include/arch/i386/klibc/archsignal.h
deleted file mode 100644 (file)
index b092ba6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/i386/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/i386/klibc/archstat.h b/klibc/include/arch/i386/klibc/archstat.h
deleted file mode 100644 (file)
index 1548207..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-/* This matches struct stat64 in glibc2.1, hence the absolutely
- * insane amounts of padding around dev_t's.
- */
-struct stat {
-       unsigned long long      st_dev;
-       unsigned char   __pad0[4];
-
-       unsigned long   __st_ino;
-
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned long   st_uid;
-       unsigned long   st_gid;
-
-       unsigned long long      st_rdev;
-       unsigned char   __pad3[4];
-
-       long long       st_size;
-       unsigned long   st_blksize;
-
-       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
-       unsigned long   __pad4;         /* future possible st_blocks high bits */
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-
-       unsigned long long      st_ino;
-};
-
-#endif
diff --git a/klibc/include/arch/i386/klibc/archsys.h b/klibc/include/arch/i386/klibc/archsys.h
deleted file mode 100644 (file)
index dfdc70a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/cris/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/i386/klibc/diverr.h b/klibc/include/arch/i386/klibc/diverr.h
deleted file mode 100644 (file)
index 410aba0..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * arch/i386/include/klibc/diverr.h
- */
-
-#ifndef _KLIBC_DIVERR_H
-#define _KLIBC_DIVERR_H
-
-#include <signal.h>
-
-static __inline__ void
-__divide_error(void)
-{
-  asm volatile("divl %0" :: "rm" (0) : "eax", "edx");
-}
-
-#endif /* _KLIBC_DIVERR_H */
diff --git a/klibc/include/arch/i386/sys/io.h b/klibc/include/arch/i386/sys/io.h
deleted file mode 100644 (file)
index b051464..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#ident "$Id: io.h,v 1.2 2004/01/25 07:49:39 hpa Exp $"
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 2004 H. Peter Anvin - All Rights Reserved
- *
- *   Permission is hereby granted, free of charge, to any person
- *   obtaining a copy of this software and associated documentation
- *   files (the "Software"), to deal in the Software without
- *   restriction, including without limitation the rights to use,
- *   copy, modify, merge, publish, distribute, sublicense, and/or
- *   sell copies of the Software, and to permit persons to whom
- *   the Software is furnished to do so, subject to the following
- *   conditions:
- *   
- *   The above copyright notice and this permission notice shall
- *   be included in all copies or substantial portions of the Software.
- *   
- *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *   OTHER DEALINGS IN THE SOFTWARE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * sys/io.h for the i386 architecture
- *
- * Basic I/O macros
- */
-
-#ifndef _SYS_IO_H
-#define _SYS_IO_H 1
-
-/* I/O-related system calls */
-
-int iopl(int);
-int ioperm(unsigned long, unsigned long, int);
-
-/* Basic I/O macros */
-
-static __inline__ void
-outb(unsigned char __v, unsigned short __p)
-{
-  asm volatile("outb %0,%1" : : "a" (__v), "dN" (__p));
-}
-
-static __inline__ void
-outw(unsigned short __v, unsigned short __p)
-{
-  asm volatile("outw %0,%1" : : "a" (__v), "dN" (__p));
-}
-
-static __inline__ void
-outl(unsigned int __v, unsigned short __p)
-{
-  asm volatile("outl %0,%1" : : "a" (__v), "dN" (__p));
-}
-
-static __inline__ unsigned char
-inb(unsigned short __p)
-{
-  unsigned char __v;
-  asm volatile("inb %1,%0" : "=a" (__v) : "dN" (__p));
-  return __v;
-}
-
-static __inline__ unsigned short
-inw(unsigned short __p)
-{
-  unsigned short __v;
-  asm volatile("inw %1,%0" : "=a" (__v) : "dN" (__p));
-  return __v;
-}
-
-static __inline__ unsigned int
-inl(unsigned short __p)
-{
-  unsigned int __v;
-  asm volatile("inl %1,%0" : "=a" (__v) : "dN" (__p));
-  return __v;
-}
-
-/* String I/O macros */
-
-static __inline__ void
-outsb (unsigned short __p, const void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; outsb" : "+S" (__d), "+c" (__n) : "d" (__p));
-}
-
-static __inline__ void
-outsw (unsigned short __p, const void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; outsw" : "+S" (__d), "+c" (__n) : "d" (__p));
-}
-
-static __inline__ void
-outsl (unsigned short __p, const void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; outsl" : "+S" (__d), "+c" (__n) : "d" (__p));
-}
-
-
-static __inline__ void
-insb (unsigned short __p, void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; insb" : "+D" (__d), "+c" (__n) : "d" (__p));
-}
-
-static __inline__ void
-insw (unsigned short __p, void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; insw" : "+D" (__d), "+c" (__n) : "d" (__p));
-}
-
-static __inline__ void
-insl (unsigned short __p, void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; insl" : "+D" (__d), "+c" (__n) : "d" (__p));
-}
-
-#endif /* _SYS_IO_H */
diff --git a/klibc/include/arch/i386/sys/vm86.h b/klibc/include/arch/i386/sys/vm86.h
deleted file mode 100644 (file)
index d327239..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ident "$Id: vm86.h,v 1.1 2004/01/25 01:34:28 hpa Exp $"
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 2004 H. Peter Anvin - All Rights Reserved
- *
- *   Permission is hereby granted, free of charge, to any person
- *   obtaining a copy of this software and associated documentation
- *   files (the "Software"), to deal in the Software without
- *   restriction, including without limitation the rights to use,
- *   copy, modify, merge, publish, distribute, sublicense, and/or
- *   sell copies of the Software, and to permit persons to whom
- *   the Software is furnished to do so, subject to the following
- *   conditions:
- *   
- *   The above copyright notice and this permission notice shall
- *   be included in all copies or substantial portions of the Software.
- *   
- *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *   OTHER DEALINGS IN THE SOFTWARE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * sys/vm86.h for i386
- */
-
-#ifndef _SYS_VM86_H
-#define _SYS_VM86_H 1
-
-#include <asm/vm86.h>
-
-/* Actual system call */
-int vm86(struct vm86_struct *);
-
-#endif
diff --git a/klibc/include/arch/ia64/klibc/archsetjmp.h b/klibc/include/arch/ia64/klibc/archsetjmp.h
deleted file mode 100644 (file)
index bd639c0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * arch/ia64/include/klibc/archsetjmp.h
- *
- * Code borrowed from the FreeBSD kernel.
- *
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-/* User code must not depend on the internal representation of jmp_buf. */
-#define _JBLEN 0x200
-
-/* guaranteed 128-bit alignment! */
-typedef char jmp_buf[_JBLEN] __attribute__ ((aligned (16)));
-
-#endif
diff --git a/klibc/include/arch/ia64/klibc/archsignal.h b/klibc/include/arch/ia64/klibc/archsignal.h
deleted file mode 100644 (file)
index 5b01f19..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * arch/ia64/include/klibc/archsignal.h
- * 
- * Architecture-specific signal definitions.
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-#define _NSIG        64
-#define _NSIG_BPW    64
-#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
-
-typedef struct {
-       unsigned long sig[_NSIG_WORDS];
-} sigset_t;
-
-struct sigaction {
-        union {
-               __sighandler_t        _sa_handler;
-               void (*_sa_sigaction)(int, struct siginfo *, void *);
-        } _u;
-        sigset_t        sa_mask;
-        int             sa_flags;
-};
-
-#define sa_handler      _u._sa_handler
-#define sa_sigaction    _u._sa_sigaction
-
-#endif
diff --git a/klibc/include/arch/ia64/klibc/archstat.h b/klibc/include/arch/ia64/klibc/archstat.h
deleted file mode 100644 (file)
index 9475c0b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-struct stat {
-       unsigned long   st_dev;
-       unsigned long   st_ino;
-       unsigned long   st_nlink;
-       unsigned int    st_mode;
-       unsigned int    st_uid;
-       unsigned int    st_gid;
-       unsigned int    __pad0;
-       unsigned long   st_rdev;
-       unsigned long   st_size;
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-       unsigned long   st_blksize;
-       long            st_blocks;
-       unsigned long   __unused[3];
-};
-
-#endif
diff --git a/klibc/include/arch/ia64/klibc/archsys.h b/klibc/include/arch/ia64/klibc/archsys.h
deleted file mode 100644 (file)
index 4c795a4..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * arch/ia64/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-#define __IA64_BREAK "break 0x100000;;\n\t"
-
-#define _syscall0(type,name)                                            \
-type                                                                    \
-name (void)                                                             \
-{                                                                       \
-       register long _r8 asm ("r8");                                   \
-       register long _r10 asm ("r10");                                  \
-       register long _r15 asm ("r15") = __NR_##name;                    \
-       long _retval;                                                    \
-       __asm __volatile (__IA64_BREAK                                   \
-                         : "=r" (_r8), "=r" (_r10), "=r" (_r15)         \
-                         : "2" (_r15) ASM_ARGS_0                        \
-                         : "memory" ASM_CLOBBERS_0);                    \
-       _retval = _r8;                                                   \
-       if (_r10 == -1) {                                                \
-               errno = (_retval);                                       \
-               _retval = -1;                                            \
-       }                                                                \
-       return (type)_retval;                                                  \
-}
-
-#define _syscall1(type,name,type1,arg1)                                 \
-type                                                                    \
-name (type1 arg1)                                                       \
-{                                                                       \
-       register long _r8 asm ("r8");                                   \
-       register long _r10 asm ("r10");                                  \
-       register long _r15 asm ("r15") = __NR_##name;                    \
-       long _retval;                                                    \
-       LOAD_ARGS_1(arg1);                                               \
-       __asm __volatile (__IA64_BREAK                                   \
-                         : "=r" (_r8), "=r" (_r10), "=r" (_r15),        \
-                           ASM_OUTARGS_1                                \
-                         : "2" (_r15) ASM_ARGS_1                        \
-                         : "memory" ASM_CLOBBERS_1);                    \
-       _retval = _r8;                                                   \
-       if (_r10 == -1) {                                                \
-               errno = (_retval);                                       \
-               _retval = -1;                                            \
-       }                                                                \
-       return (type)_retval;                                                  \
-}
-
-#define _syscall2(type,name,type1,arg1,type2,arg2)                      \
-type                                                                    \
-name (type1 arg1, type2 arg2)                                           \
-{                                                                       \
-       register long _r8 asm ("r8");                                   \
-       register long _r10 asm ("r10");                                  \
-       register long _r15 asm ("r15") = __NR_##name;                    \
-       long _retval;                                                    \
-       LOAD_ARGS_2(arg1, arg2);                                         \
-       __asm __volatile (__IA64_BREAK                                   \
-                         : "=r" (_r8), "=r" (_r10), "=r" (_r15),        \
-                           ASM_OUTARGS_2                                \
-                         : "2" (_r15) ASM_ARGS_2                        \
-                         : "memory" ASM_CLOBBERS_2);                    \
-       _retval = _r8;                                                   \
-       if (_r10 == -1) {                                                \
-               errno = (_retval);                                       \
-               _retval = -1;                                            \
-       }                                                                \
-       return (type)_retval;                                                  \
-}
-
-#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)           \
-type                                                                    \
-name (type1 arg1, type2 arg2, type3 arg3)                               \
-{                                                                       \
-       register long _r8 asm ("r8");                                   \
-       register long _r10 asm ("r10");                                  \
-       register long _r15 asm ("r15") = __NR_##name;                    \
-       long _retval;                                                    \
-       LOAD_ARGS_3(arg1, arg2, arg3);                                   \
-       __asm __volatile (__IA64_BREAK                                   \
-                         : "=r" (_r8), "=r" (_r10), "=r" (_r15),        \
-                           ASM_OUTARGS_3                                \
-                         : "2" (_r15) ASM_ARGS_3                        \
-                         : "memory" ASM_CLOBBERS_3);                    \
-       _retval = _r8;                                                   \
-       if (_r10 == -1) {                                                \
-               errno = (_retval);                                       \
-               _retval = -1;                                            \
-       }                                                                \
-       return (type)_retval;                                                  \
-}
-
-#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-type                                                                    \
-name (type1 arg1, type2 arg2, type3 arg3, type4 arg4)                   \
-{                                                                       \
-       register long _r8 asm ("r8");                                   \
-       register long _r10 asm ("r10");                                  \
-       register long _r15 asm ("r15") = __NR_##name;                    \
-       long _retval;                                                    \
-       LOAD_ARGS_4(arg1, arg2, arg3, arg4);                             \
-       __asm __volatile (__IA64_BREAK                                   \
-                         : "=r" (_r8), "=r" (_r10), "=r" (_r15),        \
-                           ASM_OUTARGS_4                                \
-                         : "2" (_r15) ASM_ARGS_4                        \
-                         : "memory" ASM_CLOBBERS_4);                    \
-       _retval = _r8;                                                   \
-       if (_r10 == -1) {                                                \
-               errno = (_retval);                                       \
-               _retval = -1;                                            \
-       }                                                                \
-       return (type)_retval;                                                  \
-}
-
-#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
-type                                                                    \
-name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)       \
-{                                                                       \
-       register long _r8 asm ("r8");                                   \
-       register long _r10 asm ("r10");                                  \
-       register long _r15 asm ("r15") = __NR_##name;                    \
-       long _retval;                                                    \
-       LOAD_ARGS_5(arg1, arg2, arg3, arg4, arg5);                       \
-       __asm __volatile (__IA64_BREAK                                   \
-                         : "=r" (_r8), "=r" (_r10), "=r" (_r15),        \
-                           ASM_OUTARGS_5                                \
-                         : "2" (_r15) ASM_ARGS_5                        \
-                         : "memory" ASM_CLOBBERS_5);                    \
-       _retval = _r8;                                                   \
-       if (_r10 == -1) {                                                \
-               errno = (_retval);                                       \
-               _retval = -1;                                            \
-       }                                                                \
-       return (type)_retval;                                                  \
-}
-
-#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \
-type                                                                    \
-name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6)       \
-{                                                                       \
-       register long _r8 asm ("r8");                                   \
-       register long _r10 asm ("r10");                                  \
-       register long _r15 asm ("r15") = __NR_##name;                    \
-       long _retval;                                                    \
-       LOAD_ARGS_6(arg1, arg2, arg3, arg4, arg5, arg6);                 \
-       __asm __volatile (__IA64_BREAK                                   \
-                         : "=r" (_r8), "=r" (_r10), "=r" (_r15),        \
-                           ASM_OUTARGS_6                                \
-                         : "2" (_r15) ASM_ARGS_6                        \
-                         : "memory" ASM_CLOBBERS_6);                    \
-       _retval = _r8;                                                   \
-       if (_r10 == -1) {                                                \
-               errno = (_retval);                                       \
-               _retval = -1;                                            \
-       }                                                                \
-       return (type)_retval;                                                  \
-}
-  
-
-#define LOAD_ARGS_0()   do { } while (0)
-#define LOAD_ARGS_1(out0)                              \
-  register long _out0 asm ("out0") = (long) (out0);    \
-  LOAD_ARGS_0 ()
-#define LOAD_ARGS_2(out0, out1)                                \
-  register long _out1 asm ("out1") = (long) (out1);    \
-  LOAD_ARGS_1 (out0)
-#define LOAD_ARGS_3(out0, out1, out2)                  \
-  register long _out2 asm ("out2") = (long) (out2);    \
-  LOAD_ARGS_2 (out0, out1)
-#define LOAD_ARGS_4(out0, out1, out2, out3)            \
-  register long _out3 asm ("out3") = (long) (out3);    \
-  LOAD_ARGS_3 (out0, out1, out2)
-#define LOAD_ARGS_5(out0, out1, out2, out3, out4)      \
-  register long _out4 asm ("out4") = (long) (out4);    \
-  LOAD_ARGS_4 (out0, out1, out2, out3)
-#define LOAD_ARGS_6(out0, out1, out2, out3, out4, out5)        \
-  register long _out5 asm ("out5") = (long) (out5);    \
-  LOAD_ARGS_5 (out0, out1, out2, out3, out4)
-
-#define ASM_OUTARGS_1  "=r" (_out0)
-#define ASM_OUTARGS_2  ASM_OUTARGS_1, "=r" (_out1)
-#define ASM_OUTARGS_3  ASM_OUTARGS_2, "=r" (_out2)
-#define ASM_OUTARGS_4  ASM_OUTARGS_3, "=r" (_out3)
-#define ASM_OUTARGS_5  ASM_OUTARGS_4, "=r" (_out4)
-#define ASM_OUTARGS_6  ASM_OUTARGS_5, "=r" (_out5)
-
-#define ASM_ARGS_0
-#define ASM_ARGS_1     ASM_ARGS_0, "3" (_out0)
-#define ASM_ARGS_2     ASM_ARGS_1, "4" (_out1)
-#define ASM_ARGS_3     ASM_ARGS_2, "5" (_out2)
-#define ASM_ARGS_4     ASM_ARGS_3, "6" (_out3)
-#define ASM_ARGS_5     ASM_ARGS_4, "7" (_out4)
-#define ASM_ARGS_6     ASM_ARGS_5, "8" (_out5)
-
-#define ASM_CLOBBERS_0 ASM_CLOBBERS_1, "out0"
-#define ASM_CLOBBERS_1 ASM_CLOBBERS_2, "out1"
-#define ASM_CLOBBERS_2 ASM_CLOBBERS_3, "out2"
-#define ASM_CLOBBERS_3 ASM_CLOBBERS_4, "out3"
-#define ASM_CLOBBERS_4 ASM_CLOBBERS_5, "out4"
-#define ASM_CLOBBERS_5 ASM_CLOBBERS_6, "out5"
-#define ASM_CLOBBERS_6 , "out6", "out7",                               \
-  /* Non-stacked integer registers, minus r8, r10, r15.  */            \
-  "r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18",   \
-  "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27",       \
-  "r28", "r29", "r30", "r31",                                          \
-  /* Predicate registers.  */                                          \
-  "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15",    \
-  /* Non-rotating fp registers.  */                                    \
-  "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",    \
-  /* Branch registers.  */                                             \
-  "b6", "b7"
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/m32r/klibc/archsetjmp.h b/klibc/include/arch/m32r/klibc/archsetjmp.h
deleted file mode 100644 (file)
index e16a835..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * arch/m32r/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __r8;
-  unsigned long __r9;
-  unsigned long __r10;
-  unsigned long __r11;
-  unsigned long __r12;
-  unsigned long __r13;
-  unsigned long __r14;
-  unsigned long __r15;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _KLIBC_ARCHSETJMP_H */
diff --git a/klibc/include/arch/m32r/klibc/archsignal.h b/klibc/include/arch/m32r/klibc/archsignal.h
deleted file mode 100644 (file)
index 02596e9..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/m32r/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/m32r/klibc/archstat.h b/klibc/include/arch/m32r/klibc/archstat.h
deleted file mode 100644 (file)
index 1548207..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-/* This matches struct stat64 in glibc2.1, hence the absolutely
- * insane amounts of padding around dev_t's.
- */
-struct stat {
-       unsigned long long      st_dev;
-       unsigned char   __pad0[4];
-
-       unsigned long   __st_ino;
-
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned long   st_uid;
-       unsigned long   st_gid;
-
-       unsigned long long      st_rdev;
-       unsigned char   __pad3[4];
-
-       long long       st_size;
-       unsigned long   st_blksize;
-
-       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
-       unsigned long   __pad4;         /* future possible st_blocks high bits */
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-
-       unsigned long long      st_ino;
-};
-
-#endif
diff --git a/klibc/include/arch/m32r/klibc/archsys.h b/klibc/include/arch/m32r/klibc/archsys.h
deleted file mode 100644 (file)
index 386db8b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/m32r/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/m68k/klibc/archsignal.h b/klibc/include/arch/m68k/klibc/archsignal.h
deleted file mode 100644 (file)
index 714527f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/m68k/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/m68k/klibc/archstat.h b/klibc/include/arch/m68k/klibc/archstat.h
deleted file mode 100644 (file)
index 9c0a05d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-/* This matches struct stat64 in glibc2.1, hence the absolutely
- * insane amounts of padding around dev_t's.
- */
-struct stat {
-       unsigned long long      st_dev;
-       unsigned char   __pad1[2];
-
-       unsigned long   __st_ino;
-
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned long   st_uid;
-       unsigned long   st_gid;
-
-       unsigned long long      st_rdev;
-       unsigned char   __pad3[2];
-
-       long long       st_size;
-       unsigned long   st_blksize;
-
-       unsigned long   __pad4;         /* future possible st_blocks high bits */
-       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-
-       unsigned long long      st_ino;
-};
-
-#endif
diff --git a/klibc/include/arch/m68k/klibc/archsys.h b/klibc/include/arch/m68k/klibc/archsys.h
deleted file mode 100644 (file)
index 8f6bed8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/m68k/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/mips/klibc/archfcntl.h b/klibc/include/arch/mips/klibc/archfcntl.h
deleted file mode 100644 (file)
index 54462ea..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * arch/mips/include/klibc/archfcntl.h
- *
- * On MIPS, <asm/fcntl.h> isn't usable (compiling struct stat with
- * the correct definitions doesn't "just work"), so we need to provide
- * our own definitions.
- */
-
-#ifndef _KLIBC_ARCHFCNTL_H
-#define _KLIBC_ARCHFCNTL_H
-
-#ifdef _ASM_FCNTL_H            /* We were too late! */
-# error "<asm/fcntl.h> included before <klibc/archfcntl.h>"
-#endif
-#define _ASM_FCNTL_H           /* Keep <asm/fcntl.h> from getting included */
-
-#define O_ACCMODE      0x0003
-#define O_RDONLY       0x0000
-#define O_WRONLY       0x0001
-#define O_RDWR         0x0002
-#define O_APPEND       0x0008
-#define O_SYNC         0x0010
-#define O_NONBLOCK     0x0080
-#define O_CREAT         0x0100
-#define O_TRUNC                0x0200
-#define O_EXCL         0x0400
-#define O_NOCTTY       0x0800
-#define FASYNC         0x1000
-#define O_LARGEFILE    0x2000
-#define O_DIRECT       0x8000
-#define O_DIRECTORY    0x10000
-#define O_NOFOLLOW     0x20000
-#define O_NOATIME      0x40000
-
-#define O_NDELAY       O_NONBLOCK
-
-#define F_DUPFD                0
-#define F_GETFD                1
-#define F_SETFD                2
-#define F_GETFL                3
-#define F_SETFL                4
-#define F_GETLK                14
-#define F_SETLK                6
-#define F_SETLKW       7
-
-#define F_SETOWN       24
-#define F_GETOWN       23
-#define F_SETSIG       10
-#define F_GETSIG       11
-
-#define F_GETLK64      33
-#define F_SETLK64      34
-#define F_SETLKW64     35
-
-#define FD_CLOEXEC     1
-
-#define F_RDLCK                0
-#define F_WRLCK                1
-#define F_UNLCK                2
-
-#define F_EXLCK                4
-#define F_SHLCK                8
-
-#define F_INPROGRESS   16
-
-#define LOCK_SH                1
-#define LOCK_EX                2
-#define LOCK_NB                4
-#define LOCK_UN                8
-
-#define LOCK_MAND      32
-#define LOCK_READ      64
-#define LOCK_WRITE     128
-#define LOCK_RW                192
-
-typedef struct flock {
-       short   l_type;
-       short   l_whence;
-       loff_t  l_start;
-       loff_t  l_len;
-       pid_t   l_pid;
-} flock_t;
-
-#define F_LINUX_SPECIFIC_BASE  1024
-
-#endif /* _KLIBC_ARCHFCNTL_H */
-
diff --git a/klibc/include/arch/mips/klibc/archsetjmp.h b/klibc/include/arch/mips/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 40e5be2..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * arch/mips/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __s0;
-  unsigned long __s1;
-  unsigned long __s2;
-  unsigned long __s3;
-  unsigned long __s4;
-  unsigned long __s5;
-  unsigned long __s6;
-  unsigned long __s7;
-  unsigned long __gp;
-  unsigned long __sp;
-  unsigned long __s8;
-  unsigned long __ra;
-  unsigned long __f20;
-  unsigned long __f21;
-  unsigned long __f22;
-  unsigned long __f23;
-  unsigned long __f24;
-  unsigned long __f25;
-  unsigned long __f26;
-  unsigned long __f27;
-  unsigned long __f28;
-  unsigned long __f29;
-  unsigned long __f30;
-  unsigned long __f31;
-  unsigned long __fcr31;
-  unsigned long __unused;
-} __attribute__((aligned(8)));
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _KLIBC_ARCHSETJMP_H */
diff --git a/klibc/include/arch/mips/klibc/archsignal.h b/klibc/include/arch/mips/klibc/archsignal.h
deleted file mode 100644 (file)
index 3b72908..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/mips/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/mips/klibc/archstat.h b/klibc/include/arch/mips/klibc/archstat.h
deleted file mode 100644 (file)
index 612bbfa..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-/*
- * This matches struct stat64 in glibc2.1, hence the absolutely insane
- * amounts of padding around dev_t's.  The memory layout is the same as of
- * struct stat of the 64-bit kernel.
- */
-
-struct stat {
-       unsigned long   st_dev;
-       unsigned long   st_pad0[3];     /* Reserved for st_dev expansion  */
-
-       unsigned long long      st_ino;
-
-       mode_t          st_mode;
-       nlink_t         st_nlink;
-
-       uid_t           st_uid;
-       gid_t           st_gid;
-
-       unsigned long   st_rdev;
-       unsigned long   st_pad1[3];     /* Reserved for st_rdev expansion  */
-
-       long long       st_size;
-
-       struct timespec         st_atim;
-       struct timespec         st_mtim;
-       struct timespec         st_ctim;
-
-       unsigned long   st_blksize;
-       unsigned long   st_pad2;
-
-       long long       st_blocks;
-};
-
-#endif
diff --git a/klibc/include/arch/mips/klibc/archsys.h b/klibc/include/arch/mips/klibc/archsys.h
deleted file mode 100644 (file)
index f696cdf..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/mips/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/mips/machine/asm.h b/klibc/include/arch/mips/machine/asm.h
deleted file mode 100644 (file)
index e5239a6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * arch/mips/include/machine/asm.h
- */
-
-#ifndef _MACHINE_ASM_H
-#define _MACHINE_ASM_H
-
-#include <asm/regdef.h>
-#include <asm/asm.h>
-
-#endif /* _MACHINE_ASM_H */
diff --git a/klibc/include/arch/mips/sgidefs.h b/klibc/include/arch/mips/sgidefs.h
deleted file mode 100644 (file)
index eb103ac..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * arch/mips/include/sgidefs.h
- */
-
-/* Some ABI constants */
-
-#ifndef _SGIDEFS_H
-#define _SGIDEFS_H
-
-#define _MIPS_ISA_MIPS1 1
-#define _MIPS_ISA_MIPS2 2
-#define _MIPS_ISA_MIPS3 3
-#define _MIPS_ISA_MIPS4 4
-#define _MIPS_ISA_MIPS5 5
-
-#define _MIPS_SIM_ABI32         1
-#define _MIPS_SIM_NABI32        2
-#define _MIPS_SIM_ABI64         3
-
-#endif /* _SGIDEFS_H */
diff --git a/klibc/include/arch/mips/spaces.h b/klibc/include/arch/mips/spaces.h
deleted file mode 100644 (file)
index b5f530b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* Included by <asm/page.h> but not actually needed */
diff --git a/klibc/include/arch/mips64/klibc/archsignal.h b/klibc/include/arch/mips64/klibc/archsignal.h
deleted file mode 100644 (file)
index 56b0fd3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/mips64/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/mips64/klibc/archstat.h b/klibc/include/arch/mips64/klibc/archstat.h
deleted file mode 100644 (file)
index d237e3a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-struct stat {
-       unsigned int            st_dev;
-       unsigned int            st_pad0[3]; /* Reserved for st_dev expansion */
-
-       unsigned long           st_ino;
-
-       mode_t                  st_mode;
-       nlink_t                 st_nlink;
-
-       uid_t                   st_uid;
-       gid_t                   st_gid;
-
-       unsigned int            st_rdev;
-       unsigned int            st_pad1[3]; /* Reserved for st_rdev expansion */
-
-       off_t                   st_size;
-  
-       struct timespec         st_atim;
-       struct timespec         st_mtim;
-       struct timespec         st_ctim;
-
-       unsigned int            st_blksize;
-       unsigned int            st_pad2;
-
-       unsigned long           st_blocks;
-};
-
-#endif
diff --git a/klibc/include/arch/mips64/klibc/archsys.h b/klibc/include/arch/mips64/klibc/archsys.h
deleted file mode 100644 (file)
index 81e5106..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/mips64/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/parisc/klibc/archsetjmp.h b/klibc/include/arch/parisc/klibc/archsetjmp.h
deleted file mode 100644 (file)
index e744498..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * arch/parisc/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  double regs[21];
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/parisc/klibc/archsignal.h b/klibc/include/arch/parisc/klibc/archsignal.h
deleted file mode 100644 (file)
index 3190e85..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * arch/parisc/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-#define _NSIG    64
-#define _NSIG_SZ (_NSIG / LONG_BIT)
-
-typedef struct {
-        unsigned long sig[_NSIG_SZ];
-} sigset_t;
-
-struct sigaction {
-        __sighandler_t sa_handler;
-        unsigned long sa_flags;
-        sigset_t sa_mask;
-};
-
-#endif
diff --git a/klibc/include/arch/parisc/klibc/archstat.h b/klibc/include/arch/parisc/klibc/archstat.h
deleted file mode 100644 (file)
index 7d28f45..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-struct stat {
-       unsigned long long      st_dev;
-       unsigned int            __pad1;
-
-       unsigned int            __st_ino;       /* Not actually filled in */
-       unsigned int            st_mode;
-       unsigned int            st_nlink;
-       unsigned int            st_uid;
-       unsigned int            st_gid;
-       unsigned long long      st_rdev;
-       unsigned int            __pad2;
-       signed long long        st_size;
-       signed int              st_blksize;
-
-       signed long long        st_blocks;
-       struct timespec         st_atim;
-       struct timespec         st_mtim;
-       struct timespec         st_ctim;
-       unsigned long long      st_ino;
-};
-
-#endif
diff --git a/klibc/include/arch/parisc/klibc/archsys.h b/klibc/include/arch/parisc/klibc/archsys.h
deleted file mode 100644 (file)
index 5013ba8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/parisc/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/ppc/klibc/archsetjmp.h b/klibc/include/arch/ppc/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 53e2fcc..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * arch/ppc/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __r2;
-  unsigned long __sp;
-  unsigned long __lr;
-  unsigned long __cr;
-  unsigned long __r13;
-  unsigned long __r14;
-  unsigned long __r15;
-  unsigned long __r16;
-  unsigned long __r17;
-  unsigned long __r18;
-  unsigned long __r19;
-  unsigned long __r20;
-  unsigned long __r21;
-  unsigned long __r22;
-  unsigned long __r23;
-  unsigned long __r24;
-  unsigned long __r25;
-  unsigned long __r26;
-  unsigned long __r27;
-  unsigned long __r28;
-  unsigned long __r29;
-  unsigned long __r30;
-  unsigned long __r31;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/ppc/klibc/archsignal.h b/klibc/include/arch/ppc/klibc/archsignal.h
deleted file mode 100644 (file)
index 567a547..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/ppc/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/ppc/klibc/archstat.h b/klibc/include/arch/ppc/klibc/archstat.h
deleted file mode 100644 (file)
index 1d0487b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-/* This matches struct stat64 in glibc2.1.
- */
-struct stat {
-       unsigned long long st_dev;      /* Device.  */
-       unsigned long long st_ino;      /* File serial number.  */
-       unsigned int st_mode;           /* File mode.  */
-       unsigned int st_nlink;          /* Link count.  */
-       unsigned int st_uid;            /* User ID of the file's owner.  */
-       unsigned int st_gid;            /* Group ID of the file's group. */
-       unsigned long long st_rdev;     /* Device number, if device.  */
-       unsigned short int __pad2;
-       long long st_size;              /* Size of file, in bytes.  */
-       long st_blksize;                /* Optimal block size for I/O.  */
-
-       long long st_blocks;            /* Number 512-byte blocks allocated. */
-       struct timespec st_atim;        /* Time of last access.  */
-       struct timespec st_mtim;        /* Time of last modification.  */
-       struct timespec st_ctim;        /* Time of last status change.  */
-       unsigned long int __unused4;
-       unsigned long int __unused5;
-};
-
-#endif
diff --git a/klibc/include/arch/ppc/klibc/archsys.h b/klibc/include/arch/ppc/klibc/archsys.h
deleted file mode 100644 (file)
index 17a2885..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * arch/ppc/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* PowerPC seems to lack _syscall6() in its headers */
-/* This seems to work on both 32- and 64-bit ppc */
-
-#ifndef _syscall6
-
-#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
-          type5,arg5,type6,arg6) \
-type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \
-{ \
-        unsigned long __sc_ret, __sc_err;                               \
-        {                                                               \
-                register unsigned long __sc_0 __asm__ ("r0");           \
-                register unsigned long __sc_3 __asm__ ("r3");           \
-                register unsigned long __sc_4 __asm__ ("r4");           \
-                register unsigned long __sc_5 __asm__ ("r5");           \
-                register unsigned long __sc_6 __asm__ ("r6");           \
-                register unsigned long __sc_7 __asm__ ("r7");           \
-                register unsigned long __sc_8 __asm__ ("r8");           \
-                                                                        \
-                __sc_3 = (unsigned long) (arg1);                        \
-                __sc_4 = (unsigned long) (arg2);                        \
-                __sc_5 = (unsigned long) (arg3);                        \
-                __sc_6 = (unsigned long) (arg4);                        \
-                __sc_7 = (unsigned long) (arg5);                        \
-                __sc_8 = (unsigned long) (arg6);                        \
-                __sc_0 = __NR_##name;                                   \
-                __asm__ __volatile__                                    \
-                        ("sc           \n\t"                            \
-                         "mfcr %1      "                                \
-                        : "+r"   (__sc_3),                             \
-                         "+r"   (__sc_0),                              \
-                          "+r"   (__sc_4),                              \
-                          "+r"   (__sc_5),                              \
-                          "+r"   (__sc_6),                              \
-                          "+r"   (__sc_7),                              \
-                          "+r"   (__sc_8)                               \
-                        : : "cr0", "ctr", "memory",                     \
-                            "r9", "r10", "r11", "r12");                        \
-                __sc_ret = __sc_3;                                      \
-                __sc_err = __sc_0;                                      \
-        }                                                               \
-        if (__sc_err & 0x10000000)                                      \
-        {                                                               \
-                errno = (int)__sc_ret;                                  \
-                __sc_ret = -1;                                          \
-        }                                                               \
-        return (type)__sc_ret;                                          \
-}
-
-#endif /* _syscall6() missing */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/ppc64/klibc/archsetjmp.h b/klibc/include/arch/ppc64/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 006a2e2..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * arch/ppc64/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __r2;
-  unsigned long __sp;
-  unsigned long __lr;
-  unsigned long __cr;
-  unsigned long __r13;
-  unsigned long __r14;
-  unsigned long __r15;
-  unsigned long __r16;
-  unsigned long __r17;
-  unsigned long __r18;
-  unsigned long __r19;
-  unsigned long __r20;
-  unsigned long __r21;
-  unsigned long __r22;
-  unsigned long __r23;
-  unsigned long __r24;
-  unsigned long __r25;
-  unsigned long __r26;
-  unsigned long __r27;
-  unsigned long __r28;
-  unsigned long __r29;
-  unsigned long __r30;
-  unsigned long __r31;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/ppc64/klibc/archsignal.h b/klibc/include/arch/ppc64/klibc/archsignal.h
deleted file mode 100644 (file)
index 8452f6e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/ppc64/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/ppc64/klibc/archstat.h b/klibc/include/arch/ppc64/klibc/archstat.h
deleted file mode 100644 (file)
index 71f4748..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-struct stat {
-       unsigned long   st_dev;
-       ino_t           st_ino;
-       nlink_t         st_nlink;
-       mode_t          st_mode;
-       uid_t           st_uid;
-       gid_t           st_gid;
-       unsigned long   st_rdev;
-       off_t           st_size;
-       unsigned long   st_blksize;
-       unsigned long   st_blocks;
-       struct timespec st_atim;        /* Time of last access.  */
-       struct timespec st_mtim;        /* Time of last modification.  */
-       struct timespec st_ctim;        /* Time of last status change.  */
-       unsigned long   __unused4;
-       unsigned long   __unused5;
-       unsigned long   __unused6;
-};
-
-#endif
diff --git a/klibc/include/arch/ppc64/klibc/archsys.h b/klibc/include/arch/ppc64/klibc/archsys.h
deleted file mode 100644 (file)
index 4f81fee..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * arch/ppc64/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-#ifndef _syscall6
-
-#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
-          type5,arg5,type6,arg6) \
-type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \
-{ \
-        unsigned long __sc_ret, __sc_err;                               \
-        {                                                               \
-                register unsigned long __sc_0 __asm__ ("r0");           \
-                register unsigned long __sc_3 __asm__ ("r3");           \
-                register unsigned long __sc_4 __asm__ ("r4");           \
-                register unsigned long __sc_5 __asm__ ("r5");           \
-                register unsigned long __sc_6 __asm__ ("r6");           \
-                register unsigned long __sc_7 __asm__ ("r7");           \
-                register unsigned long __sc_8 __asm__ ("r8");           \
-                                                                        \
-                __sc_3 = (unsigned long) (arg1);                        \
-                __sc_4 = (unsigned long) (arg2);                        \
-                __sc_5 = (unsigned long) (arg3);                        \
-                __sc_6 = (unsigned long) (arg4);                        \
-                __sc_7 = (unsigned long) (arg5);                        \
-                __sc_8 = (unsigned long) (arg6);                        \
-                __sc_0 = __NR_##name;                                   \
-                __asm__ __volatile__                                    \
-                        ("sc           \n\t"                            \
-                         "mfcr %1      "                                \
-                        : "=&r" (__sc_3), "=&r" (__sc_0)                \
-                        : "0"   (__sc_3), "1"   (__sc_0),               \
-                          "r"   (__sc_4),                               \
-                          "r"   (__sc_5),                               \
-                          "r"   (__sc_6),                               \
-                          "r"   (__sc_7),                               \
-                          "r"   (__sc_8)                                \
-                        : __syscall_clobbers);                          \
-                __sc_ret = __sc_3;                                      \
-                __sc_err = __sc_0;                                      \
-        }                                                               \
-        __syscall_return (type);                                        \
-}
-
-#endif /* _syscall6() missing */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/s390/klibc/archsetjmp.h b/klibc/include/arch/s390/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 11a641e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * arch/s390/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  uint32_t __gregs[10]; /* general registers r6-r15 */
-  uint64_t __fpregs[2]; /* fp registers f4 and f6   */
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/s390/klibc/archsignal.h b/klibc/include/arch/s390/klibc/archsignal.h
deleted file mode 100644 (file)
index 1f8de28..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/s390/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/s390/klibc/archstat.h b/klibc/include/arch/s390/klibc/archstat.h
deleted file mode 100644 (file)
index 866c3d4..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-/* This matches struct stat64 in glibc2.1, hence the absolutely
- * insane amounts of padding around dev_t's.
- */
-struct stat {
-        unsigned long long     st_dev;
-        unsigned int    __pad1;
-#define STAT64_HAS_BROKEN_ST_INO        1
-        unsigned long   __st_ino;
-        unsigned int    st_mode;
-        unsigned int    st_nlink;
-        unsigned long   st_uid;
-        unsigned long   st_gid;
-        unsigned long long     st_rdev;
-        unsigned int    __pad3;
-        long long      st_size;
-        unsigned long   st_blksize;
-        unsigned char   __pad4[4];
-        unsigned long   __pad5;     /* future possible st_blocks high bits */
-        unsigned long   st_blocks;  /* Number 512-byte blocks allocated. */
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-        unsigned long long     st_ino;
-};
-
-#endif
diff --git a/klibc/include/arch/s390/klibc/archsys.h b/klibc/include/arch/s390/klibc/archsys.h
deleted file mode 100644 (file)
index 1cd0948..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * arch/s390/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* S/390 only has five syscall parameters, and uses a structure for
-   6-argument syscalls. */
-
-#ifndef _syscall6
-
-#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,\
-                  type4,arg4,type5,arg5,type6,arg6)          \
-type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4,    \
-          type5 arg5, type6 arg6) {                         \
-       unsigned long  __arg[6] = {                          \
-               (unsigned long) arg1,                        \
-               (unsigned long) arg2,                        \
-               (unsigned long) arg3,                        \
-               (unsigned long) arg4,                        \
-               (unsigned long) arg5,                        \
-               (unsigned long) arg6                         \
-       };                                                   \
-       register void *__argp asm("2") = &__arg;             \
-       long __res;                                          \
-       __asm__ __volatile__ (                               \
-                "    svc %b1\n"                              \
-                "    lr  %0,2"                               \
-                : "=d" (__res)                               \
-                : "i" (__NR_##name),                         \
-                  "d" (__argp)                              \
-               : _svc_clobber);                             \
-       __syscall_return(type, __res);                       \
-}
-
-#endif /* _syscall6() missing */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/s390x/klibc/archsetjmp.h b/klibc/include/arch/s390x/klibc/archsetjmp.h
deleted file mode 100644 (file)
index dd3ed0d..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * arch/s390x/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  uint64_t __gregs[10]; /* general registers r6-r15 */
-  uint64_t __fpregs[4]; /* fp registers f1, f3, f5, f7 */
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/s390x/klibc/archsignal.h b/klibc/include/arch/s390x/klibc/archsignal.h
deleted file mode 100644 (file)
index 08c9a00..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/s390x/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/s390x/klibc/archstat.h b/klibc/include/arch/s390x/klibc/archstat.h
deleted file mode 100644 (file)
index 0de73cb..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-struct stat {
-        unsigned long  st_dev;
-        unsigned long  st_ino;
-        unsigned long  st_nlink;
-        unsigned int   st_mode;
-        unsigned int   st_uid;
-        unsigned int   st_gid;
-        unsigned int   __pad1;
-        unsigned long  st_rdev;
-        unsigned long  st_size;
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-        unsigned long  st_blksize;
-        long           st_blocks;
-        unsigned long  __unused[3];
-};
-
-#endif
diff --git a/klibc/include/arch/s390x/klibc/archsys.h b/klibc/include/arch/s390x/klibc/archsys.h
deleted file mode 100644 (file)
index 15f7113..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * arch/s390x/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* S/390X only has five syscall parameters, and uses a structure for
-   6-argument syscalls. */
-
-#ifndef _syscall6
-
-#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,\
-                  type4,arg4,type5,arg5,type6,arg6)          \
-type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4,    \
-          type5 arg5, type6 arg6) {                         \
-       unsigned long  __arg[6] = {                          \
-               (unsigned long) arg1,                        \
-               (unsigned long) arg2,                        \
-               (unsigned long) arg3,                        \
-               (unsigned long) arg4,                        \
-               (unsigned long) arg5,                        \
-               (unsigned long) arg6                         \
-       };                                                   \
-       register void *__argp asm("2") = &__arg;             \
-       long __res;                                          \
-       __asm__ __volatile__ (                               \
-                "    svc %b1\n"                              \
-                "    lgr  %0,2"                              \
-                : "=d" (__res)                               \
-                : "i" (__NR_##name),                         \
-                  "d" (__argp)                              \
-               : _svc_clobber);                             \
-       __syscall_return(type, __res);                       \
-}
-
-#endif /* _syscall6() missing */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/sh/klibc/archsetjmp.h b/klibc/include/arch/sh/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 28dd932..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * arch/sh/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long r8;
-  unsigned long r9;
-  unsigned long r10;
-  unsigned long r11;
-  unsigned long r12;
-  unsigned long r13;
-  unsigned long r14;
-  unsigned long r15;
-  unsigned long pr;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _KLIBC_ARCHSETJMP_H */
diff --git a/klibc/include/arch/sh/klibc/archsignal.h b/klibc/include/arch/sh/klibc/archsignal.h
deleted file mode 100644 (file)
index 6c4e597..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/sh/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/sh/klibc/archstat.h b/klibc/include/arch/sh/klibc/archstat.h
deleted file mode 100644 (file)
index 73caceb..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#include <endian.h>
-
-#define _STATBUF_ST_NSEC
-
-/* This matches struct stat64 in glibc2.1, hence the absolutely
- * insane amounts of padding around dev_t's.
- */
-struct stat64 {
-       unsigned long long      st_dev;
-       unsigned char   __pad0[4];
-
-       unsigned long   st_ino;
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned long   st_uid;
-       unsigned long   st_gid;
-
-       unsigned long long      st_rdev;
-       unsigned char   __pad3[4];
-
-       long long       st_size;
-       unsigned long   st_blksize;
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-       unsigned long   __pad4;         /* Future possible st_blocks hi bits */
-       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
-#else /* Must be little */
-       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
-       unsigned long   __pad4;         /* Future possible st_blocks hi bits */
-#endif
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-
-       unsigned long   __unused1;
-       unsigned long   __unused2;
-};
-
-#endif
-
diff --git a/klibc/include/arch/sh/klibc/archsys.h b/klibc/include/arch/sh/klibc/archsys.h
deleted file mode 100644 (file)
index 5f8050a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * arch/sh/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* No special syscall definitions for this architecture */
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/sparc/klibc/archsetjmp.h b/klibc/include/arch/sparc/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 92c1c74..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * arch/sparc/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __sp;
-  unsigned long __fp;
-  unsigned long __pc;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/sparc/klibc/archsignal.h b/klibc/include/arch/sparc/klibc/archsignal.h
deleted file mode 100644 (file)
index 3be67a2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * arch/sparc/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* Hidden definitions */
-
-struct __new_sigaction {
-        __sighandler_t  sa_handler;
-        unsigned long   sa_flags;
-        void            (*sa_restorer)(void);   /* Not used by Linux/SPARC */
-        __new_sigset_t  sa_mask;
-};
-
-struct k_sigaction {
-        struct __new_sigaction  sa;
-        void                    __user *ka_restorer;
-};
-
-struct __old_sigaction {
-        __sighandler_t  sa_handler;
-        __old_sigset_t  sa_mask;
-        unsigned long   sa_flags;
-        void            (*sa_restorer) (void);  /* not used by Linux/SPARC */
-};
-
-typedef struct sigaltstack {
-        void            __user *ss_sp;
-        int             ss_flags;
-        size_t          ss_size;
-} stack_t;
-
-#endif
diff --git a/klibc/include/arch/sparc/klibc/archstat.h b/klibc/include/arch/sparc/klibc/archstat.h
deleted file mode 100644 (file)
index 0ff6878..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-struct stat {
-       unsigned long long st_dev;
-
-       unsigned long long st_ino;
-
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned int    st_uid;
-       unsigned int    st_gid;
-
-       unsigned long long st_rdev;
-
-       unsigned char   __pad3[8];
-
-       long long       st_size;
-       unsigned int    st_blksize;
-
-       unsigned char   __pad4[8];
-       unsigned int    st_blocks;
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-
-       unsigned int    __unused4;
-       unsigned int    __unused5;
-};
-
-#endif
diff --git a/klibc/include/arch/sparc/klibc/archsys.h b/klibc/include/arch/sparc/klibc/archsys.h
deleted file mode 100644 (file)
index 20de8a8..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * arch/sparc/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/sparc/machine/asm.h b/klibc/include/arch/sparc/machine/asm.h
deleted file mode 100644 (file)
index b622bd8..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/*     $NetBSD: asm.h,v 1.14 2002/07/20 08:37:30 mrg Exp $ */
-
-/*
- * Copyright (c) 1994 Allen Briggs
- * All rights reserved.
- *
- * Gleaned from locore.s and sun3 asm.h which had the following copyrights:
- * locore.s:
- * Copyright (c) 1988 University of Utah.
- * Copyright (c) 1982, 1990 The Regents of the University of California.
- * sun3/include/asm.h:
- * Copyright (c) 1993 Adam Glass
- * Copyright (c) 1990 The Regents of the University of California.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _ASM_H_
-#define _ASM_H_
-
-/* Pull in CCFSZ, CC64FSZ, and BIAS from frame.h */
-#ifndef _LOCORE
-#define _LOCORE
-#endif
-#include <machine/frame.h>
-
-#ifdef __ELF__
-#define        _C_LABEL(name)          name
-#else
-#ifdef __STDC__
-#define _C_LABEL(name)         _ ## name
-#else
-#define _C_LABEL(name)         _/**/name
-#endif
-#endif
-#define        _ASM_LABEL(name)        name
-
-#ifdef PIC
-/*
- * PIC_PROLOGUE() is akin to the compiler generated function prologue for
- * PIC code. It leaves the address of the Global Offset Table in DEST,
- * clobbering register TMP in the process.
- *
- * We can use two code sequences.  We can read the %pc or use the call
- * instruction that saves the pc in %o7.  Call requires the branch unit and
- * IEU1, and clobbers %o7 which needs to be restored.  This instruction
- * sequence takes about 4 cycles due to instruction interdependence.  Reading
- * the pc takes 4 cycles to dispatch and is always dispatched alone.  That
- * sequence takes 7 cycles.
- */
-#ifdef __arch64__
-#define PIC_PROLOGUE(dest,tmp) \
-       mov %o7, tmp; \
-       sethi %hi(_GLOBAL_OFFSET_TABLE_-4),dest; \
-       call 0f; \
-        or dest,%lo(_GLOBAL_OFFSET_TABLE_+4),dest; \
-0: \
-       add dest,%o7,dest; \
-       mov tmp, %o7
-#else
-#define PIC_PROLOGUE(dest,tmp) \
-       mov %o7,tmp; 3: call 4f; nop; 4: \
-       sethi %hi(_C_LABEL(_GLOBAL_OFFSET_TABLE_)-(3b-.)),dest; \
-       or dest,%lo(_C_LABEL(_GLOBAL_OFFSET_TABLE_)-(3b-.)),dest; \
-       add dest,%o7,dest; mov tmp,%o7
-#endif
-
-/*
- * PICCY_SET() does the equivalent of a `set var, %dest' instruction in
- * a PIC-like way, but without involving the Global Offset Table. This
- * only works for VARs defined in the same file *and* in the text segment.
- */
-#ifdef __arch64__
-#define PICCY_SET(var,dest,tmp) \
-       3: rd %pc, tmp; add tmp,(var-3b),dest
-#else
-#define PICCY_SET(var,dest,tmp) \
-       mov %o7,tmp; 3: call 4f; nop; 4: \
-       add %o7,(var-3b),dest; mov tmp,%o7
-#endif
-#else
-#define PIC_PROLOGUE(dest,tmp)
-#define PICCY_OFFSET(var,dest,tmp)
-#endif
-
-#define FTYPE(x)               .type x,@function
-#define OTYPE(x)               .type x,@object
-
-#define        _ENTRY(name) \
-       .align 4; .globl name; .proc 1; FTYPE(name); name:
-
-#ifdef GPROF
-/* see _MCOUNT_ENTRY in profile.h */
-#ifdef __ELF__
-#ifdef __arch64__
-#define _PROF_PROLOGUE \
-       .data; .align 8; 1: .uaword 0; .uaword 0; \
-       .text; save %sp,-CC64FSZ,%sp; sethi %hi(1b),%o0; call _mcount; \
-       or %o0,%lo(1b),%o0; restore
-#else
-#define _PROF_PROLOGUE \
-       .data; .align 4; 1: .long 0; \
-       .text; save %sp,-96,%sp; sethi %hi(1b),%o0; call _mcount; \
-       or %o0,%lo(1b),%o0; restore
-#endif
-#else
-#ifdef __arch64__
-#define _PROF_PROLOGUE \
-       .data; .align 8; 1: .uaword 0; .uaword 0; \
-       .text; save %sp,-CC64FSZ,%sp; sethi %hi(1b),%o0; call mcount; \
-       or %o0,%lo(1b),%o0; restore
-#else
-#define        _PROF_PROLOGUE \
-       .data; .align 4; 1: .long 0; \
-       .text; save %sp,-96,%sp; sethi %hi(1b),%o0; call mcount; \
-       or %o0,%lo(1b),%o0; restore
-#endif
-#endif
-#else
-#define _PROF_PROLOGUE
-#endif
-
-#define ENTRY(name)            _ENTRY(_C_LABEL(name)); _PROF_PROLOGUE
-#define ENTRY_NOPROFILE(name)  _ENTRY(_C_LABEL(name))
-#define        ASENTRY(name)           _ENTRY(_ASM_LABEL(name)); _PROF_PROLOGUE
-#define        FUNC(name)              ASENTRY(name)
-#define RODATA(name)           .align 4; .text; .globl _C_LABEL(name); \
-                               OTYPE(_C_LABEL(name)); _C_LABEL(name):
-
-
-#define ASMSTR                 .asciz
-
-#define RCSID(name)            .asciz name
-
-#ifdef __ELF__
-#define        WEAK_ALIAS(alias,sym)                                           \
-       .weak alias;                                                    \
-       alias = sym
-#endif
-
-/*
- * WARN_REFERENCES: create a warning if the specified symbol is referenced.
- */
-#ifdef __ELF__
-#ifdef __STDC__
-#define        WARN_REFERENCES(_sym,_msg)                              \
-       .section .gnu.warning. ## _sym ; .ascii _msg ; .text
-#else
-#define        WARN_REFERENCES(_sym,_msg)                              \
-       .section .gnu.warning./**/_sym ; .ascii _msg ; .text
-#endif /* __STDC__ */
-#else
-#ifdef __STDC__
-#define        __STRING(x)                     #x
-#define        WARN_REFERENCES(sym,msg)                                        \
-       .stabs msg ## ,30,0,0,0 ;                                       \
-       .stabs __STRING(_ ## sym) ## ,1,0,0,0
-#else
-#define        __STRING(x)                     "x"
-#define        WARN_REFERENCES(sym,msg)                                        \
-       .stabs msg,30,0,0,0 ;                                           \
-       .stabs __STRING(_/**/sym),1,0,0,0
-#endif /* __STDC__ */
-#endif /* __ELF__ */
-
-#endif /* _ASM_H_ */
diff --git a/klibc/include/arch/sparc/machine/frame.h b/klibc/include/arch/sparc/machine/frame.h
deleted file mode 100644 (file)
index b09175c..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*     $NetBSD: frame.h,v 1.4 2001/12/04 00:05:05 darrenr Exp $ */
-
-/*
- * Copyright (c) 1992, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This software was developed by the Computer Systems Engineering group
- * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
- * contributed to Berkeley.
- *
- * All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Lawrence Berkeley Laboratory.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)frame.h     8.1 (Berkeley) 6/11/93
- */
-
-#if defined(_KERNEL_OPT)
-#include "opt_sparc_arch.h"
-#endif
-
-/*
- * Sparc stack frame format.
- *
- * Note that the contents of each stack frame may be held only in
- * machine register windows.  In order to get an accurate picture
- * of the frame, you must first force the kernel to write any such
- * windows to the stack.
- */
-#ifndef _LOCORE
-#ifndef SUN4U
-struct frame {
-       int32_t fr_local[8];    /* space to save locals (%l0..%l7) */
-       int32_t fr_arg[6];      /* space to save arguments (%i0..%i5) */
-       struct  frame *fr_fp;   /* space to save frame pointer (%i6) */
-       int32_t fr_pc;          /* space to save return pc (%i7) */
-       /*
-        * SunOS reserves another 8 words here; this is pointless
-        * but we do it for compatibility.
-        */
-       int32_t fr_xxx;         /* `structure return pointer' (unused) */
-       int32_t fr_argd[6];     /* `arg dump area' (lunacy) */
-       int32_t fr_argx[1];     /* arg extension (args 7..n; variable size) */
-};
-#else
-struct frame32 {
-       int32_t fr_local[8];    /* space to save locals (%l0..%l7) */
-       int32_t fr_arg[6];      /* space to save arguments (%i0..%i5) */
-       u_int32_t       fr_fp;  /* space to save frame pointer (%i6) */
-       u_int32_t       fr_pc;  /* space to save return pc (%i7) */
-       /*
-        * SunOS reserves another 8 words here; this is pointless
-        * but we do it for compatibility.
-        */
-       int32_t fr_xxx;         /* `structure return pointer' (unused) */
-       int32_t fr_argd[6];     /* `arg dump area' (lunacy) */
-       int32_t fr_argx[1];     /* arg extension (args 7..n; variable size) */
-};
-#endif
-#endif
-
-/*
- * CCFSZ (C Compiler Frame SiZe) is the size of a stack frame required if
- * a function is to call C code.  It should be just 64, but Sun defined
- * their frame with space to hold arguments 0 through 5 (plus some junk),
- * and varargs routines (such as kprintf) demand this, and gcc uses this
- * area at times anyway.
- */
-#define CCFSZ          96
-
-/*
- * Sparc v9 stack frame format.
- *
- * Note that the contents of each stack frame may be held only in
- * machine register windows.  In order to get an accurate picture
- * of the frame, you must first force the kernel to write any such
- * windows to the stack.
- *
- * V9 frames have an odd bias, so you can tall a v9 frame from
- * a v8 frame by testing the stack pointer's lsb.
- */
-#if !defined(_LOCORE) && !defined(_LIBC)
-struct frame64 {
-       int64_t fr_local[8];    /* space to save locals (%l0..%l7) */
-       int64_t fr_arg[6];      /* space to save arguments (%i0..%i5) */
-       u_int64_t       fr_fp;          /* space to save frame pointer (%i6) */
-       u_int64_t       fr_pc;          /* space to save return pc (%i7) */
-       /*
-        * SVR4 reserves a bunch of extra stuff.
-        */
-       int64_t fr_argd[6];     /* `register save area' (lunacy) */
-       int64_t fr_argx[0];     /* arg extension (args 7..n; variable size) */
-};
-
-#define v9next_frame(f)                ((struct frame64*)(f->fr_fp+BIAS))
-#endif
-
-/*
- * CC64FSZ (C Compiler 64-bit Frame SiZe) is the size of a stack frame used
- * by the compiler in 64-bit mode.  It is (16)*8; space for 8 ins, 8 outs.
- */
-#define CC64FSZ                176
-
-/*
- * v9 stacks all have a bias of 2047 added to the %sp and %fp, so you can easily
- * detect it by testing the register for an odd value.  Why 2K-1 I don't know.
- */
-#define BIAS   (2048-1)
-
diff --git a/klibc/include/arch/sparc/machine/trap.h b/klibc/include/arch/sparc/machine/trap.h
deleted file mode 100644 (file)
index 42c3ef6..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*     $NetBSD: trap.h,v 1.11 1999/01/20 00:15:08 pk Exp $ */
-
-/*
- * Copyright (c) 1992, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This software was developed by the Computer Systems Engineering group
- * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
- * contributed to Berkeley.
- *
- * All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Lawrence Berkeley Laboratory.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)trap.h      8.1 (Berkeley) 6/11/93
- */
-/*
- * Sun4m support by Aaron Brown, Harvard University.
- * Changes Copyright (c) 1995 The President and Fellows of Harvard College.
- * All rights reserved.
- */
-
-#ifndef        _MACHINE_TRAP_H
-#define        _MACHINE_TRAP_H
-
-/*     trap            vec       (pri) description     */
-#define        T_RESET         0x00    /* (1) not actually vectored; jumps to 0 */
-#define        T_TEXTFAULT     0x01    /* (2) address fault during instr fetch */
-#define        T_ILLINST       0x02    /* (3) illegal instruction */
-#define        T_PRIVINST      0x03    /* (4) privileged instruction */
-#define        T_FPDISABLED    0x04    /* (5) fp instr while fp disabled */
-#define        T_WINOF         0x05    /* (6) register window overflow */
-#define        T_WINUF         0x06    /* (7) register window underflow */
-#define        T_ALIGN         0x07    /* (8) address not properly aligned */
-#define        T_FPE           0x08    /* (9) floating point exception */
-#define        T_DATAFAULT     0x09    /* (10) address fault during data fetch */
-#define        T_TAGOF         0x0a    /* (11) tag overflow */
-/*                     0x0b       unused */
-/*                     0x0c       unused */
-/*                     0x0d       unused */
-/*                     0x0e       unused */
-/*                     0x0f       unused */
-/*                     0x10       unused */
-#define        T_L1INT         0x11    /* (27) level 1 interrupt */
-#define        T_L2INT         0x12    /* (26) level 2 interrupt */
-#define        T_L3INT         0x13    /* (25) level 3 interrupt */
-#define        T_L4INT         0x14    /* (24) level 4 interrupt */
-#define        T_L5INT         0x15    /* (23) level 5 interrupt */
-#define        T_L6INT         0x16    /* (22) level 6 interrupt */
-#define        T_L7INT         0x17    /* (21) level 7 interrupt */
-#define        T_L8INT         0x18    /* (20) level 8 interrupt */
-#define        T_L9INT         0x19    /* (19) level 9 interrupt */
-#define        T_L10INT        0x1a    /* (18) level 10 interrupt */
-#define        T_L11INT        0x1b    /* (17) level 11 interrupt */
-#define        T_L12INT        0x1c    /* (16) level 12 interrupt */
-#define        T_L13INT        0x1d    /* (15) level 13 interrupt */
-#define        T_L14INT        0x1e    /* (14) level 14 interrupt */
-#define        T_L15INT        0x1f    /* (13) level 15 interrupt */
-/*                     0x20       unused */
-/*     through         0x23       unused */
-#define        T_CPDISABLED    0x24    /* (5) coprocessor instr while disabled */
-#define        T_UNIMPLFLUSH   0x25    /* Unimplemented FLUSH */
-/*     through         0x27       unused */
-#define        T_CPEXCEPTION   0x28    /* (9) coprocessor exception */
-/*                     0x29       unused */
-#define T_IDIV0                0x2a    /* divide by zero (from hw [su]div instr) */
-#define T_STOREBUFFAULT        0x2b    /* SuperSPARC: Store buffer copy-back fault */
-/*                     0x2c       unused */
-/*     through         0x7f       unused */
-
-/* beginning of `user' vectors (from trap instructions) - all priority 12 */
-#define        T_SUN_SYSCALL   0x80    /* system call */
-#define        T_BREAKPOINT    0x81    /* breakpoint `instruction' */
-#define        T_DIV0          0x82    /* division routine was handed 0 */
-#define        T_FLUSHWIN      0x83    /* flush windows */
-#define        T_CLEANWIN      0x84    /* provide clean windows */
-#define        T_RANGECHECK    0x85    /* ? */
-#define        T_FIXALIGN      0x86    /* fix up unaligned accesses */
-#define        T_INTOF         0x87    /* integer overflow ? */
-#define        T_SVR4_SYSCALL  0x88    /* SVR4 system call */
-#define        T_BSD_SYSCALL   0x89    /* BSD system call */
-#define        T_KGDB_EXEC     0x8a    /* for kernel gdb */
-
-/* 0x8b..0xff are currently unallocated, except the following */
-#define T_SVR4_GETCC           0xa0
-#define T_SVR4_SETCC           0xa1
-#define T_SVR4_GETPSR          0xa2
-#define T_SVR4_SETPSR          0xa3
-#define T_SVR4_GETHRTIME       0xa4
-#define T_SVR4_GETHRVTIME      0xa5
-#define T_SVR4_GETHRESTIME     0xa7
-
-
-#ifdef _KERNEL                 /* pseudo traps for locore.s */
-#define        T_RWRET         -1      /* need first user window for trap return */
-#define        T_AST           -2      /* no-op, just needed reschedule or profile */
-#endif
-
-/* flags to system call (flags in %g1 along with syscall number) */
-#define        SYSCALL_G2RFLAG 0x400   /* on success, return to %g2 rather than npc */
-#define        SYSCALL_G7RFLAG 0x800   /* use %g7 as above (deprecated) */
-
-/*
- * `software trap' macros to keep people happy (sparc v8 manual says not
- * to set the upper bits).
- */
-#define        ST_BREAKPOINT   (T_BREAKPOINT & 0x7f)
-#define        ST_DIV0         (T_DIV0 & 0x7f)
-#define        ST_FLUSHWIN     (T_FLUSHWIN & 0x7f)
-#define        ST_SYSCALL      (T_SUN_SYSCALL & 0x7f)
-
-#endif /* _MACHINE_TRAP_H_ */
diff --git a/klibc/include/arch/sparc64/klibc/archsetjmp.h b/klibc/include/arch/sparc64/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 022a31e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * arch/sparc64/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __sp;
-  unsigned long __fp;
-  unsigned long __pc;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/sparc64/klibc/archsignal.h b/klibc/include/arch/sparc64/klibc/archsignal.h
deleted file mode 100644 (file)
index f81bd66..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/sparc64/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* No special stuff for this architecture */
-
-#endif
diff --git a/klibc/include/arch/sparc64/klibc/archstat.h b/klibc/include/arch/sparc64/klibc/archstat.h
deleted file mode 100644 (file)
index c22905d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-/* No nsec fields?! */
-struct stat {
-       unsigned   st_dev;
-       ino_t   st_ino;
-       mode_t  st_mode;
-       short   st_nlink;
-       uid_t   st_uid;
-       gid_t   st_gid;
-       unsigned   st_rdev;
-       off_t   st_size;
-       time_t  st_atime;
-       time_t  st_mtime;
-       time_t  st_ctime;
-       off_t   st_blksize;
-       off_t   st_blocks;
-       unsigned long  __unused4[2];
-};
-
-#endif
diff --git a/klibc/include/arch/sparc64/klibc/archsys.h b/klibc/include/arch/sparc64/klibc/archsys.h
deleted file mode 100644 (file)
index 6a3a7b2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * arch/sparc64/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/x86_64/klibc/archsetjmp.h b/klibc/include/arch/x86_64/klibc/archsetjmp.h
deleted file mode 100644 (file)
index 90d0a0d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * arch/x86_64/include/klibc/archsetjmp.h
- */
-
-#ifndef _KLIBC_ARCHSETJMP_H
-#define _KLIBC_ARCHSETJMP_H
-
-struct __jmp_buf {
-  unsigned long __rbx;
-  unsigned long __rsp;
-  unsigned long __rbp;
-  unsigned long __r12;
-  unsigned long __r13;
-  unsigned long __r14;
-  unsigned long __r15;
-  unsigned long __rip;
-};
-
-typedef struct __jmp_buf jmp_buf[1];
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/arch/x86_64/klibc/archsignal.h b/klibc/include/arch/x86_64/klibc/archsignal.h
deleted file mode 100644 (file)
index 5272414..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * arch/x86_64/include/klibc/archsignal.h
- *
- * Architecture-specific signal definitions
- *
- */
-
-#ifndef _KLIBC_ARCHSIGNAL_H
-#define _KLIBC_ARCHSIGNAL_H
-
-/* The x86-64 headers defines NSIG 32, but it's actually 64 */
-#undef  _NSIG
-#undef  NSIG
-#define _NSIG 64
-#define NSIG  _NSIG
-
-#endif
diff --git a/klibc/include/arch/x86_64/klibc/archstat.h b/klibc/include/arch/x86_64/klibc/archstat.h
deleted file mode 100644 (file)
index 53e141d..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _KLIBC_ARCHSTAT_H
-#define _KLIBC_ARCHSTAT_H
-
-#define _STATBUF_ST_NSEC
-
-struct stat {
-       unsigned long   st_dev;
-       unsigned long   st_ino;
-       unsigned long   st_nlink;
-
-       unsigned int    st_mode;
-       unsigned int    st_uid;
-       unsigned int    st_gid;
-       unsigned int    __pad0;
-       unsigned long   st_rdev;
-       long            st_size;
-       long            st_blksize;
-       long            st_blocks;      /* Number 512-byte blocks allocated. */
-
-       struct timespec st_atim;
-       struct timespec st_mtim;
-       struct timespec st_ctim;
-       long            __unused[3];
-};
-
-#endif
diff --git a/klibc/include/arch/x86_64/klibc/archsys.h b/klibc/include/arch/x86_64/klibc/archsys.h
deleted file mode 100644 (file)
index 2ec72cd..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * arch/x86_64/include/klibc/archsys.h
- *
- * Architecture-specific syscall definitions
- */
-
-#ifndef _KLIBC_ARCHSYS_H
-#define _KLIBC_ARCHSYS_H
-
-/* The x86-64 syscall headers are needlessly inefficient */
-
-#undef _syscall0
-#undef _syscall1
-#undef _syscall2
-#undef _syscall3
-#undef _syscall4
-#undef _syscall5
-#undef _syscall6
-
-#define _syscall0(type,name) \
-type name (void) \
-{ \
-long __res; \
-__asm__ volatile (__syscall \
-        : "=a" (__res) \
-        : "0" (__NR_##name) \
-        : __syscall_clobber); \
-__syscall_return(type,__res); \
-}
-
-#define _syscall1(type,name,type1,arg1) \
-type name (type1 arg1) \
-{ \
-long __res; \
-__asm__ volatile (__syscall \
-        : "=a" (__res) \
-        : "0" (__NR_##name),"D" (arg1) \
-        : __syscall_clobber); \
-__syscall_return(type,__res); \
-}
-
-#define _syscall2(type,name,type1,arg1,type2,arg2) \
-type name (type1 arg1,type2 arg2) \
-{ \
-long __res; \
-__asm__ volatile (__syscall \
-        : "=a" (__res) \
-        : "0" (__NR_##name),"D" (arg1),"S" (arg2) \
-        : __syscall_clobber); \
-__syscall_return(type,__res); \
-}
-
-#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
-type name (type1 arg1,type2 arg2,type3 arg3) \
-{ \
-long __res; \
-__asm__ volatile (__syscall \
-        : "=a" (__res) \
-        : "0" (__NR_##name),"D" (arg1),"S" (arg2), \
-          "d" (arg3) \
-        : __syscall_clobber); \
-__syscall_return(type,__res); \
-}
-
-#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4) \
-{ \
-long __res; \
-register type4 __r10 asm("%r10") = arg4; \
-__asm__ volatile (__syscall \
-        : "=a" (__res) \
-        : "0" (__NR_##name),"D" (arg1),"S" (arg2), \
-          "d" (arg3),"r" (__r10) \
-        : __syscall_clobber); \
-__syscall_return(type,__res); \
-}
-
-#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
-          type5,arg5) \
-type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
-{ \
-long __res; \
-register type4 __r10 asm("%r10") = arg4; \
-register type5 __r8  asm("%r8")  = arg5; \
-__asm__ volatile (__syscall \
-        : "=a" (__res) \
-        : "0" (__NR_##name),"D" (arg1),"S" (arg2), \
-          "d" (arg3),"r" (__r10),"r" (__r8) \
-        : __syscall_clobber); \
-__syscall_return(type,__res); \
-}
-
-#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
-          type5,arg5,type6,arg6) \
-type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \
-{ \
-long __res; \
-register type4 __r10 asm("%r10") = arg4; \
-register type5 __r8  asm("%r8")  = arg5; \
-register type6 __r9  asm("%r9")  = arg6; \
-__asm__ volatile (__syscall \
-        : "=a" (__res) \
-        : "0" (__NR_##name),"D" (arg1),"S" (arg2), \
-          "d" (arg3),"r" (__r10),"r" (__r8), "r" (__r9) \
-        : __syscall_clobber); \
-__syscall_return(type,__res); \
-}
-
-#endif /* _KLIBC_ARCHSYS_H */
diff --git a/klibc/include/arch/x86_64/sys/io.h b/klibc/include/arch/x86_64/sys/io.h
deleted file mode 100644 (file)
index 4a0ae44..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#ident "$Id: io.h,v 1.1 2004/01/25 01:34:29 hpa Exp $"
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 2004 H. Peter Anvin - All Rights Reserved
- *
- *   Permission is hereby granted, free of charge, to any person
- *   obtaining a copy of this software and associated documentation
- *   files (the "Software"), to deal in the Software without
- *   restriction, including without limitation the rights to use,
- *   copy, modify, merge, publish, distribute, sublicense, and/or
- *   sell copies of the Software, and to permit persons to whom
- *   the Software is furnished to do so, subject to the following
- *   conditions:
- *   
- *   The above copyright notice and this permission notice shall
- *   be included in all copies or substantial portions of the Software.
- *   
- *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *   OTHER DEALINGS IN THE SOFTWARE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * sys/io.h for the i386 architecture
- *
- * Basic I/O macros
- */
-
-#ifndef _SYS_IO_H
-#define _SYS_IO_H 1
-
-/* I/O-related system calls */
-
-int iopl(int);
-int ioperm(unsigned long, unsigned long, int);
-
-/* Basic I/O macros */
-
-static __inline__ void
-outb(unsigned char __v, unsigned short __p)
-{
-  asm volatile("outb %0,%1" : : "a" (__v), "dN" (__p));
-}
-
-static __inline__ void
-outw(unsigned short __v, unsigned short __p)
-{
-  asm volatile("outw %0,%1" : : "a" (__v), "dN" (__p));
-}
-
-static __inline__ void
-outl(unsigned int __v, unsigned short __p)
-{
-  asm volatile("outl %0,%1" : : "a" (__v), "dN" (__p));
-}
-
-static __inline__ unsigned char
-inb(unsigned short __p)
-{
-  unsigned char __v;
-  asm volatile("inb %1,%0" : "=a" (__v) : "dN" (__p));
-  return v;
-}
-
-static __inline__ unsigned short
-inw(unsigned short __p)
-{
-  unsigned short __v;
-  asm volatile("inw %1,%0" : "=a" (__v) : "dN" (__p));
-  return v;
-}
-
-static __inline__ unsigned int
-inl(unsigned short __p)
-{
-  unsigned int __v;
-  asm volatile("inl %1,%0" : "=a" (__v) : "dN" (__p));
-  return v;
-}
-
-/* String I/O macros */
-
-static __inline__ void
-outsb (unsigned short __p, const void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; outsb" : "+S" (__d), "+c" (__n) : "d" (__p));
-}
-
-static __inline__ void
-outsw (unsigned short __p, const void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; outsw" : "+S" (__d), "+c" (__n) : "d" (__p));
-}
-
-static __inline__ void
-outsl (unsigned short __p, const void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; outsl" : "+S" (__d), "+c" (__n) : "d" (__p));
-}
-
-
-static __inline__ void
-insb (unsigned short __p, void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; insb" : "+D" (__d), "+c" (__n) : "d" (__p));
-}
-
-static __inline__ void
-insw (unsigned short __p, void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; insw" : "+D" (__d), "+c" (__n) : "d" (__p));
-}
-
-static __inline__ void
-insl (unsigned short __p, void *__d, unsigned long __n)
-{
-  asm volatile("cld; rep; insl" : "+D" (__d), "+c" (__n) : "d" (__p));
-}
-
-#endif /* _SYS_IO_H */
diff --git a/klibc/include/arpa/inet.h b/klibc/include/arpa/inet.h
deleted file mode 100644 (file)
index 043b148..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * arpa/inet.h
- */
-
-#ifndef _ARPA_INET_H
-#define _ARPA_INET_H
-
-#include <klibc/extern.h>
-#include <stdint.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netinet/in6.h>
-
-__extern uint32_t inet_addr(const char *);
-__extern int inet_aton(const char *, struct in_addr *);
-__extern char *inet_ntoa(struct in_addr);
-__extern int inet_pton(int, const char *, void *);
-__extern const char *inet_ntop(int, const void *, char *, size_t);
-__extern unsigned int inet_nsap_addr(const char *, unsigned char *, int);
-__extern char *inet_nsap_ntoa(int, const unsigned char *, char *);
-
-#endif /* _ARPA_INET_H */
-
-
diff --git a/klibc/include/assert.h b/klibc/include/assert.h
deleted file mode 100644 (file)
index 58cc37c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * assert.h
- */
-
-#ifndef _ASSERT_H
-#define _ASSERT_H
-
-#ifdef NDEBUG
-
-#define assert(x) ((void)(x))
-
-#else
-
-extern void __assert_fail(const char *, const char *,
-                         unsigned int);
-
-#define assert(x) ((x) ? (void)0 : __assert_fail(#x, __FILE__, __LINE__))
-
-#endif
-
-#endif /* _ASSERT_H */
-
diff --git a/klibc/include/bits32/bitsize.h b/klibc/include/bits32/bitsize.h
deleted file mode 100644 (file)
index 06cc885..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef _BITSIZE
-#define _BITSIZE 32
-#endif
diff --git a/klibc/include/bits32/bitsize/limits.h b/klibc/include/bits32/bitsize/limits.h
deleted file mode 100644 (file)
index f90e524..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * bits32/limits.h
- */
-
-#ifndef _BITSIZE_LIMITS_H
-#define _BITSIZE_LIMITS_H
-
-#define LONG_BIT       32
-
-#define LONG_MIN       (-2147483647L-1)
-#define LONG_MAX       2147483647L
-#define ULONG_MAX      4294967295UL
-
-#endif /* _BITSIZE_LIMITS_H */
diff --git a/klibc/include/bits32/bitsize/stddef.h b/klibc/include/bits32/bitsize/stddef.h
deleted file mode 100644 (file)
index c486041..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * bits32/stddef.h
- */
-
-#ifndef _BITSIZE_STDDEF_H
-#define _BITSIZE_STDDEF_H
-
-#define _SIZE_T
-#if defined(__s390__) || defined(__hppa__) || defined(__cris__)
-typedef unsigned long size_t;
-#else
-typedef unsigned int size_t;
-#endif
-
-#define _PTRDIFF_T
-typedef signed int   ptrdiff_t;
-
-#endif /* _BITSIZE_STDDEF_H */
diff --git a/klibc/include/bits32/bitsize/stdint.h b/klibc/include/bits32/bitsize/stdint.h
deleted file mode 100644 (file)
index 40b4649..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * bits32/stdint.h
- */
-
-#ifndef _BITSIZE_STDINT_H
-#define _BITSIZE_STDINT_H
-
-typedef signed char            int8_t;
-typedef short int              int16_t;
-typedef int                    int32_t;
-typedef long long int          int64_t;
-
-typedef unsigned char          uint8_t;
-typedef unsigned short int     uint16_t;
-typedef unsigned int           uint32_t;
-typedef unsigned long long int uint64_t;
-
-typedef int                    int_fast16_t;
-typedef int                    int_fast32_t;
-
-typedef unsigned int           uint_fast16_t;
-typedef unsigned int           uint_fast32_t;
-
-typedef int                    intptr_t;
-typedef unsigned int           uintptr_t;
-
-#define __INT64_C(c)   c ## LL
-#define __UINT64_C(c)  c ## ULL
-
-#define __PRI64_RANK   "ll"
-#define __PRIFAST_RANK ""
-#define __PRIPTR_RANK  ""
-
-#endif /* _BITSIZE_STDINT_H */
diff --git a/klibc/include/bits32/bitsize/stdintconst.h b/klibc/include/bits32/bitsize/stdintconst.h
deleted file mode 100644 (file)
index 8157dd0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * bits32/stdintconst.h
- */
-
-#ifndef _BITSIZE_STDINTCONST_H
-#define _BITSIZE_STDINTCONST_H
-
-#define INT_FAST16_C(c)         INT32_C(c)
-#define INT_FAST32_C(c)  INT32_C(c)
-
-#define UINT_FAST16_C(c) UINT32_C(c)
-#define UINT_FAST32_C(c) UINT32_C(c)
-
-#define INTPTR_C(c)     INT32_C(c)
-#define UINTPTR_C(c)    UINT32_C(c)
-#define PTRDIFF_C(c)     INT32_C(c)
-
-#endif /* _BITSIZE_STDINTCONST_H */
diff --git a/klibc/include/bits32/bitsize/stdintlimits.h b/klibc/include/bits32/bitsize/stdintlimits.h
deleted file mode 100644 (file)
index b44fe01..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * bits32/stdintlimits.h
- */
-
-#ifndef _BITSIZE_STDINTLIMITS_H
-#define _BITSIZE_STDINTLIMITS_H
-
-#define INT_FAST16_MIN INT32_MIN
-#define INT_FAST32_MIN INT32_MIN
-#define INT_FAST16_MAX INT32_MAX
-#define INT_FAST32_MAX INT32_MAX
-#define UINT_FAST16_MAX UINT32_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-
-#define INTPTR_MIN     INT32_MIN
-#define INTPTR_MAX     INT32_MAX
-#define UINTPTR_MAX    UINT32_MAX
-
-#define PTRDIFF_MIN    INT32_MIN
-#define PTRDIFF_MAX    INT32_MAX
-
-#endif /* _BITSIZE_STDINTLIMITS_H */
diff --git a/klibc/include/bits64/bitsize.h b/klibc/include/bits64/bitsize.h
deleted file mode 100644 (file)
index 54696fd..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef _BITSIZE
-#define _BITSIZE 64
-#endif
diff --git a/klibc/include/bits64/bitsize/limits.h b/klibc/include/bits64/bitsize/limits.h
deleted file mode 100644 (file)
index 7b20da0..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * bits64/limits.h
- */
-
-#ifndef _BITSIZE_LIMITS_H
-#define _BITSIZE_LIMITS_H
-
-#define LONG_BIT       64
-
-#define LONG_MIN       (-9223372036854775807L-1)
-#define LONG_MAX       9223372036854775807L
-#define ULONG_MAX      18446744073709551615UL
-
-#endif /* _BITSIZE_LIMITS_H */
diff --git a/klibc/include/bits64/bitsize/stddef.h b/klibc/include/bits64/bitsize/stddef.h
deleted file mode 100644 (file)
index 3e72621..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * bits64/stddef.h
- */
-
-#ifndef _BITSIZE_STDDEF_H
-#define _BITSIZE_STDDEF_H
-
-#define _SIZE_T
-typedef unsigned long size_t;
-#define _PTRDIFF_T
-typedef signed long   ptrdiff_t;
-
-#endif /* _BITSIZE_STDDEF_H */
diff --git a/klibc/include/bits64/bitsize/stdint.h b/klibc/include/bits64/bitsize/stdint.h
deleted file mode 100644 (file)
index 8e16cf0..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * bits64/stdint.h
- */
-
-#ifndef _BITSIZE_STDINT_H
-#define _BITSIZE_STDINT_H
-
-typedef signed char            int8_t;
-typedef short int              int16_t;
-typedef int                    int32_t;
-typedef long int               int64_t;
-
-typedef unsigned char          uint8_t;
-typedef unsigned short int     uint16_t;
-typedef unsigned int           uint32_t;
-typedef unsigned long int      uint64_t;
-
-typedef long int               int_fast16_t;
-typedef long int               int_fast32_t;
-
-typedef unsigned long int      uint_fast16_t;
-typedef unsigned long int      uint_fast32_t;
-
-typedef long int               intptr_t;
-typedef unsigned long int      uintptr_t;
-
-#define __INT64_C(c)  c ## L
-#define __UINT64_C(c) c ## UL
-
-#define __PRI64_RANK   "l"
-#define __PRIFAST_RANK  "l"
-#define __PRIPTR_RANK  "l"
-
-#endif /* _BITSIZE_STDINT_H */
-
-
diff --git a/klibc/include/bits64/bitsize/stdintconst.h b/klibc/include/bits64/bitsize/stdintconst.h
deleted file mode 100644 (file)
index 65f2db0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * bits64/stdintconst.h
- */
-
-#ifndef _BITSIZE_STDINTCONST_H
-#define _BITSIZE_STDINTCONST_H
-
-#define INT_FAST16_C(c)         INT64_C(c)
-#define INT_FAST32_C(c)  INT64_C(c)
-
-#define UINT_FAST16_C(c) UINT64_C(c)
-#define UINT_FAST32_C(c) UINT64_C(c)
-
-#define INTPTR_C(c)     INT64_C(c)
-#define UINTPTR_C(c)    UINT64_C(c)
-#define PTRDIFF_C(c)     INT64_C(c)
-
-#endif /* _BITSIZE_STDINTCONST_H */
diff --git a/klibc/include/bits64/bitsize/stdintlimits.h b/klibc/include/bits64/bitsize/stdintlimits.h
deleted file mode 100644 (file)
index d110d17..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * bits64/stdintlimits.h
- */
-
-#ifndef _BITSIZE_STDINTLIMITS_H
-#define _BITSIZE_STDINTLIMITS_H
-
-#define INT_FAST16_MIN INT64_MIN
-#define INT_FAST32_MIN INT64_MIN
-#define INT_FAST16_MAX INT64_MAX
-#define INT_FAST32_MAX INT64_MAX
-#define UINT_FAST16_MAX UINT64_MAX
-#define UINT_FAST32_MAX UINT64_MAX
-
-#define INTPTR_MIN     INT64_MIN
-#define INTPTR_MAX     INT64_MAX
-#define UINTPTR_MAX    UINT64_MAX
-
-#define PTRDIFF_MIN    INT64_MIN
-#define PTRDIFF_MAX    INT64_MAX
-
-#endif /* _BITSIZE_STDINTLIMITS_H */
diff --git a/klibc/include/ctype.h b/klibc/include/ctype.h
deleted file mode 100644 (file)
index daa6a8e..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * ctype.h
- *
- * This assumes ISO 8859-1, being a reasonable superset of ASCII.
- */
-
-#ifndef _CTYPE_H
-#define _CTYPE_H
-
-#ifndef __CTYPE_NO_INLINE
-# define __ctype_inline extern __inline__
-#else
-# define __ctype_inline
-#endif
-
-/*
- * This relies on the following definitions:
- *
- * cntrl = !print
- * alpha = upper|lower
- * graph = punct|alpha|digit
- * blank = '\t' || ' ' (per POSIX requirement)
- */
-enum {
-  __ctype_upper  = (1 << 0),
-  __ctype_lower  = (1 << 1),
-  __ctype_digit  = (1 << 2),
-  __ctype_xdigit = (1 << 3),
-  __ctype_space  = (1 << 4),
-  __ctype_print  = (1 << 5),
-  __ctype_punct  = (1 << 6),
-  __ctype_cntrl  = (1 << 7),
-};
-
-extern const unsigned char __ctypes[];
-
-__ctype_inline int isalnum(int __c)
-{
-  return __ctypes[__c+1] &
-    (__ctype_upper|__ctype_lower|__ctype_digit);
-}
-
-__ctype_inline int isalpha(int __c)
-{
-  return __ctypes[__c+1] &
-    (__ctype_upper|__ctype_lower);
-}
-
-__ctype_inline int isascii(int __c)
-{
-  return !(__c & ~0x7f);
-}
-
-__ctype_inline int isblank(int __c)
-{
-  return (__c == '\t') || (__c == ' ');
-}
-
-__ctype_inline int iscntrl(int __c)
-{
-  return __ctypes[__c+1] & __ctype_cntrl;
-}
-
-__ctype_inline int isdigit(int __c)
-{
-  return ((unsigned)__c - '0') <= 9;
-}
-
-__ctype_inline int isgraph(int __c)
-{
-  return __ctypes[__c+1] &
-    (__ctype_upper|__ctype_lower|__ctype_digit|__ctype_punct);
-}
-
-__ctype_inline int islower(int __c)
-{
-  return __ctypes[__c+1] & __ctype_lower;
-}
-
-__ctype_inline int isprint(int __c)
-{
-  return __ctypes[__c+1] & __ctype_print;
-}
-
-__ctype_inline int ispunct(int __c)
-{
-  return __ctypes[__c+1] & __ctype_punct;
-}
-
-__ctype_inline int isspace(int __c)
-{
-  return __ctypes[__c+1] & __ctype_space;
-}
-
-__ctype_inline int isupper(int __c)
-{
-  return __ctypes[__c+1] & __ctype_upper;
-}
-
-__ctype_inline int isxdigit(int __c)
-{
-  return __ctypes[__c+1] & __ctype_xdigit;
-}
-
-/* Note: this is decimal, not hex, to avoid accidental promotion to unsigned */
-#define _toupper(__c) ((__c) & ~32)
-#define _tolower(__c) ((__c) | 32)
-
-__ctype_inline int toupper(int __c)
-{
-  return islower(__c) ? _toupper(__c) : __c;
-}
-
-__ctype_inline int tolower(int __c)
-{
-  return isupper(__c) ? _tolower(__c) : __c;
-}
-
-#endif /* _CTYPE_H */
diff --git a/klibc/include/dirent.h b/klibc/include/dirent.h
deleted file mode 100644 (file)
index 4db4795..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * dirent.h
- */
-
-#ifndef _DIRENT_H
-#define _DIRENT_H
-
-#include <klibc/extern.h>
-#include <sys/dirent.h>
-
-struct _IO_dir {
-  int __fd;
-
-#ifdef __KLIBC_DIRENT_INTERNALS
-  /* These fields for internal use only */
-
-  size_t bytes_left;
-  struct dirent *next;
-  /* Declaring this as an array of struct enforces correct alignment */
-  struct dirent buffer[15];     /* 15 times max dirent size =~ 4K */
-#endif
-};
-typedef struct _IO_dir DIR;
-
-__extern DIR *opendir(const char *);
-__extern struct dirent *readdir(DIR *);
-__extern int closedir(DIR *);
-static __inline__ int dirfd (DIR *__d) {
-  return __d->__fd;
-}
-
-#endif /* _DIRENT_H */
diff --git a/klibc/include/elf.h b/klibc/include/elf.h
deleted file mode 100644 (file)
index 52f47d0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * elf.h
- */
-
-#ifndef _ELF_H
-#define _ELF_H
-
-#include <sys/elf32.h>
-#include <sys/elf64.h>
-
-#endif /* _ELF_H */
-
diff --git a/klibc/include/endian.h b/klibc/include/endian.h
deleted file mode 100644 (file)
index 44f89cc..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * endian.h
- */
-
-#ifndef _ENDIAN_H
-#define _ENDIAN_H
-
-#include <klibc/compiler.h>
-#include <asm/byteorder.h>
-
-/* Linux' asm/byteorder.h defines either __LITTLE_ENDIAN or
-   __BIG_ENDIAN, but the glibc/BSD-ish macros expect both to be
-   defined with __BYTE_ORDER defining which is actually used... */
-
-#if defined(__LITTLE_ENDIAN)
-# undef  __LITTLE_ENDIAN
-# define __LITTLE_ENDIAN 1234
-# define __BIG_ENDIAN    4321
-# define __PDP_ENDIAN    3412
-# define __BYTE_ORDER    __LITTLE_ENDIAN
-#elif defined(__BIG_ENDIAN)
-# undef  __BIG_ENDIAN
-# define __LITTLE_ENDIAN 1234
-# define __BIG_ENDIAN    4321
-# define __PDP_ENDIAN    3412
-# define __BYTE_ORDER    __BIG_ENDIAN
-#elif defined(__PDP_ENDIAN)
-# undef  __PDP_ENDIAN
-# define __LITTLE_ENDIAN 1234
-# define __BIG_ENDIAN    4321
-# define __PDP_ENDIAN    3412
-# define __BYTE_ORDER    __PDP_ENDIAN
-#else
-# error "Unknown byte order!"
-#endif
-
-#define LITTLE_ENDIAN  __LITTLE_ENDIAN
-#define BIG_ENDIAN     __BIG_ENDIAN
-#define PDP_ENDIAN     __PDP_ENDIAN
-#define BYTE_ORDER     __BYTE_ORDER
-
-#endif /* _ENDIAN_H */
diff --git a/klibc/include/errno.h b/klibc/include/errno.h
deleted file mode 100644 (file)
index b2e6665..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * errno.h
- */
-
-#include <klibc/extern.h>
-#include <asm/errno.h>
-
-__extern int errno;
diff --git a/klibc/include/fcntl.h b/klibc/include/fcntl.h
deleted file mode 100644 (file)
index c9650f7..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * fcntl.h
- */
-
-#ifndef _FCNTL_H
-#define _FCNTL_H
-
-#include <klibc/extern.h>
-#include <klibc/compiler.h>
-#include <sys/types.h>
-#if defined(__mips__) && !defined(__mips64__)
-# include <klibc/archfcntl.h>
-#endif
-#include <linux/fcntl.h>
-
-/* This is ugly, but "struct flock" has actually been defined with
-   a long off_t, so it's really "struct flock64".  It just happens
-   to work.  Gag.  Barf.
-
-   This happens to work on all 32-bit architectures except MIPS. */
-
-#ifdef F_GETLK64
-# undef F_GETLK
-# define F_GETLK F_GETLK64
-#endif
-
-#ifdef F_SETLK64
-# undef F_SETLK
-# define F_SETLK F_SETLK64
-#endif
-
-#ifdef F_SETLKW64
-# undef F_SETLKW
-# define F_SETLKW F_SETLKW64
-#endif
-
-/* This is defined here as well as in <unistd.h> since old-style code
-   would still include <fcntl.h> when using open(), and open() being
-   a varadic function changes its calling convention on some architectures. */
-#ifndef _KLIBC_IN_OPEN_C
-__extern int open(const char *, int, ...);
-#endif
-
-__extern int fcntl(int, int, ...);
-
-#endif /* _FCNTL_H */
diff --git a/klibc/include/grp.h b/klibc/include/grp.h
deleted file mode 100644 (file)
index 03ceb31..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * grp.h
- */
-
-#ifndef _GRP_H
-#define _GRP_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-
-__extern int setgroups(size_t, const gid_t *);
-
-#endif /* _GRP_H */
diff --git a/klibc/include/inttypes.h b/klibc/include/inttypes.h
deleted file mode 100644 (file)
index e00fa63..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * inttypes.h
- */
-
-#ifndef _INTTYPES_H
-#define _INTTYPES_H
-
-#include <klibc/extern.h>
-#include <stdint.h>
-#include <stddef.h>
-
-static __inline__ intmax_t imaxabs(intmax_t __n)
-{
-  return (__n < (intmax_t)0) ? -__n : __n;
-}
-
-__extern intmax_t strtoimax(const char *, char **, int);
-__extern uintmax_t strtoumax(const char *, char **, int);
-
-/* extensions */
-__extern intmax_t strntoimax(const char *, char **, int, size_t);
-__extern uintmax_t strntoumax(const char *, char **, int, size_t);
-
-#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS)
-
-#define PRId8  "d"
-#define PRId16 "d"
-#define PRId32 "d"
-#define PRId64 __PRI64_RANK "d"
-
-#define PRIdLEAST8     "d"
-#define PRIdLEAST16    "d"
-#define PRIdLEAST32    "d"
-#define PRIdLEAST64    __PRI64_RANK "d"
-
-#define PRIdFAST8      "d"
-#define PRIdFAST16     __PRIFAST_RANK "d"
-#define PRIdFAST32     __PRIFAST_RANK "d"
-#define PRIdFAST64     __PRI64_RANK "d"
-
-#define PRIdMAX         __PRI64_RANK "d"
-#define PRIdPTR  __PRIPTR_RANK "d"
-
-#define PRIi8  "i"
-#define PRIi16 "i"
-#define PRIi32 "i"
-#define PRIi64 __PRI64_RANK "i"
-
-#define PRIiLEAST8     "i"
-#define PRIiLEAST16    "i"
-#define PRIiLEAST32    "i"
-#define PRIiLEAST64    __PRI64_RANK "i"
-
-#define PRIiFAST8      "i"
-#define PRIiFAST16     __PRIFAST_RANK "i"
-#define PRIiFAST32     __PRIFAST_RANK "i"
-#define PRIiFAST64     __PRI64_RANK "i"
-
-#define PRIiMAX         __PRI64_RANK "i"
-#define PRIiPTR  __PRIPTR_RANK "i"
-
-#define PRIo8  "o"
-#define PRIo16 "o"
-#define PRIo32 "o"
-#define PRIo64 __PRI64_RANK "o"
-
-#define PRIoLEAST8     "o"
-#define PRIoLEAST16    "o"
-#define PRIoLEAST32    "o"
-#define PRIoLEAST64    __PRI64_RANK "o"
-
-#define PRIoFAST8      "o"
-#define PRIoFAST16     __PRIFAST_RANK "o"
-#define PRIoFAST32     __PRIFAST_RANK "o"
-#define PRIoFAST64     __PRI64_RANK "o"
-
-#define PRIoMAX         __PRI64_RANK "o"
-#define PRIoPTR  __PRIPTR_RANK "o"
-
-#define PRIu8  "u"
-#define PRIu16 "u"
-#define PRIu32 "u"
-#define PRIu64 __PRI64_RANK "u"
-
-#define PRIuLEAST8     "u"
-#define PRIuLEAST16    "u"
-#define PRIuLEAST32    "u"
-#define PRIuLEAST64    __PRI64_RANK "u"
-
-#define PRIuFAST8      "u"
-#define PRIuFAST16     __PRIFAST_RANK "u"
-#define PRIuFAST32     __PRIFAST_RANK "u"
-#define PRIuFAST64     __PRI64_RANK "u"
-
-#define PRIuMAX         __PRI64_RANK "u"
-#define PRIuPTR  __PRIPTR_RANK "u"
-
-#define PRIx8  "x"
-#define PRIx16 "x"
-#define PRIx32 "x"
-#define PRIx64 __PRI64_RANK "x"
-
-#define PRIxLEAST8     "x"
-#define PRIxLEAST16    "x"
-#define PRIxLEAST32    "x"
-#define PRIxLEAST64    __PRI64_RANK "x"
-
-#define PRIxFAST8      "x"
-#define PRIxFAST16     __PRIFAST_RANK "x"
-#define PRIxFAST32     __PRIFAST_RANK "x"
-#define PRIxFAST64     __PRI64_RANK "x"
-
-#define PRIxMAX         __PRI64_RANK "x"
-#define PRIxPTR  __PRIPTR_RANK "x"
-
-#define PRIX8  "X"
-#define PRIX16 "X"
-#define PRIX32 "X"
-#define PRIX64 __PRI64_RANK "X"
-
-#define PRIXLEAST8     "X"
-#define PRIXLEAST16    "X"
-#define PRIXLEAST32    "X"
-#define PRIXLEAST64    __PRI64_RANK "X"
-
-#define PRIXFAST8      "X"
-#define PRIXFAST16     __PRIFAST_RANK "X"
-#define PRIXFAST32     __PRIFAST_RANK "X"
-#define PRIXFAST64     __PRI64_RANK "X"
-
-#define PRIXMAX         __PRI64_RANK "X"
-#define PRIXPTR  __PRIPTR_RANK "X"
-
-#define SCNd8  "hhd"
-#define SCNd16 "hd"
-#define SCNd32 "d"
-#define SCNd64 __PRI64_RANK "d"
-
-#define SCNdLEAST8     "hhd"
-#define SCNdLEAST16    "hd"
-#define SCNdLEAST32    "d"
-#define SCNdLEAST64    __PRI64_RANK "d"
-
-#define SCNdFAST8      "hhd"
-#define SCNdFAST16     __PRIFAST_RANK "d"
-#define SCNdFAST32     __PRIFAST_RANK "d"
-#define SCNdFAST64     __PRI64_RANK "d"
-
-#define SCNdMAX         __PRI64_RANK "d"
-#define SCNdPTR  __PRIPTR_RANK "d"
-
-#define SCNi8  "hhi"
-#define SCNi16 "hi"
-#define SCNi32 "i"
-#define SCNi64 __PRI64_RANK "i"
-
-#define SCNiLEAST8     "hhi"
-#define SCNiLEAST16    "hi"
-#define SCNiLEAST32    "i"
-#define SCNiLEAST64    __PRI64_RANK "i"
-
-#define SCNiFAST8      "hhi"
-#define SCNiFAST16     __PRIFAST_RANK "i"
-#define SCNiFAST32     __PRIFAST_RANK "i"
-#define SCNiFAST64     __PRI64_RANK "i"
-
-#define SCNiMAX         __PRI64_RANK "i"
-#define SCNiPTR  __PRIPTR_RANK "i"
-
-#define SCNo8  "hho"
-#define SCNo16 "ho"
-#define SCNo32 "o"
-#define SCNo64 __PRI64_RANK "o"
-
-#define SCNoLEAST8     "hho"
-#define SCNoLEAST16    "ho"
-#define SCNoLEAST32    "o"
-#define SCNoLEAST64    __PRI64_RANK "o"
-
-#define SCNoFAST8      "hho"
-#define SCNoFAST16     __PRIFAST_RANK "o"
-#define SCNoFAST32     __PRIFAST_RANK "o"
-#define SCNoFAST64     __PRI64_RANK "o"
-
-#define SCNoMAX         __PRI64_RANK "o"
-#define SCNoPTR  __PRIPTR_RANK "o"
-
-#define SCNu8  "hhu"
-#define SCNu16 "hu"
-#define SCNu32 "u"
-#define SCNu64 __PRI64_RANK "u"
-
-#define SCNuLEAST8     "hhu"
-#define SCNuLEAST16    "hu"
-#define SCNuLEAST32    "u"
-#define SCNuLEAST64    __PRI64_RANK "u"
-
-#define SCNuFAST8      "hhu"
-#define SCNuFAST16     __PRIFAST_RANK "u"
-#define SCNuFAST32     __PRIFAST_RANK "u"
-#define SCNuFAST64     __PRI64_RANK "u"
-
-#define SCNuMAX         __PRI64_RANK "u"
-#define SCNuPTR  __PRIPTR_RANK "u"
-
-#define SCNx8  "hhx"
-#define SCNx16 "hx"
-#define SCNx32 "x"
-#define SCNx64 __PRI64_RANK "x"
-
-#define SCNxLEAST8     "hhx"
-#define SCNxLEAST16    "hx"
-#define SCNxLEAST32    "x"
-#define SCNxLEAST64    __PRI64_RANK "x"
-
-#define SCNxFAST8      "hhx"
-#define SCNxFAST16     __PRIFAST_RANK "x"
-#define SCNxFAST32     __PRIFAST_RANK "x"
-#define SCNxFAST64     __PRI64_RANK "x"
-
-#define SCNxMAX         __PRI64_RANK "x"
-#define SCNxPTR  __PRIPTR_RANK "x"
-
-#endif
-
-#endif /* _INTTYPES_H */
diff --git a/klibc/include/klibc/compiler.h b/klibc/include/klibc/compiler.h
deleted file mode 100644 (file)
index 7ff6ff7..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * klibc/compiler.h
- *
- * Various compiler features
- */
-
-#ifndef _KLIBC_COMPILER_H
-#define _KLIBC_COMPILER_H
-
-/* Specific calling conventions */
-/* __cdecl is used when we want varadic and non-varadic functions to have
-   the same binary calling convention. */
-#ifdef __i386__
-# ifdef __GNUC__
-#  define __cdecl __attribute__((cdecl,regparm(0)))
-# else
-  /* Most other C compilers have __cdecl as a keyword */
-# endif
-#else
-# define __cdecl               /* Meaningless on non-i386 */
-#endif
-
-/* How to declare a function that *must* be inlined */
-#ifdef __GNUC__
-# if __GNUC__ >= 3
-#  define __must_inline static __inline__ __attribute__((always_inline))
-# else
-#  define __must_inline extern __inline__
-# endif
-#else
-# define __must_inline inline  /* Just hope this works... */
-#endif
-
-/* How to declare a function that does not return */
-#ifdef __GNUC__
-# define __noreturn void __attribute__((noreturn))
-#else
-# define __noreturn void
-#endif
-
-/* "const" function:
-
-     Many functions do not examine any values except their arguments,
-     and have no effects except the return value.  Basically this is
-     just slightly more strict class than the `pure' attribute above,
-     since function is not allowed to read global memory.
-
-     Note that a function that has pointer arguments and examines the
-     data pointed to must _not_ be declared `const'.  Likewise, a
-     function that calls a non-`const' function usually must not be
-     `const'.  It does not make sense for a `const' function to return
-     `void'.
-*/
-#ifdef __GNUC__
-# define __constfunc __attribute__((const))
-#else
-# define __constfunc
-#endif
-#undef __attribute_const__
-#define __attribute_const__ __constfunc
-
-/* "pure" function:
-
-     Many functions have no effects except the return value and their
-     return value depends only on the parameters and/or global
-     variables.  Such a function can be subject to common subexpression
-     elimination and loop optimization just as an arithmetic operator
-     would be.  These functions should be declared with the attribute
-     `pure'.
-*/
-#ifdef __GNUC__
-# define __purefunc __attribute__((pure))
-#else
-# define __purefunc
-#endif
-#undef __attribute_pure__
-#define __attribute_pure__ __purefunc
-
-/* Format attribute */
-#ifdef __GNUC__
-# define __formatfunc(t,f,a) __attribute__((format(t,f,a)))
-#else
-# define __formatfunc(t,f,a)
-#endif
-
-/* malloc() function (returns unaliased pointer) */
-#if defined(__GNUC__) && (__GNUC__ >= 3)
-# define __mallocfunc __attribute__((malloc))
-#else
-# define __mallocfunc
-#endif
-
-/* likely/unlikely */
-#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
-# define __likely(x)   __builtin_expect((x), 1)
-# define __unlikely(x) __builtin_expect((x), 0)
-#else
-# define __likely(x)   (x)
-# define __unlikely(x) (x)
-#endif
-
-/* Possibly unused function */
-#ifdef __GNUC__
-# define __unusedfunc  __attribute__((unused))
-#else
-# define __unusedfunc
-#endif
-
-/* It's all user space... */
-#define __user
-
-/* The bitwise attribute: disallow arithmetric operations */
-#ifdef __CHECKER__ /* sparse only */
-# define __bitwise     __attribute__((bitwise))
-#else
-# define __bitwise
-#endif
-
-/* Compiler pragma to make an alias symbol */
-#define __ALIAS(__t, __f, __p, __a) \
-  __t __f __p __attribute__((weak, alias(#__a)));
-
-#endif
diff --git a/klibc/include/klibc/diverr.h b/klibc/include/klibc/diverr.h
deleted file mode 100644 (file)
index 4d8c8d3..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * klibc/diverr.h
- */
-
-#ifndef _KLIBC_DIVERR_H
-#define _KLIBC_DIVERR_H
-
-#include <signal.h>
-
-static __inline__ void
-__divide_error(void)
-{
-  raise(SIGFPE);
-}
-
-#endif /* _KLIBC_DIVERR_H */
diff --git a/klibc/include/klibc/extern.h b/klibc/include/klibc/extern.h
deleted file mode 100644 (file)
index 8a73d19..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * klibc/extern.h
- */
-
-#ifndef _KLIBC_EXTERN_H
-#define _KLIBC_EXTERN_H
-
-#ifdef __cplusplus
-#define __extern extern "C"
-#else
-#define __extern extern
-#endif
-
-#define __alias(x) __attribute__((weak, alias(x)))
-
-#endif /* _KLIBC_EXTERN_H */
diff --git a/klibc/include/klibc/sysconfig.h b/klibc/include/klibc/sysconfig.h
deleted file mode 100644 (file)
index ce01c23..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * klibc/sysconfig.h
- *
- * Allows for definitions of some things which may be system-dependent
- */
-
-#ifndef _KLIBC_SYSCONFIG_H
-#define _KLIBC_SYSCONFIG_H
-
-/*
- * Define this to obtain memory using sbrk() instead
- * of mmap().  This should make it friendlier on
- * non-MMU architectures.  This should become a
- * per-architecture configurable.
- */
-#undef MALLOC_USING_SBRK
-
-/*
- * This is the minimum chunk size we will ask the kernel for using
- * malloc(); this should be a multiple of the page size on all
- * architectures.
- */
-#define MALLOC_CHUNK_SIZE      65536
-#define MALLOC_CHUNK_MASK       (MALLOC_CHUNK_SIZE-1)
-
-/*
- * This is the minimum alignment for the memory returned by sbrk().
- * It must be a power of 2.  If MALLOC_USING_SBRK is defined it should
- * be no smaller than the size of struct arena_header in malloc.h (4
- * pointers.)
- */
-#define SBRK_ALIGNMENT         32
-
-#endif /* _KLIBC_SYSCONFIG_H */
diff --git a/klibc/include/limits.h b/klibc/include/limits.h
deleted file mode 100644 (file)
index f1532e5..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * limits.h
- */
-
-#ifndef _LIMITS_H
-#define _LIMITS_H
-
-#define CHAR_BIT       8
-#define SHRT_BIT       16
-#define INT_BIT                32
-#define LONGLONG_BIT   64
-
-#define SCHAR_MIN      (-128)
-#define SCHAR_MAX      127
-#define UCHAR_MAX      255
-
-#ifdef __CHAR_UNSIGNED__
-# define CHAR_MIN 0
-# define CHAR_MAX UCHAR_MAX
-#else
-# define CHAR_MIN SCHAR_MIN
-# define CHAR_MAX SCHAR_MAX
-#endif
-
-#define SHRT_MIN       (-32768)
-#define SHRT_MAX       32767
-#define USHRT_MAX      65535
-
-#define INT_MIN                (-2147483647-1)
-#define INT_MAX                2147483647
-#define UINT_MAX       4294967295U
-
-#define LONGLONG_MIN   (-9223372036854775807LL-1)
-#define LONGLONG_MAX   9223372036854775807LL
-#define ULONGLONG_MAX  18446744073709551615ULL
-
-#include <bitsize/limits.h>
-#include <linux/limits.h>
-
-#endif /* _LIMITS_H */
diff --git a/klibc/include/malloc.h b/klibc/include/malloc.h
deleted file mode 100644 (file)
index 5beca8d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * malloc.h
- *
- * Apparently people haven't caught on to use <stdlib.h>, which is the
- * standard place for this crap since the 1980's...
- */
-
-#ifndef _MALLOC_H
-#define _MALLOC_H
-
-#include <klibc/extern.h>
-#include <klibc/compiler.h>
-#include <stddef.h>
-
-__extern void free(void *);
-
-__extern __mallocfunc void *malloc(size_t);
-__extern __mallocfunc void *calloc(size_t, size_t);
-__extern __mallocfunc void *realloc(void *, size_t);
-
-#endif /* _MALLOC_H */
diff --git a/klibc/include/net/if.h b/klibc/include/net/if.h
deleted file mode 100644 (file)
index 1aa8e7b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/if.h>
diff --git a/klibc/include/net/if_arp.h b/klibc/include/net/if_arp.h
deleted file mode 100644 (file)
index a25f1b4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/if_arp.h>
diff --git a/klibc/include/net/if_packet.h b/klibc/include/net/if_packet.h
deleted file mode 100644 (file)
index b5e8e0e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/if_packet.h>
diff --git a/klibc/include/net/route.h b/klibc/include/net/route.h
deleted file mode 100644 (file)
index a60df24..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/route.h>
diff --git a/klibc/include/netinet/if_ether.h b/klibc/include/netinet/if_ether.h
deleted file mode 100644 (file)
index 060ef22..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/if_ether.h>
diff --git a/klibc/include/netinet/in.h b/klibc/include/netinet/in.h
deleted file mode 100644 (file)
index 27b7787..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * netinet/in.h
- */
-
-#ifndef _NETINET_IN_H
-#define _NETINET_IN_H
-
-/* added this include by Mats Petersson */
-#include <linux/socket.h>
-
-#include <klibc/extern.h>
-#include <stdint.h>
-#include <endian.h>            /* Must be included *before* <linux/in.h> */
-#include <linux/in.h>
-
-#ifndef htons
-# define htons(x)      __cpu_to_be16(x)
-#endif
-#ifndef ntohs
-# define ntohs(x)      __be16_to_cpu(x)
-#endif
-#ifndef htonl
-# define htonl(x)      __cpu_to_be32(x)
-#endif
-#ifndef ntohl
-# define ntohl(x)      __be32_to_cpu(x)
-#endif
-#ifndef htonq
-# define htonq(x)      __cpu_to_be64(x)
-#endif
-#ifndef ntohq
-# define ntohq(x)      __be64_to_cpu(x)
-#endif
-
-#define IPPORT_RESERVED        1024
-
-__extern int bindresvport (int sd, struct sockaddr_in *sin);
-
-#endif /* _NETINET_IN_H */
diff --git a/klibc/include/netinet/in6.h b/klibc/include/netinet/in6.h
deleted file mode 100644 (file)
index 46584ca..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * netinet/in6.h
- */
-
-#ifndef _NETINET_IN6_H
-#define _NETINET_IN6_H
-
-#include <linux/in6.h>
-
-#endif /* _NETINET_IN6_H */
diff --git a/klibc/include/netinet/ip.h b/klibc/include/netinet/ip.h
deleted file mode 100644 (file)
index 8aecbe6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * netinet/ip.h
- */
-
-#ifndef _NETINET_IP_H
-#define _NETINET_IP_H
-
-#include <endian.h>
-#include <linux/ip.h>
-
-#define IP_DF          0x4000          /* Flag: "Don't Fragment" */
-
-#endif /* _NETINET_IP_H */
diff --git a/klibc/include/netinet/tcp.h b/klibc/include/netinet/tcp.h
deleted file mode 100644 (file)
index bb5d307..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * netinet/tcp.h
- */
-
-#ifndef _NETINET_TCP_H
-#define _NETINET_TCP_H
-
-#include <endian.h>            /* Include *before* linux/tcp.h */
-#include <linux/tcp.h>
-
-#endif /* _NETINET_TCP_H */
diff --git a/klibc/include/netinet/udp.h b/klibc/include/netinet/udp.h
deleted file mode 100644 (file)
index b809b4e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * netinet/udp.h
- */
-
-#ifndef _NETINET_UDP_H
-#define _NETINET_UDP_H
-
-/*
- * We would include linux/udp.h, but it brings in too much other stuff
- */
-
-struct udphdr {
-       __u16   source;
-       __u16   dest;
-       __u16   len;
-       __u16   check;
-};
-
-#endif /* _NETINET_UDP_H */
diff --git a/klibc/include/netpacket/packet.h b/klibc/include/netpacket/packet.h
deleted file mode 100644 (file)
index b5e8e0e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/if_packet.h>
diff --git a/klibc/include/paths.h b/klibc/include/paths.h
deleted file mode 100644 (file)
index a87831e..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)paths.h     8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _PATHS_H_
-#define        _PATHS_H_
-
-/* Default search path. */
-#define        _PATH_DEFPATH   "/usr/bin:/bin"
-/* All standard utilities path. */
-#define        _PATH_STDPATH \
-       "/usr/bin:/bin:/usr/sbin:/sbin"
-
-#define        _PATH_BSHELL    "/bin/sh"
-#define        _PATH_CONSOLE   "/dev/console"
-#define        _PATH_CSHELL    "/bin/csh"
-#define        _PATH_DEVDB     "/var/run/dev.db"
-#define        _PATH_DEVNULL   "/dev/null"
-#define        _PATH_DRUM      "/dev/drum"
-#define        _PATH_KLOG      "/proc/kmsg"
-#define        _PATH_KMEM      "/dev/kmem"
-#define        _PATH_LASTLOG   "/var/log/lastlog"
-#define        _PATH_MAILDIR   "/var/mail"
-#define        _PATH_MAN       "/usr/share/man"
-#define        _PATH_MEM       "/dev/mem"
-#define        _PATH_MNTTAB    "/etc/fstab"
-#define        _PATH_MOUNTED   "/etc/mtab"
-#define        _PATH_NOLOGIN   "/etc/nologin"
-#define        _PATH_PRESERVE  "/var/lib"
-#define        _PATH_RWHODIR   "/var/spool/rwho"
-#define        _PATH_SENDMAIL  "/usr/sbin/sendmail"
-#define        _PATH_SHADOW    "/etc/shadow"
-#define        _PATH_SHELLS    "/etc/shells"
-#define        _PATH_TTY       "/dev/tty"
-#define        _PATH_UNIX      "/boot/vmlinux"
-#define _PATH_UTMP     "/var/run/utmp"
-#define        _PATH_VI        "/bin/vi"
-#define _PATH_WTMP     "/var/log/wtmp"
-
-/* Provide trailing slash, since mostly used for building pathnames. */
-#define        _PATH_DEV       "/dev/"
-#define        _PATH_TMP       "/tmp/"
-#define        _PATH_VARDB     "/var/db/"
-#define        _PATH_VARRUN    "/var/run/"
-#define        _PATH_VARTMP    "/var/tmp/"
-
-#endif /* !_PATHS_H_ */
diff --git a/klibc/include/poll.h b/klibc/include/poll.h
deleted file mode 100644 (file)
index 8710d92..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * poll.h
- */
-
-#ifndef _POLL_H
-#define _POLL_H
-
-#include <klibc/extern.h>
-#include <linux/poll.h>
-
-/* POSIX specifies "int" for the timeout, Linux seems to use long... */
-
-typedef unsigned int nfds_t;
-__extern int poll(struct pollfd *, nfds_t, long);
-
-#endif /* _POLL_H */
diff --git a/klibc/include/sched.h b/klibc/include/sched.h
deleted file mode 100644 (file)
index 3465b57..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * sched.h
- */
-
-#ifndef _SCHED_H
-#define _SCHED_H
-
-#include <klibc/extern.h>
-
-/* linux/sched.h is unusable; put the declarations we need here... */
-
-#define SCHED_NORMAL            0
-#define SCHED_FIFO              1
-#define SCHED_RR                2
-
-struct sched_param {
-  int sched_priority;
-};
-
-__extern int sched_setscheduler(pid_t, int, const struct sched_param *);
-__extern int sched_yield(void);
-
-/* Raw interfaces to clone(2); only actually usable for non-VM-cloning */
-#ifdef __ia64__
-__extern pid_t __clone2(int, void *, void *);
-static __inline__ pid_t __clone(int _f, void *_sp)
-{
-  /* If this is used with _sp != 0 it will have the effect of the sp
-     and rsp growing away from a single point in opposite directions. */
-  return __clone2(_f, _sp, _sp);
-}  
-#else
-__extern pid_t __clone(int, void *);
-#endif
-
-#endif /* _SCHED_H */
diff --git a/klibc/include/setjmp.h b/klibc/include/setjmp.h
deleted file mode 100644 (file)
index b504eb6..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * setjmp.h
- */
-
-#ifndef _SETJMP_H
-#define _SETJMP_H
-
-#include <klibc/extern.h>
-#include <klibc/compiler.h>
-#include <stddef.h>
-#include <signal.h>
-
-#include <klibc/archsetjmp.h>
-
-__extern int setjmp(jmp_buf);
-__extern __noreturn longjmp(jmp_buf, int);
-
-/*
-  Whose bright idea was it to add unrelated functionality to just about
-  the only function in the standard C library (setjmp) which cannot be
-  wrapped by an ordinary function wrapper?  Anyway, the damage is done,
-  and therefore, this wrapper *must* be inline.  However, gcc will
-  complain if this is an inline function for unknown reason, and
-  therefore sigsetjmp() needs to be a macro.
-*/
-
-struct __sigjmp_buf {
-  jmp_buf __jmpbuf;
-  sigset_t __sigs;
-};
-
-typedef struct __sigjmp_buf sigjmp_buf[1];
-
-#define sigsetjmp(__env, __save) \
-({ \
-  struct __sigjmp_buf *__e = (__env); \
-  sigprocmask(0, NULL, &__e->__sigs); \
-  setjmp(__e->__jmpbuf); \
-})
-
-__extern __noreturn siglongjmp(sigjmp_buf, int);
-
-#endif /* _SETJMP_H */
diff --git a/klibc/include/signal.h b/klibc/include/signal.h
deleted file mode 100644 (file)
index 05930bd..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * signal.h
- */
-
-#ifndef _SIGNAL_H
-#define _SIGNAL_H
-
-#include <klibc/compiler.h>
-#include <klibc/extern.h>
-#include <string.h>            /* For memset() */
-#include <limits.h>            /* For LONG_BIT */
-#include <sys/types.h>
-#include <asm/signal.h>
-
-#include <klibc/archsignal.h>
-
-/* glibc seems to use sig_atomic_t as "int" pretty much on all architectures.
-   Do the same, but allow the architecture to override. */
-#ifndef _KLIBC_HAS_ARCH_SIG_ATOMIC_T
-typedef int sig_atomic_t;
-#endif
-
-/* Some architectures don't define these */
-#ifndef SA_RESETHAND
-# define SA_RESETHAND SA_ONESHOT
-#endif
-#ifndef SA_NODEFER
-# define SA_NODEFER SA_NOMASK
-#endif
-/* Some architectures define NSIG and not _NSIG or vice versa */
-#ifndef NSIG
-# define NSIG _NSIG
-#endif
-#ifndef _NSIG
-# define _NSIG NSIG
-#endif
-
-/* If we don't have any real-time signals available to userspace,
-   hide them all */
-#if SIGRTMAX <= SIGRTMIN
-# undef SIGRTMIN
-# undef SIGRTMAX
-#endif
-
-__extern const char * const sys_siglist[];
-
-/* This assumes sigset_t is either an unsigned long or an array of such,
-   and that _NSIG_BPW in the kernel is always LONG_BIT */
-
-static __inline__ int sigemptyset(sigset_t *__set)
-{
-  memset(__set, 0, sizeof *__set);
-  return 0;
-}
-static __inline__ int sigfillset(sigset_t *__set)
-{
-  memset(__set, ~0, sizeof *__set);
-  return 0;
-}
-static __inline__ int sigaddset(sigset_t *__set, int __signum)
-{
-  unsigned long *__lset = (unsigned long *)__set;
-  __lset[__signum/LONG_BIT] |= 1UL << (__signum%LONG_BIT);
-  return 0;
-}
-static __inline__ int sigdelset(sigset_t *__set, int __signum)
-{
-  unsigned long *__lset = (unsigned long *)__set;
-  __lset[__signum/LONG_BIT] &= ~(1UL << (__signum%LONG_BIT));
-  return 0;
-}
-static __inline__ int sigismember(sigset_t *__set, int __signum)
-{
-  unsigned long *__lset = (unsigned long *)__set;
-  return (int)((__lset[__signum/LONG_BIT] >> (__signum%LONG_BIT)) & 1);
-}
-
-__extern __sighandler_t __signal(int, __sighandler_t, int);
-__extern __sighandler_t sysv_signal(int, __sighandler_t);
-__extern __sighandler_t bsd_signal(int, __sighandler_t);
-__extern int sigaction(int, const struct sigaction *, struct sigaction *);
-__extern int sigprocmask(int, const sigset_t *, sigset_t *);
-__extern int sigpending(sigset_t *);
-__extern int sigsuspend(const sigset_t *);
-__extern int raise(int);
-__extern int kill(pid_t, int);
-
-#endif /* _SIGNAL_H */
diff --git a/klibc/include/stdarg.h b/klibc/include/stdarg.h
deleted file mode 100644 (file)
index cc324b8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * stdarg.h
- *
- * This is just a wrapper for the gcc one, but defines va_copy()
- * even if gcc doesn't.
- */
-
-/* Note: the _STDARG_H macro belongs to the gcc header... */
-#include_next <stdarg.h>
-
-/* Older gcc considers this an extension, so it's double underbar only */
-#ifndef va_copy
-#define va_copy(d,s) __va_copy(d,s)
-#endif
diff --git a/klibc/include/stddef.h b/klibc/include/stddef.h
deleted file mode 100644 (file)
index e96f28c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * stddef.h
- */
-
-#ifndef _STDDEF_H
-#define _STDDEF_H
-
-#ifndef __KLIBC__
-# error "__KLIBC__ not defined, compiler invocation error!"
-#endif
-
-#include <bitsize/stddef.h>
-
-#undef NULL
-#ifdef __cplusplus
-# define NULL 0
-#else
-# define NULL ((void *)0)
-#endif
-
-#undef offsetof
-#define offsetof(t,m) ((size_t)&((t *)0)->m)
-
-#endif /* _STDDEF_H */
diff --git a/klibc/include/stdint.h b/klibc/include/stdint.h
deleted file mode 100644 (file)
index 47fec18..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * stdint.h
- */
-
-#ifndef _STDINT_H
-#define _STDINT_H
-
-#include <bitsize/stdint.h>
-
-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 int64_t  int_fast64_t;
-
-typedef uint8_t  uint_fast8_t;
-typedef uint64_t uint_fast64_t;
-
-typedef int64_t  intmax_t;
-typedef uint64_t uintmax_t;
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
-
-#define INT8_MIN       (-128)
-#define INT16_MIN      (-32768)
-#define INT32_MIN      (-2147483647-1)
-#define INT64_MIN      (__INT64_C(-9223372036854775807)-1)
-
-#define INT8_MAX       (127)
-#define INT16_MAX      (32767)
-#define INT32_MAX      (2147483647)
-#define INT64_MAX      (__INT64_C(9223372036854775807))
-
-#define UINT8_MAX      (255U)
-#define UINT16_MAX     (65535U)
-#define UINT32_MAX     (4294967295U)
-#define UINT64_MAX     (__UINT64_C(18446744073709551615))
-
-#define INT_LEAST8_MIN INT8_MIN
-#define INT_LEAST16_MIN        INT16_MIN
-#define INT_LEAST32_MIN        INT32_MIN
-#define INT_LEAST64_MIN        INT64_MIN
-
-#define INT_LEAST8_MAX INT8_MAX
-#define INT_LEAST16_MAX        INT16_MAX
-#define INT_LEAST32_MAX        INT32_MAX
-#define INT_LEAST64_MAX        INT64_MAX
-
-#define UINT_LEAST8_MAX         UINT8_MAX
-#define UINT_LEAST16_MAX UINT16_MAX
-#define UINT_LEAST32_MAX UINT32_MAX
-#define UINT_LEAST64_MAX UINT64_MAX
-
-#define INT_FAST8_MIN  INT8_MIN
-#define INT_FAST64_MIN INT64_MIN
-
-#define INT_FAST8_MAX  INT8_MAX
-#define INT_FAST64_MAX INT64_MAX
-
-#define UINT_FAST8_MAX UINT8_MAX
-#define UINT_FAST64_MAX UINT64_MAX
-
-#define INTMAX_MIN     INT64_MIN
-#define INTMAX_MAX     INT64_MAX
-#define UINTMAX_MAX    UINT64_MAX
-
-#include <bitsize/stdintlimits.h>
-
-#endif
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
-
-#define INT8_C(c)      c
-#define INT16_C(c)     c
-#define INT32_C(c)     c
-#define INT64_C(c)     __INT64_C(c)
-
-#define UINT8_C(c)     c ## U
-#define UINT16_C(c)    c ## U
-#define UINT32_C(c)    c ## U
-#define UINT64_C(c)    __UINT64_C(c)
-
-#define INT_LEAST8_C(c)         INT8_C(c)
-#define INT_LEAST16_C(c) INT16_C(c)
-#define INT_LEAST32_C(c) INT32_C(c)
-#define INT_LEAST64_C(c) INT64_C(c)
-
-#define UINT_LEAST8_C(c)  UINT8_C(c)
-#define UINT_LEAST16_C(c) UINT16_C(c)
-#define UINT_LEAST32_C(c) UINT32_C(c)
-#define UINT_LEAST64_C(c) UINT64_C(c)
-
-#define INT_FAST8_C(c) INT8_C(c)
-#define INT_FAST64_C(c) INT64_C(c)
-
-#define UINT_FAST8_C(c)  UINT8_C(c)
-#define UINT_FAST64_C(c) UINT64_C(c)
-
-#define INTMAX_C(c)    INT64_C(c)
-#define UINTMAX_C(c)   UINT64_C(c)
-
-#include <bitsize/stdintconst.h>
-
-#endif
-
-/* Keep the kernel from trying to define these types... */
-#define __BIT_TYPES_DEFINED__
-
-#endif /* _STDINT_H */
diff --git a/klibc/include/stdio.h b/klibc/include/stdio.h
deleted file mode 100644 (file)
index d30622c..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * stdio.h
- */
-
-#ifndef _STDIO_H
-#define _STDIO_H
-
-#include <klibc/extern.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <unistd.h>
-
-/* This structure doesn't really exist, but it gives us something
-   to define FILE * with */
-struct _IO_file;
-typedef struct _IO_file FILE;
-
-#ifndef EOF
-# define EOF (-1)
-#endif
-
-#ifndef BUFSIZ
-# define BUFSIZ 4096
-#endif
-
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-
-/*
- * Convert between a FILE * and a file descriptor.  We don't actually
- * have any in-memory data, so we just abuse the pointer itself to
- * hold the data.  Note, however, that for file descriptors, -1 is
- * error and 0 is a valid value; for FILE *, NULL (0) is error and
- * non-NULL are valid.
- */
-static __inline__ int fileno(FILE *__f)
-{
-  /* This should really be intptr_t, but size_t should be the same size */
-  return (int)(size_t)__f - 1;
-}
-
-/* This is a macro so it can be used as initializer */
-#define __create_file(__fd) ((FILE *)(size_t)((__fd) + 1))
-
-#define stdin  __create_file(0)
-#define stdout __create_file(1)
-#define stderr __create_file(2)
-
-__extern FILE *fopen(const char *, const char *);
-
-static __inline__ FILE *fdopen(int __fd, const char *__m)
-{
-  (void)__m; return __create_file(__fd);
-}
-static __inline__ int fclose(FILE *__f)
-{
-  extern int close(int);
-  return close(fileno(__f));
-}
-static __inline__ int fseek(FILE *__f, off_t __o, int __w)
-{
-  extern off_t lseek(int, off_t, int);
-  return (lseek(fileno(__f), __o, __w) == (off_t)-1) ? -1 : 0;
-}
-static __inline__ off_t ftell(FILE *__f)
-{
-  extern off_t lseek(int, off_t, int);
-  return lseek(fileno(__f), 0, SEEK_CUR);
-}
-
-__extern int fputs(const char *, FILE *);
-__extern int puts(const char *);
-__extern int fputc(int, FILE *);
-#define putc(c,f)  fputc((c),(f))
-#define putchar(c) fputc((c),stdout)
-
-__extern int    fgetc(FILE *);
-__extern char * fgets(char *, int, FILE *);
-#define getc(f) fgetc(f)
-
-__extern size_t _fread(void *, size_t, FILE *);
-__extern size_t _fwrite(const void *, size_t, FILE *);
-
-#ifndef __NO_FREAD_FWRITE_INLINES
-extern __inline__ size_t
-fread(void *__p, size_t __s, size_t __n, FILE *__f)
-{
-  return _fread(__p, __s*__n, __f)/__s;
-}
-
-extern __inline__ size_t
-fwrite(const void *__p, size_t __s, size_t __n, FILE *__f)
-{
-  return _fwrite(__p, __s*__n, __f)/__s;
-}
-#endif
-
-__extern int printf(const char *, ...);
-__extern int vprintf(const char *, va_list);
-__extern int fprintf(FILE *, const char *, ...);
-__extern int vfprintf(FILE *, const char *, va_list);
-__extern int sprintf(char *, const char *, ...);
-__extern int vsprintf(char *, const char *, va_list);
-__extern int snprintf(char *, size_t n, const char *, ...);
-__extern int vsnprintf(char *, size_t n, const char *, va_list);
-__extern int asprintf(char **, const char *, ...);
-__extern int vasprintf(char **, const char *, va_list);
-
-/* No buffering, so no flushing needed */
-extern __inline__ int
-fflush(FILE *__f)
-{
-  (void)__f;
-  return 0;
-}
-
-__extern int sscanf(const char *, const char *, ...);
-__extern int vsscanf(const char *, const char *, va_list);
-
-__extern void perror(const char *);
-
-__extern int rename(const char *, const char *);
-
-#endif /* _STDIO_H */
diff --git a/klibc/include/stdlib.h b/klibc/include/stdlib.h
deleted file mode 100644 (file)
index 17efc30..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * stdlib.h
- */
-
-#ifndef _STDLIB_H
-#define _STDLIB_H
-
-#include <klibc/extern.h>
-#include <klibc/compiler.h>
-#include <stddef.h>
-
-#include <malloc.h>
-
-#define EXIT_FAILURE 1
-#define EXIT_SUCCESS 0
-
-static __inline__ __noreturn _Exit(int __n) {
-  __extern __noreturn _exit(int);
-  _exit(__n);
-  for(;;);                     /* Some gcc versions are stupid */
-}
-__extern __noreturn abort(void);
-static __inline__ int abs(int __n) {
-  return (__n < 0) ? -__n : __n;
-}
-__extern int system(const char * string);
-__extern int atexit(void (*)(void));
-__extern int on_exit(void (*)(int, void *), void *);
-__extern int atoi(const char *);
-__extern long atol(const char *);
-__extern long long atoll(const char *);
-__extern __noreturn exit(int);
-static __inline__ long labs(long __n) {
-  return (__n < 0L) ? -__n : __n;
-}
-
-static __inline__ long long llabs(long long __n) {
-  return (__n < 0LL) ? -__n : __n;
-}
-
-__extern long strtol(const char *, char **, int);
-__extern long long strtoll(const char *, char **, int);
-__extern unsigned long strtoul(const char *, char **, int);
-__extern unsigned long long strtoull(const char *, char **, int);
-
-__extern char *getenv(const char *);
-__extern int putenv(const char *);
-__extern int setenv(const char *, const char *, int);
-__extern int unsetenv(const char *);
-
-__extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
-
-
-__extern long jrand48(unsigned short *);
-__extern long mrand48(void);
-__extern long nrand48(unsigned short *);
-__extern long lrand48(void);
-__extern unsigned short *seed48(const unsigned short *);
-__extern void srand48(long);
-
-#define RAND_MAX 0x7fffffff
-static __inline__ int rand(void) {
-  return (int)lrand48();
-}
-static __inline__ void srand(unsigned int __s) {
-  srand48(__s);
-}
-static __inline__ long random(void)
-{
-  return lrand48();
-}
-static __inline__ void srandom(unsigned int __s)
-{
-  srand48(__s);
-}
-
-/* Basic PTY functions.  These only work if devpts is mounted! */
-
-__extern int unlockpt(int);
-__extern char *ptsname(int);
-__extern int getpt(void);
-
-static __inline__ int grantpt(int __fd)
-{
-  (void)__fd;
-  return 0;                    /* devpts does this all for us! */
-}
-
-#endif /* _STDLIB_H */
diff --git a/klibc/include/string.h b/klibc/include/string.h
deleted file mode 100644 (file)
index 319be4e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * string.h
- */
-
-#ifndef _STRING_H
-#define _STRING_H
-
-#include <klibc/extern.h>
-#include <stddef.h>
-
-__extern void *memccpy(void *, const void *, int, size_t);
-__extern void *memchr(const void *, int, size_t);
-__extern void *memrchr(const void *, int, size_t);
-__extern int memcmp(const void *, const void *, size_t);
-__extern void *memcpy(void *, const void *, size_t);
-__extern void *memmove(void *, const void *, size_t);
-__extern void *memset(void *, int, size_t);
-__extern void *memmem(const void *, size_t, const void *, size_t);
-__extern void memswap(void *, void *, size_t);
-__extern int strcasecmp(const char *, const char *);
-__extern int strncasecmp(const char *, const char *, size_t);
-__extern char *strcat(char *, const char *);
-__extern char *strchr(const char *, int);
-__extern char *index(const char *, int);
-__extern char *strrchr(const char *, int);
-__extern char *rindex(const char *, int);
-__extern int strcmp(const char *, const char *);
-__extern char *strcpy(char *, const char *);
-__extern size_t strcspn(const char *, const char *);
-__extern char *strdup(const char *);
-__extern char *strndup(const char *, size_t);
-__extern char *strerror(int);
-__extern size_t strlen(const char *);
-__extern size_t strnlen(const char *, size_t);
-__extern char *strncat(char *, const char *, size_t);
-__extern size_t strlcat(char *, const char *, size_t);
-__extern int strncmp(const char *, const char *, size_t);
-__extern char *strncpy(char *, const char *, size_t);
-__extern size_t strlcpy(char *, const char *, size_t);
-__extern char *strpbrk(const char *, const char *);
-__extern char *strsep(char **, const char *);
-__extern size_t strspn(const char *, const char *);
-__extern char *strstr(const char *, const char *);
-__extern char *strtok(char *, const char *);
-
-#endif /* _STRING_H */
diff --git a/klibc/include/sys/dirent.h b/klibc/include/sys/dirent.h
deleted file mode 100644 (file)
index eec470c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * sys/dirent.h
- */
-
-#ifndef _SYS_DIRENT_H
-#define _SYS_DIRENT_H
-
-#include <stdint.h>
-
-/* The kernel calls this struct dirent64 */
-struct dirent {
-  uint64_t             d_ino;
-  int64_t              d_off;
-  unsigned short       d_reclen;
-  unsigned char                d_type;
-  char                 d_name[256];
-};
-
-__extern int getdents(unsigned int, struct dirent *, unsigned int);
-
-#endif /* _SYS_DIRENT_H */
diff --git a/klibc/include/sys/elf32.h b/klibc/include/sys/elf32.h
deleted file mode 100644 (file)
index 652de5b..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * sys/elf32.h
- */
-
-#ifndef _SYS_ELF32_H
-#define _SYS_ELF32_H
-
-#include <sys/elfcommon.h>
-
-/* ELF standard typedefs (yet more proof that <stdint.h> was way overdue) */
-typedef uint16_t  Elf32_Half;
-typedef int16_t   Elf32_SHalf;
-typedef uint32_t  Elf32_Word;
-typedef int32_t   Elf32_Sword;
-typedef uint64_t  Elf32_Xword;
-typedef int64_t   Elf32_Sxword;
-
-typedef uint32_t  Elf32_Off;
-typedef uint32_t  Elf32_Addr;
-typedef uint16_t  Elf32_Section;
-
-/* Dynamic header */
-
-typedef struct elf32_dyn {
-  Elf32_Sword d_tag;
-  union{
-    Elf32_Sword d_val;
-    Elf32_Addr  d_ptr;
-  } d_un;
-} Elf32_Dyn;
-
-/* Relocations */
-
-#define ELF32_R_SYM(x) ((x) >> 8)
-#define ELF32_R_TYPE(x)        ((x) & 0xff)
-
-typedef struct elf32_rel {
-  Elf32_Addr    r_offset;
-  Elf32_Word    r_info;
-} Elf32_Rel;
-
-typedef struct elf32_rela {
-  Elf32_Addr    r_offset;
-  Elf32_Word    r_info;
-  Elf32_Sword   r_addend;
-} Elf32_Rela;
-
-/* Symbol */
-
-typedef struct elf32_sym {
-  Elf32_Word    st_name;
-  Elf32_Addr    st_value;
-  Elf32_Word    st_size;
-  unsigned char st_info;
-  unsigned char st_other;
-  Elf32_Half    st_shndx;
-} Elf32_Sym;
-
-/* Main file header */
-
-typedef struct elf32_hdr {
-  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;
-
-/* Program header */
-
-typedef struct elf32_phdr {
-  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;
-
-
-/* Section header */
-
-typedef struct elf32_shdr {
-  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;
-
-/* Note header */
-typedef struct elf32_note {
-  Elf32_Word    n_namesz;       /* Name size */
-  Elf32_Word    n_descsz;       /* Content size */
-  Elf32_Word    n_type;         /* Content type */
-} Elf32_Nhdr;
-
-#endif /* _SYS_ELF32_H */
-
diff --git a/klibc/include/sys/elf64.h b/klibc/include/sys/elf64.h
deleted file mode 100644 (file)
index 750ddac..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * sys/elf64.h
- */
-
-#ifndef _SYS_ELF64_H
-#define _SYS_ELF64_H
-
-#include <sys/elfcommon.h>
-
-/* ELF standard typedefs (yet more proof that <stdint.h> was way overdue) */
-typedef uint16_t  Elf64_Half;
-typedef int16_t   Elf64_SHalf;
-typedef uint32_t  Elf64_Word;
-typedef int32_t   Elf64_Sword;
-typedef uint64_t  Elf64_Xword;
-typedef int64_t   Elf64_Sxword;
-
-typedef uint64_t  Elf64_Off;
-typedef uint64_t  Elf64_Addr;
-typedef uint16_t  Elf64_Section;
-
-/* Dynamic header */
-
-typedef struct elf64_dyn {
-  Elf64_Sxword d_tag;
-  union{
-    Elf64_Xword d_val;
-    Elf64_Addr  d_ptr;
-  } d_un;
-} Elf64_Dyn;
-
-/* Relocations */
-
-#define ELF64_R_SYM(x) ((x) >> 32)
-#define ELF64_R_TYPE(x)        ((x) & 0xffffffff)
-
-typedef struct elf64_rel {
-  Elf64_Addr    r_offset;
-  Elf64_Xword   r_info;
-} Elf64_Rel;
-
-typedef struct elf64_rela {
-  Elf64_Addr    r_offset;
-  Elf64_Xword   r_info;
-  Elf64_Sxword  r_addend;
-} Elf64_Rela;
-
-/* Symbol */
-
-typedef struct elf64_sym {
-  Elf64_Word    st_name;
-  unsigned char st_info;
-  unsigned char st_other;
-  Elf64_Half    st_shndx;
-  Elf64_Addr    st_value;
-  Elf64_Xword   st_size;
-} Elf64_Sym;
-
-/* Main file header */
-
-typedef struct elf64_hdr {
-  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;
-
-/* Program header */
-
-typedef struct elf64_phdr {
-  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;
-
-
-/* Section header */
-
-typedef struct elf64_shdr {
-  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;
-
-/* Note header */
-typedef struct elf64_note {
-  Elf64_Word    n_namesz;       /* Name size */
-  Elf64_Word    n_descsz;       /* Content size */
-  Elf64_Word    n_type;         /* Content type */
-} Elf64_Nhdr;
-
-#endif /* _SYS_ELF64_H */
-
diff --git a/klibc/include/sys/elfcommon.h b/klibc/include/sys/elfcommon.h
deleted file mode 100644 (file)
index d25804e..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * sys/elfcommon.h
- */
-
-#ifndef _SYS_ELFCOMMON_H
-#define _SYS_ELFCOMMON_H
-
-#include <stdint.h>
-
-/* Segment types */
-#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_LOOS        0x60000000
-#define PT_HIOS        0x6fffffff
-#define PT_LOPROC      0x70000000
-#define PT_HIPROC      0x7fffffff
-#define PT_GNU_EH_FRAME        0x6474e550 /* Extension, eh? */
-
-/* ELF file types */
-#define ET_NONE        0
-#define ET_REL         1
-#define ET_EXEC        2
-#define ET_DYN         3
-#define ET_CORE        4
-#define ET_LOPROC      0xff00
-#define ET_HIPROC      0xffff
-
-/* ELF machine types */
-#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_486         6       /* Not used in Linux at least */
-#define EM_860         7
-#define EM_MIPS         8       /* R3k, bigendian(?) */
-#define EM_MIPS_RS4_BE         10      /* R4k BE */
-#define EM_PARISC              15
-#define EM_SPARC32PLUS         18
-#define EM_PPC                 20
-#define EM_PPC64               21
-#define EM_S390         22
-#define EM_SH                  42
-#define EM_SPARCV9     43      /* v9 = SPARC64 */
-#define EM_H8_300H      47
-#define EM_H8S          48
-#define EM_IA_64        50     /* Itanic */
-#define EM_X86_64       62
-#define EM_CRIS         76
-#define EM_V850         87
-#define EM_ALPHA        0x9026 /* Interrim Alpha that stuck around */
-#define EM_CYGNUS_V850  0x9080 /* Old v850 ID used by Cygnus */
-#define EM_S390_OLD     0xA390 /* Obsolete interrim value for S/390 */
-
-/* Dynamic type values */
-#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_LOPROC      0x70000000
-#define DT_HIPROC      0x7fffffff
-
-/* Auxilliary table entries */
-#define AT_NULL                0       /* end of vector */
-#define AT_IGNORE      1       /* entry should be ignored */
-#define AT_EXECFD      2       /* file descriptor of program */
-#define AT_PHDR                3       /* program headers for program */
-#define AT_PHENT       4       /* size of program header entry */
-#define AT_PHNUM       5       /* number of program headers */
-#define AT_PAGESZ      6       /* system page size */
-#define AT_BASE                7       /* base address of interpreter */
-#define AT_FLAGS       8       /* flags */
-#define AT_ENTRY       9       /* entry point of program */
-#define AT_NOTELF      10      /* program is not ELF */
-#define AT_UID         11      /* real uid */
-#define AT_EUID                12      /* effective uid */
-#define AT_GID         13      /* real gid */
-#define AT_EGID                14      /* effective gid */
-#define AT_PLATFORM    15      /* string identifying CPU for optimizations */
-#define AT_HWCAP       16      /* arch dependent hints at CPU capabilities */
-#define AT_CLKTCK      17      /* frequency at which times() increments */
-/* 18..22 = ? */
-#define AT_SECURE      23      /* secure mode boolean */
-
-/* Program header permission flags */
-#define PF_X            0x1
-#define PF_W            0x2
-#define PF_R            0x4
-
-/* Section header types */
-#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_NUM         12
-#define SHT_LOPROC      0x70000000
-#define SHT_HIPROC      0x7fffffff
-#define SHT_LOUSER      0x80000000
-#define SHT_HIUSER      0xffffffff
-
-/* Section header flags */
-#define SHF_WRITE       0x1
-#define SHF_ALLOC       0x2
-#define SHF_EXECINSTR   0x4
-#define SHF_MASKPROC    0xf0000000
-
-/* Special section numbers */
-#define SHN_UNDEF       0
-#define SHN_LORESERVE   0xff00
-#define SHN_LOPROC      0xff00
-#define SHN_HIPROC      0xff1f
-#define SHN_ABS         0xfff1
-#define SHN_COMMON      0xfff2
-#define SHN_HIRESERVE   0xffff
-
-/* Lenght of magic at the start of a file */
-#define EI_NIDENT      16
-
-/* Magic number constants... */
-#define EI_MAG0         0      /* e_ident[] indexes */
-#define EI_MAG1         1
-#define EI_MAG2         2
-#define EI_MAG3         3
-#define EI_CLASS        4
-#define EI_DATA         5
-#define EI_VERSION      6
-#define EI_OSABI        7
-#define EI_PAD          8
-
-#define ELFMAG0         0x7f   /* EI_MAG */
-#define ELFMAG1         'E'
-#define ELFMAG2         'L'
-#define ELFMAG3         'F'
-#define ELFMAG          "\177ELF"
-#define SELFMAG         4
-
-#define ELFCLASSNONE    0      /* EI_CLASS */
-#define ELFCLASS32      1
-#define ELFCLASS64      2
-#define ELFCLASSNUM     3
-
-#define ELFDATANONE     0      /* e_ident[EI_DATA] */
-#define ELFDATA2LSB     1
-#define ELFDATA2MSB     2
-
-#define EV_NONE         0      /* e_version, EI_VERSION */
-#define EV_CURRENT      1
-#define EV_NUM          2
-
-#define ELFOSABI_NONE   0
-#define ELFOSABI_LINUX  3
-
-#endif /* _SYS_ELFCOMMON_H */
-
diff --git a/klibc/include/sys/fsuid.h b/klibc/include/sys/fsuid.h
deleted file mode 100644 (file)
index 823486b..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * sys/fsuid.h
- */
-
-#ifndef _SYS_FSUID_H
-#define _SYS_FSUID_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-
-__extern int setfsuid(uid_t);
-__extern int setfsgid(gid_t);
-
-#endif /* _SYS_FSUID_H */
diff --git a/klibc/include/sys/inotify.h b/klibc/include/sys/inotify.h
deleted file mode 100644 (file)
index 74fc714..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * sys/inotify.h
- */
-
-#ifndef _SYS_INOTIFY_H
-#define _SYS_INOTIFY_H
-
-#include <sys/types.h>
-#include <linux/inotify.h>
-#include <klibc/extern.h>
-
-__extern int inotify_init(void);
-__extern int inotify_add_watch(int, const char *, __u32);
-__extern int inotify_rm_watch(int, __u32);
-
-#endif /* _SYS_INOTIFY_H */
diff --git a/klibc/include/sys/ioctl.h b/klibc/include/sys/ioctl.h
deleted file mode 100644 (file)
index b0cee4c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * sys/ioctl.h
- */
-
-#ifndef _SYS_IOCTL_H
-#define _SYS_IOCTL_H
-
-#include <klibc/extern.h>
-#include <linux/ioctl.h>
-#include <asm/ioctls.h>
-
-__extern int ioctl(int, int, void *);
-
-#endif /* _SYS_IOCTL_H */
diff --git a/klibc/include/sys/klog.h b/klibc/include/sys/klog.h
deleted file mode 100644 (file)
index 0fc5f5d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * sys/klog.h
- */
-
-#ifndef _SYS_KLOG_H
-#define _SYS_KLOG_H
-
-#include <klibc/extern.h>
-
-#define KLOG_CLOSE     0
-#define KLOG_OPEN      1
-#define KLOG_READ      2
-#define KLOG_READ_ALL  3
-#define KLOG_READ_CLEAR        4
-#define KLOG_CLEAR     5
-#define KLOG_DISABLE   6
-#define KLOG_ENABLE    7
-#define KLOG_SETLEVEL  8
-#define KLOG_UNREADSIZE        9
-#define KLOG_WRITE     10
-
-__extern int klogctl(int, char *, int);
-
-#endif /* _SYS_KLOG_H */
diff --git a/klibc/include/sys/mman.h b/klibc/include/sys/mman.h
deleted file mode 100644 (file)
index 7f8f3e2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * sys/mman.h
- */
-
-#ifndef _SYS_MMAN_H
-#define _SYS_MMAN_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-#include <asm/mman.h>
-#include <asm/page.h>          /* For PAGE_SIZE */
-
-#define MAP_FAILED ((void *)-1)
-
-__extern void *mmap(void *, size_t, int, int, int, off_t);
-__extern int munmap(void *, size_t);
-__extern void *mremap(void *, size_t, size_t, unsigned long);
-__extern int msync(const void *, size_t, int);
-__extern int mprotect(const void *, size_t, int);
-__extern int mlockall(int);
-__extern int munlockall(void);
-__extern int mlock(const void *, size_t);
-__extern int munlock(const void *, size_t);
-
-#endif /* _SYS_MMAN_H */
diff --git a/klibc/include/sys/mount.h b/klibc/include/sys/mount.h
deleted file mode 100644 (file)
index 0e1bce4..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * sys/mount.h
- */
-
-#ifndef _SYS_MOUNT_H
-#define _SYS_MOUNT_H
-
-#include <klibc/extern.h>
-#include <sys/ioctl.h>
-
-/*
- * These are the fs-independent mount-flags: up to 32 flags are supported
- */
-#define MS_RDONLY        1      /* Mount read-only */
-#define MS_NOSUID        2      /* Ignore suid and sgid bits */
-#define MS_NODEV         4      /* Disallow access to device special files */
-#define MS_NOEXEC        8      /* Disallow program execution */
-#define MS_SYNCHRONOUS  16      /* Writes are synced at once */
-#define MS_REMOUNT      32      /* Alter flags of a mounted FS */
-#define MS_MANDLOCK     64      /* Allow mandatory locks on an FS */
-#define MS_DIRSYNC      128     /* Directory modifications are synchronous */
-#define MS_NOATIME      1024    /* Do not update access times. */
-#define MS_NODIRATIME   2048    /* Do not update directory access times */
-#define MS_BIND         4096
-#define MS_MOVE         8192
-#define MS_REC          16384
-#define MS_VERBOSE      32768
-#define MS_POSIXACL     (1<<16) /* VFS does not apply the umask */
-#define MS_ONE_SECOND   (1<<17) /* fs has 1 sec a/m/ctime resolution */
-#define MS_ACTIVE       (1<<30)
-#define MS_NOUSER       (1<<31)
-
-/*
- * Superblock flags that can be altered by MS_REMOUNT
- */
-#define MS_RMT_MASK     (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME|MS_NODIRATIME)
-
-/*
- * Old magic mount flag and mask
- */
-#define MS_MGC_VAL 0xC0ED0000
-#define MS_MGC_MSK 0xffff0000
-
-/*
- * umount2() flags
- */
-#define MNT_FORCE      1       /* Forcibly unmount */
-#define MNT_DETACH     2       /* Detach from tree only */
-#define MNT_EXPIRE     4       /* Mark for expiry */
-
-/*
- * Block device ioctls
- */
-#define BLKROSET   _IO(0x12, 93) /* Set device read-only (0 = read-write).  */
-#define BLKROGET   _IO(0x12, 94) /* Get read-only status (0 = read_write).  */
-#define BLKRRPART  _IO(0x12, 95) /* Re-read partition table.  */
-#define BLKGETSIZE _IO(0x12, 96) /* Return device size.  */
-#define BLKFLSBUF  _IO(0x12, 97) /* Flush buffer cache.  */
-#define BLKRASET   _IO(0x12, 98) /* Set read ahead for block device.  */
-#define BLKRAGET   _IO(0x12, 99) /* Get current read ahead setting.  */
-
-/*
- * Prototypes
- */
-__extern int mount(const char *, const char *,
-                  const char *, unsigned long,
-                  const void *);
-__extern int umount(const char *);
-__extern int umount2(const char *, int);
-__extern int pivot_root(const char *, const char *);
-
-#endif /* _SYS_MOUNT_H */
diff --git a/klibc/include/sys/param.h b/klibc/include/sys/param.h
deleted file mode 100644 (file)
index 63a0661..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * sys/param.h
- */
-
-#ifndef _SYS_PARAM_H
-#define _SYS_PARAM_H
-
-#include <limits.h>
-#include <linux/param.h>
-
-#endif /* _SYS_PARAM_H */
diff --git a/klibc/include/sys/reboot.h b/klibc/include/sys/reboot.h
deleted file mode 100644 (file)
index eaf5661..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * sys/reboot.h
- */
-
-#ifndef _SYS_REBOOT_H
-#define _SYS_REBOOT_H
-
-#include <klibc/extern.h>
-#include <linux/reboot.h>
-
-/* glibc names these constants differently; allow both versions */
-
-#define RB_AUTOBOOT    LINUX_REBOOT_CMD_RESTART
-#define RB_HALT_SYSTEM LINUX_REBOOT_CMD_HALT
-#define RB_ENABLE_CAD  LINUX_REBOOT_CMD_CAD_ON
-#define RB_DISABLE_CAD LINUX_REBOOT_CMD_CAD_OFF
-#define RB_POWER_OFF   LINUX_REBOOT_CMD_POWER_OFF
-
-/* glibc-ish one-argument version */
-__extern int reboot(int);
-
-/* Native four-argument system call */
-__extern int __reboot(int, int, int, void *);
-
-#endif /* _SYS_REBOOT_H */
diff --git a/klibc/include/sys/resource.h b/klibc/include/sys/resource.h
deleted file mode 100644 (file)
index ef14bde..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * sys/resource.h
- */
-
-#ifndef _SYS_RESOURCE_H
-#define _SYS_RESOURCE_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>         /* MUST be included before linux/resource.h */
-#include <linux/resource.h>
-
-__extern int getpriority(int, int);
-__extern int setpriority(int, int, int);
-
-#endif /* _SYS_RESOURCE_H */
diff --git a/klibc/include/sys/select.h b/klibc/include/sys/select.h
deleted file mode 100644 (file)
index 361a1a5..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * sys/select.h
- */
-
-#ifndef _SYS_SELECT_H
-#define _SYS_SELECT_H
-
-#include <klibc/extern.h>
-#include <sys/time.h>
-#include <sys/types.h>
-
-__extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
-
-#endif /* _SYS_SELECT_H */
diff --git a/klibc/include/sys/socket.h b/klibc/include/sys/socket.h
deleted file mode 100644 (file)
index cbc2b89..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * sys/socket.h
- */
-
-#ifndef _SYS_SOCKET_H
-#define _SYS_SOCKET_H
-
-#include <klibc/extern.h>
-#include <klibc/compiler.h>
-#include <linux/socket.h>
-
-/* For some reason these may be protected by __KERNEL__ in asm/socket.h */
-#ifndef SOCK_STREAM
-# define SOCK_STREAM    1
-# define SOCK_DGRAM     2
-# define SOCK_RAW       3
-# define SOCK_RDM       4
-# define SOCK_SEQPACKET 5
-# define SOCK_PACKET    10
-#endif
-
-#ifdef __i386__
-# define __socketcall __extern __cdecl
-#else
-# define __socketcall __extern
-#endif
-
-typedef int socklen_t;
-
-__socketcall int socket(int, int, int);
-__socketcall int bind(int, struct sockaddr *, int);
-__socketcall int connect(int, struct sockaddr *, socklen_t);
-__socketcall int listen(int, int);
-__socketcall int accept(int, struct sockaddr *, socklen_t *);
-__socketcall int getsockname(int, struct sockaddr *, socklen_t *);
-__socketcall int getpeername(int, struct sockaddr *, socklen_t *);
-__socketcall int socketpair(int, int, int, int *);
-__extern     int send(int, const void *, size_t, unsigned int);
-__socketcall int sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t);
-__extern     int recv(int, void *, size_t, unsigned int);
-__socketcall int recvfrom(int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *);
-__socketcall int shutdown(int, int);
-__socketcall int setsockopt(int, int, int, const void *, socklen_t);
-__socketcall int getsockopt(int, int, int, void *, socklen_t *);
-__socketcall int sendmsg(int, const struct msghdr *, unsigned int);
-__socketcall int recvmsg(int, struct msghdr *, unsigned int);
-
-#undef __socketcall
-
-#endif /* _SYS_SOCKET_H */
diff --git a/klibc/include/sys/socketcalls.h b/klibc/include/sys/socketcalls.h
deleted file mode 100644 (file)
index dac9f9a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * sys/socketcalls.h
- */
-
-#ifndef _SYS_SOCKETCALLS_H
-#define _SYS_SOCKETCALLS_H
-
-/* socketcalls by number, since <linux/net.h> isn't usable for assembly */
-
-#define SYS_SOCKET      1               /* sys_socket(2)                */
-#define SYS_BIND        2               /* sys_bind(2)                  */
-#define SYS_CONNECT     3               /* sys_connect(2)               */
-#define SYS_LISTEN      4               /* sys_listen(2)                */
-#define SYS_ACCEPT      5               /* sys_accept(2)                */
-#define SYS_GETSOCKNAME 6               /* sys_getsockname(2)           */
-#define SYS_GETPEERNAME 7               /* sys_getpeername(2)           */
-#define SYS_SOCKETPAIR  8               /* sys_socketpair(2)            */
-#define SYS_SEND        9               /* sys_send(2)                  */
-#define SYS_RECV        10              /* sys_recv(2)                  */
-#define SYS_SENDTO      11              /* sys_sendto(2)                */
-#define SYS_RECVFROM    12              /* sys_recvfrom(2)              */
-#define SYS_SHUTDOWN    13              /* sys_shutdown(2)              */
-#define SYS_SETSOCKOPT  14              /* sys_setsockopt(2)            */
-#define SYS_GETSOCKOPT  15              /* sys_getsockopt(2)            */
-#define SYS_SENDMSG     16              /* sys_sendmsg(2)               */
-#define SYS_RECVMSG     17              /* sys_recvmsg(2)               */
-
-#endif /* _SYS_SOCKETCALLS_H */
diff --git a/klibc/include/sys/stat.h b/klibc/include/sys/stat.h
deleted file mode 100644 (file)
index 1bf6a75..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * sys/stat.h
- */
-
-#ifndef _SYS_STAT_H
-#define _SYS_STAT_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-#include <sys/time.h>          /* For struct timespec */
-#include <klibc/archstat.h>
-#include <linux/stat.h>
-
-#ifdef _STATBUF_ST_NSEC
-  /* struct stat has struct timespec instead of time_t */
-# define st_atime  st_atim.tv_sec
-# define st_mtime  st_mtim.tv_sec
-# define st_ctime  st_ctim.tv_sec
-#endif
-
-__extern int stat(const char *, struct stat *);
-__extern int fstat(int, struct stat *);
-__extern int lstat(const char *, struct stat *);
-__extern mode_t umask(mode_t);
-__extern int mknod(const char *, mode_t, dev_t);
-static __inline__ int mkfifo(const char *__p, mode_t __m)
-{
-  return mknod(__p, (__m & ~S_IFMT) | S_IFIFO, (dev_t)0);
-}
-
-#endif /* _SYS_STAT_H */
diff --git a/klibc/include/sys/statfs.h b/klibc/include/sys/statfs.h
deleted file mode 100644 (file)
index 53b3b5e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sys/vfs.h>
diff --git a/klibc/include/sys/syscall.h b/klibc/include/sys/syscall.h
deleted file mode 100644 (file)
index c2c7684..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * sys/syscall.h
- *
- * Generic system call interface macros
- */
-#ifndef _SYS_SYSCALL_H
-#define _SYS_SYSCALL_H
-
-#include <errno.h>
-#include <sys/types.h>
-#include <asm/unistd.h>
-
-/* Many architectures have incomplete, defective or non-applicable
-   syscall macros */
-#include <klibc/archsys.h>
-
-#endif /* _SYS_SYSCALL_H */
diff --git a/klibc/include/sys/sysinfo.h b/klibc/include/sys/sysinfo.h
deleted file mode 100644 (file)
index 4051c68..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * sys/sysinfo.h
- */
-
-#ifndef _SYS_SYSINFO_H
-#define _SYS_SYSINFO_H
-
-#include <linux/kernel.h>
-
-extern int sysinfo (struct sysinfo *info);
-
-#endif /* _SYS_SYSINFO_H */
diff --git a/klibc/include/sys/sysmacros.h b/klibc/include/sys/sysmacros.h
deleted file mode 100644 (file)
index 7f1e082..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * sys/sysmacros.h
- *
- * Constructs to create and pick apart dev_t.  This applies to the Linux 2.6
- * 32-bit dev_t format.
- */
-
-#ifndef _SYS_SYSMACROS_H
-#define _SYS_SYSMACROS_H
-
-#ifndef _SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-static __inline__ int major(dev_t __d)
-{
-  return (__d >> 8) & 0xfff;
-}
-
-static __inline__ int minor(dev_t __d)
-{
-  return (__d & 0xff) | ((__d >> 12) & 0xfff00);
-}
-
-static __inline__ dev_t makedev(int __ma, int __mi)
-{
-  return ((__ma & 0xfff) << 8) | (__mi & 0xff) | ((__mi & 0xfff00) << 12);
-}
-
-#endif /* _SYS_SYSMACROS_H */
-
diff --git a/klibc/include/sys/time.h b/klibc/include/sys/time.h
deleted file mode 100644 (file)
index 2767a1b..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * sys/time.h
- */
-
-#ifndef _SYS_TIME_H
-#define _SYS_TIME_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-#include <linux/time.h>
-
-__extern int gettimeofday(struct timeval *, struct timezone *);
-__extern int settimeofday(const struct timeval *, const struct timezone *);
-__extern int getitimer(int, struct itimerval *);
-__extern int setitimer(int, const struct itimerval *, struct itimerval *);
-__extern int utimes(const char *, const struct timeval *);
-
-#endif /* _SYS_TIME_H */
diff --git a/klibc/include/sys/times.h b/klibc/include/sys/times.h
deleted file mode 100644 (file)
index dd86531..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * sys/times.h
- */
-
-#ifndef _SYS_TIMES_H
-#define _SYS_TIMES_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-#include <linux/times.h>
-
-__extern clock_t times(struct tms *);
-
-#endif /* _SYS_TIMES_H */
diff --git a/klibc/include/sys/types.h b/klibc/include/sys/types.h
deleted file mode 100644 (file)
index ddec242..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * sys/types.h
- */
-
-#ifndef _SYS_TYPES_H
-#define _SYS_TYPES_H
-
-#include <klibc/compiler.h>
-#include <stddef.h>
-#include <stdint.h>
-
-#define _SSIZE_T
-typedef ptrdiff_t ssize_t;
-
-#include <linux/posix_types.h>
-#include <asm/types.h>
-
-/* Keeps linux/types.h from getting included elsewhere */
-#define _LINUX_TYPES_H         
-
-typedef __kernel_fd_set                fd_set;
-typedef uint32_t               dev_t;
-typedef __kernel_ino_t         ino_t;
-typedef __kernel_mode_t                mode_t;
-typedef __kernel_nlink_t       nlink_t;
-typedef __kernel_loff_t                off_t;
-typedef __kernel_loff_t                loff_t;
-typedef __kernel_pid_t         pid_t;
-typedef __kernel_daddr_t       daddr_t;
-typedef __kernel_key_t         key_t;
-typedef __kernel_suseconds_t   suseconds_t;
-/* typedef __kernel_timer_t    timer_t; */
-typedef int                    timer_t;
-
-typedef __kernel_uid32_t       uid_t;
-typedef __kernel_gid32_t       gid_t;
-
-typedef __kernel_fsid_t                fsid_t;
-
-/*
- * The following typedefs are also protected by individual ifdefs for
- * historical reasons:
- */
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef __kernel_size_t                size_t;
-#endif
-
-#ifndef _SSIZE_T
-#define _SSIZE_T
-typedef __kernel_ssize_t       ssize_t;
-#endif
-
-#ifndef _PTRDIFF_T
-#define _PTRDIFF_T
-typedef __kernel_ptrdiff_t     ptrdiff_t;
-#endif
-
-#ifndef _TIME_T
-#define _TIME_T
-typedef __kernel_time_t                time_t;
-#endif
-
-#ifndef _CLOCK_T
-#define _CLOCK_T
-typedef __kernel_clock_t       clock_t;
-#endif
-
-#ifndef _CADDR_T
-#define _CADDR_T
-typedef __kernel_caddr_t       caddr_t;
-#endif
-
-/* bsd */
-typedef unsigned char          u_char;
-typedef unsigned short         u_short;
-typedef unsigned int           u_int;
-typedef unsigned long          u_long;
-
-/* sysv */
-typedef unsigned char          unchar;
-typedef unsigned short         ushort;
-typedef unsigned int           uint;
-typedef unsigned long          ulong;
-
-/* Linux-specific? */
-typedef uint8_t                        u_int8_t;
-typedef uint16_t               u_int16_t;
-typedef uint32_t               u_int32_t;
-typedef uint64_t               u_int64_t;
-
-typedef uint16_t __bitwise     __le16;
-typedef uint16_t __bitwise     __be16;
-typedef uint32_t __bitwise     __le32;
-typedef uint32_t __bitwise     __be32;
-typedef uint64_t __bitwise     __le64;
-typedef uint64_t __bitwise     __be64;
-
-/*
- * Some apps want this in <sys/types.h>
- */
-#include <sys/sysmacros.h>
-
-#endif
diff --git a/klibc/include/sys/uio.h b/klibc/include/sys/uio.h
deleted file mode 100644 (file)
index fc2525d..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * sys/uio.h
- */
-
-#ifndef _SYS_UIO_H
-#define _SYS_UIO_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-#include <linux/uio.h>
-
-__extern int readv(int, const struct iovec *, int);
-__extern int writev(int, const struct iovec *, int);
-
-#endif /* _SYS_UIO_H */
diff --git a/klibc/include/sys/un.h b/klibc/include/sys/un.h
deleted file mode 100644 (file)
index df42d71..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * <sys/un.h>
- */
-
-#ifndef _SYS_UN_H
-#define _SYS_UN_H
-
-#include <linux/un.h>
-
-#endif /* _SYS_UN_H */
diff --git a/klibc/include/sys/utime.h b/klibc/include/sys/utime.h
deleted file mode 100644 (file)
index d1d635d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * sys/utime.h
- */
-
-#ifndef _SYS_UTIME_H
-#define _SYS_UTIME_H
-
-#include <linux/utime.h>
-
-#endif /* _SYS_UTIME_H */
diff --git a/klibc/include/sys/utsname.h b/klibc/include/sys/utsname.h
deleted file mode 100644 (file)
index f2990f5..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * sys/utsname.h
- */
-
-#ifndef _SYS_UTSNAME_H
-#define _SYS_UTSNAME_H
-
-#include <klibc/extern.h>
-
-#define SYS_NMLN 65
-
-struct utsname {
-        char sysname[SYS_NMLN];
-        char nodename[SYS_NMLN];
-        char release[SYS_NMLN];
-        char version[SYS_NMLN];
-        char machine[SYS_NMLN];
-        char domainname[SYS_NMLN];
-};
-
-__extern int uname(struct utsname *);
-
-#endif /* _SYS_UTSNAME_H */
diff --git a/klibc/include/sys/vfs.h b/klibc/include/sys/vfs.h
deleted file mode 100644 (file)
index cf5aaf9..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * sys/vfs.h
- */
-
-#ifndef _SYS_VFS_H
-#define _SYS_VFS_H
-
-#include <stdint.h>
-#include <klibc/extern.h>
-#include <sys/types.h>
-#include <bitsize.h>
-
-/* struct statfs64 -- there seems to be two standards -
-   one for 32 and one for 64 bits, and they're incompatible... */
-
-#if _BITSIZE == 32 || defined(__s390__)
-
-struct statfs {
-        uint32_t f_type;
-        uint32_t f_bsize;
-        uint64_t f_blocks;
-        uint64_t f_bfree;
-        uint64_t f_bavail;
-        uint64_t f_files;
-        uint64_t f_ffree;
-        __kernel_fsid_t f_fsid;
-        uint32_t f_namelen;
-        uint32_t f_frsize;
-        uint32_t f_spare[5];
-};
-
-#else /* _BITSIZE == 64 */
-
-struct statfs {
-        uint64_t f_type;
-        uint64_t f_bsize;
-        uint64_t f_blocks;
-        uint64_t f_bfree;
-        uint64_t f_bavail;
-        uint64_t f_files;
-        uint64_t f_ffree;
-        __kernel_fsid_t f_fsid;
-        uint64_t f_namelen;
-        uint64_t f_frsize;
-        uint64_t f_spare[5];
-};
-
-#endif /* _BITSIZE */
-
-__extern int statfs(const char *, struct statfs *);
-__extern int fstatfs(int, struct statfs *);
-
-/* Various filesystem types */
-#define ADFS_SUPER_MAGIC       0xadf5
-#define AFFS_SUPER_MAGIC       0xadff
-#define AFS_FS_MAGIC           0x6B414653 /* 'kAFS' */
-#define AUTOFS_SUPER_MAGIC     0x0187
-#define BFS_MAGIC              0x1BADFACE
-#define CAPIFS_SUPER_MAGIC     0x434e
-#define CIFS_MAGIC_NUMBER      0xFF534D42
-#define CODA_SUPER_MAGIC       0x73757245
-#define CRAMFS_MAGIC           0x28cd3d45
-#define DEVFS_SUPER_MAGIC      0x1373
-#define DEVPTS_SUPER_MAGIC     0x1cd1
-#define EFS_SUPER_MAGIC                0x414A53
-#define EVENTPOLLFS_MAGIC      0x03111965
-#define EXT2_SUPER_MAGIC       0xEF53
-#define EXT3_SUPER_MAGIC       0xEF53
-#define GADGETFS_MAGIC         0xaee71ee7
-#define HFSPLUS_SUPER_MAGIC    0x482b
-#define HFS_MFS_SUPER_MAGIC    0xD2D7     /* MFS MDB (super block) */
-#define HFS_SUPER_MAGIC                0x4244     /* "BD": HFS MDB (super block) */
-#define HPFS_SUPER_MAGIC 0xf995e849
-#define HUGETLBFS_MAGIC                0x958458f6
-#define HWGFS_MAGIC            0x12061983
-#define IBMASMFS_MAGIC         0x66726f67
-#define ISOFS_SUPER_MAGIC      0x9660
-#define JFFS2_SUPER_MAGIC      0x72b6
-#define JFFS_MAGIC_BITMASK     0x34383931 /* "1984" */
-#define JFFS_MAGIC_SB_BITMASK  0x07c0     /* 1984 */
-#define JFS_SUPER_MAGIC                0x3153464a /* "JFS1" */
-#define MINIX2_SUPER_MAGIC     0x2468     /* minix V2 fs */
-#define MINIX2_SUPER_MAGIC2    0x2478     /* minix V2 fs, 30 char names */
-#define MINIX_SUPER_MAGIC      0x137F     /* original minix fs */
-#define MINIX_SUPER_MAGIC2     0x138F     /* minix fs, 30 char names */
-#define MSDOS_SUPER_MAGIC      0x4d44     /* MD */
-#define NCP_SUPER_MAGIC                0x564c
-#define NFS_SUPER_MAGIC                0x6969
-#define NFS_SUPER_MAGIC                0x6969
-#define OPENPROM_SUPER_MAGIC   0x9fa1
-#define OPROFILEFS_MAGIC       0x6f70726f
-#define PFMFS_MAGIC            0xa0b4d889
-#define PIPEFS_MAGIC           0x50495045
-#define PROC_SUPER_MAGIC       0x9fa0
-#define QNX4_SUPER_MAGIC       0x002f     /* qnx4 fs detection */
-#define RAMFS_MAGIC            0x858458f6
-#define REISERFS_SUPER_MAGIC   0x52654973
-#define ROMFS_MAGIC            0x7275
-#define SMB_SUPER_MAGIC                0x517B
-#define SOCKFS_MAGIC           0x534F434B
-#define SYSFS_MAGIC            0x62656572
-#define TMPFS_MAGIC            0x01021994
-#define UDF_SUPER_MAGIC                0x15013346
-#define UFS_MAGIC              0x00011954
-#define UFS_MAGIC_4GB          0x05231994 /* fs > 4 GB && fs_featurebits */
-#define UFS_MAGIC_FEA          0x00195612 /* fs_featurebits supported */
-#define UFS_MAGIC_LFN          0x00095014 /* fs supports filenames > 14 chars */
-#define UFS_MAGIC_SEC          0x00612195 /* B1 security fs */
-#define USBDEVICE_SUPER_MAGIC  0x9fa2
-#define VXFS_SUPER_MAGIC       0xa501FCF5
-
-#endif /* _SYS_VFS_H */
diff --git a/klibc/include/sys/wait.h b/klibc/include/sys/wait.h
deleted file mode 100644 (file)
index 4cfafc9..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * sys/wait.h
- */
-
-#ifndef _SYS_WAIT_H
-#define _SYS_WAIT_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-#include <sys/resource.h>
-
-#include <linux/wait.h>
-
-#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
-#define WTERMSIG(s)    ((s) & 0x7f)
-#define WIFEXITED(s)   (WTERMSIG(s) == 0)
-#define WIFSTOPPED(s)  (WTERMSIG(s) == 0x7f)
-/* Ugly hack to avoid multiple evaluation of "s" */
-#define WIFSIGNALED(s) (WTERMSIG((s)+1) >= 2)
-#define WCOREDUMP(s)   ((s) & 0x80)
-#define WSTOPSIG(s)    WEXITSTATUS(s)
-
-__extern pid_t wait(int *);
-__extern pid_t waitpid(pid_t, int *, int);
-__extern pid_t wait3(int *, int, struct rusage *);
-__extern pid_t wait4(pid_t, int *, int, struct rusage *);
-
-#endif /* _SYS_WAIT_H */
diff --git a/klibc/include/syslog.h b/klibc/include/syslog.h
deleted file mode 100644 (file)
index 061dbcd..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * syslog.h
- */
-
-#ifndef _SYSLOG_H
-#define _SYSLOG_H
-
-#include <stdio.h>
-#include <klibc/extern.h>
-
-/* Alert levels */
-#define LOG_EMERG      0
-#define LOG_ALERT      1
-#define LOG_CRIT       2
-#define LOG_ERR                3
-#define LOG_WARNING    4
-#define LOG_NOTICE     5
-#define LOG_INFO       6
-#define LOG_DEBUG      7
-
-#define LOG_PRIMASK    7
-#define LOG_PRI(x)     ((x) & LOG_PRIMASK)
-
-
-/* Facilities; not actually used */
-#define LOG_KERN       0000
-#define LOG_USER       0010
-#define LOG_MAIL       0020
-#define LOG_DAEMON     0030
-#define LOG_AUTH       0040
-#define LOG_SYSLOG     0050
-#define LOG_LPR                0060
-#define LOG_NEWS       0070
-#define LOG_UUCP       0100
-#define LOG_CRON       0110
-#define LOG_AUTHPRIV   0120
-#define LOG_FTP                0130
-#define LOG_LOCAL0     0200
-#define LOG_LOCAL1     0210
-#define LOG_LOCAL2     0220
-#define LOG_LOCAL3     0230
-#define LOG_LOCAL4     0240
-#define LOG_LOCAL5     0250
-#define LOG_LOCAL6     0260
-#define LOG_LOCAL7     0270
-
-#define LOG_FACMASK    01770
-#define LOG_FAC(x)     (((x) >> 3) & (LOG_FACMASK >> 3))
-
-/* openlog() flags; only LOG_PID and LOG_PERROR supported */
-#define        LOG_PID         0x01    /* include pid with message */
-#define        LOG_CONS        0x02    /* write to console on logger error */
-#define        LOG_ODELAY      0x04    /* delay connection until syslog() */
-#define        LOG_NDELAY      0x08    /* open connection immediately */
-#define        LOG_NOWAIT      0x10    /* wait for child processes (unused on linux) */
-#define        LOG_PERROR      0x20    /* additional logging to stderr */
-
-
-__extern void openlog(const char *, int, int);
-__extern void syslog(int, const char *, ...);
-__extern void vsyslog(int, const char *, va_list);
-__extern void closelog(void);
-
-#endif /* _SYSLOG_H */
diff --git a/klibc/include/termios.h b/klibc/include/termios.h
deleted file mode 100644 (file)
index 08a5e56..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * termios.h
- */
-
-#ifndef _TERMIOS_H
-#define _TERMIOS_H
-
-#include <klibc/extern.h>
-#include <stdint.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <linux/termios.h>
-
-/* Redefine these so the magic constants == the ioctl number to use. */
-#undef TCSANOW
-#undef TCSADRAIN
-#undef TCSAFLUSH
-#define TCSANOW           TCSETS
-#define TCSADRAIN  TCSETSW
-#define TCSAFLUSH  TCSETSF
-
-static __inline__ int tcgetattr(int __fd, struct termios *__s)
-{
-  return ioctl(__fd, TCGETS, __s);
-}
-
-static __inline__ int tcsetattr(int __fd, int __opt, const struct termios *__s)
-{
-  return ioctl(__fd, __opt, (void *)__s);
-}
-
-static __inline__ int tcflow(int __fd, int __action)
-{
-  return ioctl(__fd, TCXONC, (void *)(intptr_t)__action);
-}
-
-static __inline__ int tcflush(int __fd, int __queue)
-{
-  return ioctl(__fd, TCFLSH, (void *)(intptr_t)__queue);
-}
-
-static __inline__ pid_t tcgetpgrp(int __fd)
-{
-  pid_t __p;
-  return ioctl(__fd, TIOCGPGRP, &__p) ? (pid_t)-1 : __p;
-}
-
-static __inline__ pid_t tcgetsid(int __fd)
-{
-  pid_t __p;
-  return ioctl(__fd, TIOCGSID, &__p) ? (pid_t)-1 : __p;
-}  
-
-static __inline__ int tcsendbreak(int __fd, int __duration)
-{
-  return ioctl(__fd, TCSBRKP, (void *)(uintptr_t)__duration);
-}
-
-static __inline__ int tcsetpgrp(int __fd, pid_t __p)
-{
-  return ioctl(__fd, TIOCSPGRP, &__p);
-}
-
-static __inline__ speed_t cfgetospeed(const struct termios *__s)
-{
-  return (speed_t)(__s->c_cflag & CBAUD);
-}
-
-static __inline__ speed_t cfgetispeed(const struct termios *__s)
-{
-  return (speed_t)(__s->c_cflag & CBAUD);
-}
-
-static __inline__ int cfsetospeed(struct termios *__s, speed_t __v)
-{
-  __s->c_cflag = (__s->c_cflag & ~CBAUD) | (__v & CBAUD);
-  return 0;
-}
-
-static __inline__ int cfsetispeed(struct termios *__s, speed_t __v)
-{
-  __s->c_cflag = (__s->c_cflag & ~CBAUD) | (__v & CBAUD);
-  return 0;
-}
-
-#endif /* _TERMIOS_H */
diff --git a/klibc/include/time.h b/klibc/include/time.h
deleted file mode 100644 (file)
index 0f094c2..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * time.h
- */
-
-#ifndef _TIME_H
-#define _TIME_H
-
-#include <klibc/extern.h>
-#include <sys/time.h>
-
-__extern time_t time(time_t *);
-__extern int nanosleep(const struct timespec *, struct timespec *);
-
-/* klibc-specific but useful since we don't have floating point */
-__extern char *strtotimeval(const char *str, struct timeval *tv);
-__extern char *strtotimespec(const char *str, struct timespec *tv);
-
-#endif /* _TIME_H */
diff --git a/klibc/include/unistd.h b/klibc/include/unistd.h
deleted file mode 100644 (file)
index 51fd7b7..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * unistd.h
- */
-
-#ifndef _UNISTD_H
-#define _UNISTD_H
-
-#include <klibc/extern.h>
-#include <klibc/compiler.h>
-#include <stddef.h>
-#include <sys/types.h>
-#include <sys/select.h>
-
-__extern char **environ;
-__extern __noreturn _exit(int);
-
-__extern pid_t fork(void);
-__extern pid_t vfork(void);
-__extern pid_t getpid(void);
-__extern pid_t getpgid(pid_t);
-__extern int setpgid(pid_t, pid_t);
-__extern pid_t getppid(void);
-__extern pid_t getpgrp(void);
-__extern int setpgrp(void);
-__extern pid_t setsid(void);
-__extern pid_t getsid(pid_t);
-__extern int execv(const char *, char * const *);
-__extern int execvp(const char *, char * const *);
-__extern int execve(const char *, char * const *, char * const *);
-__extern int execvpe(const char *, char * const *, char * const *);
-__extern int execl(const char *, const char *, ...);
-__extern int execlp(const char *, const char *, ...);
-__extern int execle(const char *, const char *, ...);
-__extern int execlpe(const char *, const char *, ...);
-
-__extern int setuid(uid_t);
-__extern uid_t getuid(void);
-__extern int seteuid(uid_t);
-__extern uid_t geteuid(void);
-__extern int setgid(gid_t);
-__extern gid_t getgid(void); 
-__extern int setegid(gid_t);
-__extern gid_t getegid(void);
-__extern int getgroups(int, gid_t *);
-__extern int setgroups(size_t, const gid_t *);
-__extern int setreuid(uid_t, uid_t);
-__extern int setregid(gid_t, gid_t);
-__extern int setresuid(uid_t, uid_t, uid_t);
-__extern int setresgid(gid_t, gid_t, gid_t);
-__extern int getfsuid(uid_t);
-__extern int setfsuid(uid_t);
-
-/* Macros for access() */
-#define R_OK   4               /* Read */
-#define W_OK   2               /* Write */
-#define X_OK   1               /* Execute */
-#define F_OK   0               /* Existence */
-
-__extern int access(const char *, int);
-__extern int link(const char *, const char *);
-__extern int unlink(const char *);
-__extern int chdir(const char *);
-__extern int fchdir(int);
-__extern int chmod(const char *, mode_t);
-__extern int fchmod(int, mode_t);
-__extern int mkdir(const char *, mode_t);
-__extern int rmdir(const char *);
-__extern int pipe(int *);
-__extern int chroot(const char *);
-__extern int symlink(const char *, const char *);
-__extern int readlink(const char *, char *, size_t);
-__extern int chown(const char *, uid_t, gid_t);
-__extern int fchown(int, uid_t, gid_t);
-__extern int lchown(const char *, uid_t, gid_t);
-__extern char *getcwd(char *, size_t);
-
-__extern int sync(void);
-
-/* Also in <fcntl.h> */
-#ifndef _KLIBC_IN_OPEN_C
-__extern int open(const char *, int, ...);
-#endif
-__extern int close(int);
-__extern off_t lseek(int, off_t, int);
-/* off_t is 64 bits now even on 32-bit platforms; see llseek.c */
-static __inline__ off_t llseek(int __f, off_t __o, int __w) {
-  return lseek(__f, __o, __w);
-}
-
-__extern ssize_t read(int, void *, size_t);
-__extern ssize_t write(int, const void *, size_t);
-__extern ssize_t pread(int, void *, size_t, off_t);
-__extern ssize_t pwrite(int, void *, size_t, off_t);
-
-__extern int dup(int);
-__extern int dup2(int, int);
-__extern int fcntl(int, int, ...);
-__extern int ioctl(int, int, void *);
-__extern int flock(int, int);
-__extern int fsync(int);
-__extern int fdatasync(int);
-__extern int ftruncate(int, off_t);
-
-__extern int pause(void);
-__extern unsigned int alarm(unsigned int);
-__extern unsigned int sleep(unsigned int);
-__extern void usleep(unsigned long);
-
-__extern int gethostname(char *, size_t);
-__extern int sethostname(const char *, size_t);
-__extern int getdomainname(char *, size_t);
-__extern int setdomainname(const char *, size_t);
-
-__extern void *__brk(void *);
-__extern int brk(void *);
-__extern void *sbrk(ptrdiff_t);
-
-__extern int getopt(int, char * const *, const char *);
-__extern char *optarg;
-__extern int optind, opterr, optopt;
-
-__extern int isatty(int);
-
-static __inline__ int getpagesize(void) {
-  extern unsigned int __page_size;
-  return __page_size;
-}
-static __inline__ int __getpageshift(void) {
-  extern unsigned int __page_shift;
-  return __page_shift;
-}
-
-__extern int daemon(int, int);
-
-/* Standard file descriptor numbers. */
-#define STDIN_FILENO   0
-#define STDOUT_FILENO  1
-#define STDERR_FILENO  2
-
-#endif /* _UNISTD_H */
diff --git a/klibc/include/utime.h b/klibc/include/utime.h
deleted file mode 100644 (file)
index 3dfa03a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * utime.h
- */
-
-#ifndef _UTIME_H
-#define _UTIME_H
-
-#include <klibc/extern.h>
-#include <sys/types.h>
-#include <linux/utime.h>
-
-__extern int utime(const char *, const struct utimbuf *);
-
-#endif /* _UTIME_H */
-
diff --git a/klibc/klcc.1 b/klibc/klcc.1
deleted file mode 100644 (file)
index 76334a3..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-.\" $Id: klcc.1,v 1.3 2005/04/19 23:27:46 hpa Exp $
-.\" -----------------------------------------------------------------------
-.\"   
-.\"   Copyright 2005 H. Peter Anvin - All Rights Reserved
-.\"
-.\"   Permission is hereby granted, free of charge, to any person
-.\"   obtaining a copy of this software and associated documentation
-.\"   files (the "Software"), to deal in the Software without
-.\"   restriction, including without limitation the rights to use,
-.\"   copy, modify, merge, publish, distribute, sublicense, and/or
-.\"   sell copies of the Software, and to permit persons to whom
-.\"   the Software is furnished to do so, subject to the following
-.\"   conditions:
-.\"   
-.\"   The above copyright notice and this permission notice shall
-.\"   be included in all copies or substantial portions of the Software.
-.\"   
-.\"   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-.\"   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-.\"   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-.\"   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-.\"   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-.\"   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-.\"   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-.\"   OTHER DEALINGS IN THE SOFTWARE.
-.\"
-.\" -----------------------------------------------------------------------
-
-.TH klcc "1" "1 March 2005" "klibc" "H. Peter Anvin"
-.SH NAME
-klcc \- compile a program against klibc
-.SH SYNOPSIS
-.B klcc
-[\fIgcc options\fP]
-[\fB\-o\fP \fIoutfile\fP]
-\fIinfile...\fP
-.SH DESCRIPTION
-.PP
-.B klcc
-is a wrapper around
-.BR gcc (1)
-and
-.BR ld (1)
-which compiles and links a program against the
-.B klibc
-tiny C library.  It supports most
-.B gcc
-options.
-.PP
-Unlike
-.BR gcc ,
-.B klcc
-compiles with optimization on by default.  Furthermore, the
-optimization level used depends on whether or not
-.B \-g
-is specified, since
-.B klcc
-frequently uses options in the normal case which makes debugging
-impossible.  Therefore, compile without
-.BR \-g ,
-.BR \-O ,
-.B \-f
-or
-.B \-m
-option to use the default optimization level; this will generally
-result in the smallest binaries.  You may want to use
-.B \-s
-when linking, however.  Use
-.B \-O0
-to compile without any optimization whatsoever; this may not work depending
-on the version of
-.B gcc
-used.
-.PP
-Use the
-.B \-shared
-or
-.B \-static
-option to compile for and link against shared or static klibc.  Note
-that shared klibc only supports running against the exact same klibc
-binary as the binary was linked with.
-.PP
-In addition to standard
-.B gcc
-options,
-.B klcc
-supports options of the form \fB\-print-klibc-\fP\fIoption\fP,
-which prints the corresponding klibc configuration option.
-.SH AUTHOR
-Written by H. Peter Anvin <hpa@zytor.com>.
-.SH COPYRIGHT
-Copyright \(co 2005 H. Peter Anvin \- All Rights Reserved
-.PP
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom
-the Software is furnished to do so, subject to the following
-conditions:
-.PP
-The above copyright notice and this permission notice shall
-be included in all copies or substantial portions of the Software.
-.PP
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-.SH "SEE ALSO"
-.BR gcc (1)
-
diff --git a/klibc/klcc.in b/klibc/klcc.in
deleted file mode 100644 (file)
index 5629f24..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-# -*- perl -*-
-
-use IPC::Open3;
-
-# Standard includes
-@includes = ("-I${prefix}/${KCROSS}include/arch/${ARCH}",
-            "-I${prefix}/${KCROSS}include/bits${BITSIZE}",
-            "-I${prefix}/${KCROSS}include");
-
-# Default optimization options (for compiles without -g)
-@optopt =  @OPTFLAGS;
-@goptopt = ('-O');
-
-# Standard library directories
-@stdlibpath = ("-L${prefix}/${KCROSS}lib");
-
-# Options and libraries to pass to ld; shared versus static
-@staticopt = ("${prefix}/${KCROSS}lib/crt0.o");
-@staticlib = ("${prefix}/${KCROSS}lib/libc.a");
-@sharedopt = (@EMAIN, "${prefix}/${KCROSS}lib/interp.o");
-@sharedlib = ('-R', "${prefix}/${KCROSS}lib/libc.so");
-
-# Returns the language (-x option string) for a specific extension.
-sub filename2lang($) {
-    my ($file) = @_;
-
-    return 'c' if ( $file =~ /\.c$/ );
-    return 'c-header' if ( $file =~ /\.h$/ );
-    return 'cpp-output' if ( $file =~ /\.i$/ );
-    return 'c++-cpp-output' if ( $file =~ /\.ii$/ );
-    return 'objective-c' if ( $file =~ /\.m$/ );
-    return 'objc-cpp-output' if ( $file =~ /\.mi$/ );
-    return 'c++' if ( $file =~/\.(cc|cp|cxx|cpp|CPP|c\+\+|C)$/ );
-    return 'c++-header' if ( $file =~ /\.(hh|H)$/ );
-    return 'f77' if ( $file =~ /\.(f|for|FOR)$/ );
-    return 'f77-cpp-input' if ( $file =~ /\.(F|fpp|FPP)$/ );
-    return 'ratfor' if ( $file =~ /\.r$/ );
-
-    # Is this correct?
-    return 'ada' if ( $file =~ /\.(ads|adb)$/ );
-
-    return 'assembler' if ( $file =~ /\.s$/ );
-    return 'assembler-with-cpp' if ( $file =~/ \.S$/ );
-
-    # Linker file; there is no option to gcc to assume something
-    # is a linker file, so we make up our own...
-    return 'obj';
-}
-
-# Produces a series of -x options and files
-sub files_with_lang($$) {
-    my($files, $flang) = @_;
-    my(@as) = ();
-    my($xopt) = 'none';
-    my($need);
-
-    foreach $f ( @{$files} ) {
-       $need = ${$flang}{$f};
-
-       # Skip object files
-       if ( $need ne 'obj' ) {
-           unless ( $xopt eq $need || $need eq 'stdin') {
-               push(@as, '-x', $need);
-               $xopt = $need;
-           }
-           push(@as, $f);
-       }
-    }
-
-    return @as;
-}
-
-# Convert a return value from system() to an exit() code
-sub syserr($) {
-    my($e) = @_;
-
-    return ($e & 0x7f) | 0x80 if ( $e & 0xff );
-    return $e >> 8;
-}
-
-# Run a program; printing out the command line if $verbose is set
-sub mysystem(@) {
-    print STDERR join(' ', @_), "\n" if ( $verbose );
-    my $cmd = shift;
-    open(INPUT, "<&STDIN");    # dup STDIN filehandle to INPUT
-    my $childpid = open3("<&INPUT", ">&STDOUT", ">&STDERR", $cmd, @_);
-    waitpid ($childpid, 0);
-    return $?;
-}
-
-#
-# Initialization
-# 
-open(NULL, '+<', '/dev/null') or die "$0: cannot open /dev/null\n";
-
-#
-# Begin parsing options.
-#
-
-@ccopt = ();
-@ldopt = ();
-@libs  = ();
-
-@files = ();                   # List of files
-%flang = ();                   # Languages for files
-
-# This is 'c' for compile only, 'E' for preprocess only,
-# 'S' for compile to assembly.
-$operation = '';               # Compile and link
-
-# Current -x option.  If undefined, it means autodetect.
-undef $lang;
-
-$save_temps = 0;               # The -save-temps option
-$verbose = 0;                  # The -v option
-$shared = 0;                   # Are we compiling shared?
-$debugging = 0;                        # -g or -p option present?
-$strip = 0;                    # -s option present?
-undef $output;                 # -o option present?
-
-while ( defined($a = shift(@ARGV)) ) {
-    if ( $a !~ /^\-/ ) {
-       # Not an option.  Must be a filename then.
-       push(@files, $a);
-       $flang{$a} = $lang || filename2lang($a);
-    } elsif ( $a eq '-' ) {
-       # gcc gets its input from stdin
-       push(@files, $a);
-       # prevent setting -x
-       $flang{$a} = 'stdin'
-    } elsif ( $a =~ /^-print-klibc-(.*)$/ ) {
-       # This test must precede -print
-       if ( defined($conf{$1}) ) {
-           print ${$conf{$1}}, "\n";
-           exit 0;
-       } else {
-           die "$0: unknown option: $a\n";
-       }
-    } elsif ( $a =~ /^(-print|-dump|--help|--version)/ ) {
-       # These share prefixes with some other options, so put this test early!
-       # Pseudo-operations; just pass to gcc and don't do anything else
-       push(@ccopt, $a);
-       $operation = 'c' if ( $operation eq '' );
-    } elsif ( $a =~ /^-Wl,(.*)$/ ) {
-       # -Wl used to pass options to the linker
-       push(@ldopt, split(/,/, $1));
-    } elsif ( $a =~ /^-([fmwWQdO]|std=|ansi|pedantic|M[GPD]|MMD)/ ) {
-       # Options to gcc
-       push(@ccopt, $a);
-    } elsif ( $a =~ /^-([DUI]|M[FQT])(.*)$/ ) {
-       # Options to gcc, which can take either a conjoined argument
-       # (-DFOO) or a disjoint argument (-D FOO)
-       push(@ccopt, $a);
-       push(@ccopt, shift(@ARGV)) if ( $2 eq '' );
-    } elsif ( $a eq '-include' ) {
-       # Options to gcc which always take a disjoint argument
-       push(@ccopt, $a, shift(@ARGV));
-    } elsif ( $a eq '-M' || $a eq '-MM' ) {
-       # gcc options, that force preprocessing mode
-       push(@ccopt, $a);
-       $operation = 'E';
-    } elsif ( $a =~ /^-[gp]/ || $a eq '-p' ) {
-       # Debugging options to gcc
-       push(@ccopt, $a);
-       $debugging = 1;
-    } elsif ( $a eq '-v' ) {
-       push(@ccopt, $a);
-       $verbose = 1;
-    } elsif ( $a eq '-save-temps' ) {
-       push(@ccopt, $a);
-       $save_temps = 1;
-    } elsif ( $a =~ '^-([cSE])$' ) {
-       push(@ccopt, $a);
-       $operation = $1;
-    } elsif ( $a eq '-shared' ) {
-       $shared = 1;
-    } elsif ( $a eq '-static' ) {
-       $shared = 0;
-    } elsif ( $a eq '-s' ) {
-       $strip = 1;
-    } elsif ( $a eq '-o' ) {
-       $output = shift(@ARGV);
-    } elsif ( $a eq '-x' ) {
-       $lang = shift(@ARGV);
-    } elsif ( $a eq '-nostdinc' ) {
-       push(@ccopt, $a);
-       @includes = ();
-    } elsif ( $a =~ /^-([lL])(.*)$/ ) {
-       # Libraries
-       push(@libs, $a);
-       push(@libs, shift(@ARGV)) if ( $2 eq '' );
-    } else {
-       die "$0: unknown option: $a\n";
-    }
-}
-
-if ( $debugging ) {
-    @ccopt = (@REQFLAGS, @includes, @goptopt, @ccopt);
-} else {
-    @ccopt = (@REQFLAGS, @includes, @optopt, @ccopt);
-}
-
-if ( $operation ne '' ) {
-    # Just run gcc with the appropriate options
-    @outopt = ('-o', $output) if ( defined($output) );
-    $rv = mysystem($CC, @ccopt, @outopt, files_with_lang(\@files, \%flang));
-} else {
-    if ( scalar(@files) == 0 ) {
-       die "$0: No input files!\n";
-    }
-
-    @outopt = ('-o', $output || 'a.out');
-
-    @objs = ();
-    @rmobjs = ();
-
-    foreach $f ( @files ) {
-       if ( $flang{$f} eq 'obj' ) {
-           push(@objs, $f);
-       } else {
-           $fo = $f;
-           $fo =~ s/\.[^\/.]+$/\.o/;
-
-           die if ( $f eq $fo ); # safety check
-
-           push(@objs, $fo);
-           push(@rmobjs, $fo) unless ( $save_temps );
-
-           $rv = mysystem($CC, @ccopt, '-c', '-o', $fo, '-x', $flang{$f}, $f);
-
-           if ( $rv ) {
-               unlink(@rmobjs);
-               exit syserr($rv);
-           }
-       }
-    }
-
-    # Get the libgcc pathname for the *current* gcc
-    open(LIBGCC, '-|', $CC, @ccopt, '-print-libgcc-file-name')
-       or die "$0: cannot get libgcc filename\n";
-    $libgcc = <LIBGCC>;
-    chomp $libgcc;
-    close(LIBGCC);
-
-    if ( $shared ) {
-       $rv = mysystem($LD, @LDFLAGS, @sharedopt, @ldopt, @outopt, @objs, @libs, @stdlibpath, @sharedlib, $libgcc);
-    } else {
-       $rv = mysystem($LD, @LDFLAGS, @staticopt, @ldopt, @outopt, @objs, @libs, @stdlibpath, @staticlib, $libgcc);
-    }
-
-    unlink(@rmobjs);
-
-    if ( $strip && !$rv ) {
-       $rv = mysystem($STRIP, @STRIPFLAGS, $output);
-    }
-}
-
-exit syserr($rv);
diff --git a/klibc/klibc.spec.in b/klibc/klibc.spec.in
deleted file mode 100644 (file)
index eef5dbf..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-Summary: A minimal libc subset for use with initramfs.
-Name: klibc
-Version: @@VERSION@@
-Release: 1
-License: BSD/GPL
-Group: Development/Libraries
-URL: http://www.zytor.com/mailman/listinfo/klibc
-Source: http://www.kernel.org/pub/linux/libs/klibc-%{version}.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
-BuildRequires: kernel >= 2.6.0, kernel-devel
-Packager: H. Peter Anvin <hpa@zytor.com>
-Prefix: /usr
-Vendor: Starving Linux Artists
-
-%define klibcdir  %{_prefix}/lib/klibc
-%define libdocdir %{_docdir}/%{name}-%{version}-%{release}
-%define bindocdir %{_docdir}/%{name}-utils-%{version}-%{release}
-
-%description
-%{name} is intended to be a minimalistic libc subset for use with
-initramfs.  It is deliberately written for small size, minimal
-entanglement, and portability, not speed.
-
-%package devel
-Summary: Libraries and tools needed to compile applications against klibc.
-Group: Development/Libraries
-Requires: klibc = %{version}-%{release}
-
-%description devel
-This package contains the link libraries, header files, and gcc
-wrapper scripts needed to compile applications against klibc.
-
-%package utils
-Summary: Small utilities built with klibc.
-Group: Utilities/System
-Requires: klibc = %{version}-%{release}
-
-%description utils
-This package contains a collection of programs that are linked against
-klibc.  These duplicate some of the functionality of a regular Linux
-toolset, but are typically much smaller than their full-function
-counterparts.  They are intended for inclusion in initramfs images and
-embedded systems.
-
-%prep
-%setup -q
-cp -dRs /lib/modules/`uname -r`/build/ ./linux
-# Shouldn't need this when getting the build tree from /lib/modules
-# make -C linux defconfig ARCH=%{_target_cpu}
-# make -C linux prepare ARCH=%{_target_cpu}
-# Deal with braindamage in RedHat's kernel-source RPM
-rm -f linux/include/linux/config.h
-cat <<EOF > linux/include/linux/config.h
-#ifndef _LINUX_CONFIG_H
-#define _LINUX_CONFIG_H
-
-#include <linux/autoconf.h>
-
-#endif
-EOF
-mkdir -p %{buildroot}
-
-%build
-make  ARCH=%{_target_cpu} prefix=%{_prefix} bindir=%{_bindir} \
-       INSTALLDIR=%{klibcdir} mandir=%{_mandir} INSTALLROOT=%{buildroot}
-
-%install
-rm -rf %{buildroot}
-make  ARCH=%{_target_cpu} prefix=%{_prefix} bindir=%{_bindir} \
-       INSTALLDIR=%{klibcdir} mandir=%{_mandir} INSTALLROOT=%{buildroot} \
-       install
-
-# Make the .so file in /lib a hardlink (they will be expanded as two
-# files automatically if it crosses filesystems when extracted.)
-ln -f %{buildroot}%{klibcdir}/lib/klibc-*.so %{buildroot}/lib
-
-# Install the docs
-mkdir -p %{buildroot}%{bindocdir} %{buildroot}%{libdocdir}
-install -m 444 README %{buildroot}%{libdocdir}
-install -m 444 klibc/README %{buildroot}%{libdocdir}/README.klibc
-install -m 444 klibc/arch/README %{buildroot}%{libdocdir}/README.klibc.arch
-
-install -m 444 gzip/COPYING %{buildroot}%{bindocdir}/COPYING.gzip
-install -m 444 gzip/README %{buildroot}%{bindocdir}/README.gzip
-install -m 444 ipconfig/README %{buildroot}%{bindocdir}/README.ipconfig
-install -m 444 kinit/README %{buildroot}%{bindocdir}/README.kinit
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-#
-# Note: libc.so and interp.o are technically -devel files, but
-# put them in this package until we can make really, really sure
-# the dependency system can avoid confusion.  (In fact, it would be
-# good to eventually get them out of here, so that multiple runtimes
-# can be installed should it be necessary.)
-#
-%files
-%defattr(-,root,root,-)
-/lib/klibc-*.so
-%{klibcdir}/lib/*.so
-%{klibcdir}/lib/interp.o
-
-%files devel
-%defattr(-,root,root,-)
-%{klibcdir}/include
-%{klibcdir}/lib/*.a
-%{klibcdir}/lib/crt0.o
-%{_bindir}/klcc
-%doc %{_mandir}/man1/*
-%doc %{libdocdir}/*
-
-%files utils
-%defattr(-,root,root,-)
-%{klibcdir}/bin
-%doc %{bindocdir}/*
-
-%changelog
-* Tue Mar 1 2005 H. Peter Anvin <hpa@zytor.com>
-- New "make install" scheme, klcc
-
-* Tue Jul 6 2004 H. Peter Anvin <hpa@zytor.com>
-- Update to use kernel-source RPM for the kernel symlink.
-
-* Sat Nov 29 2003 Bryan O'Sullivan <bos@serpentine.com> - 
-- Initial build.
diff --git a/klibc/klibc/CAVEATS b/klibc/klibc/CAVEATS
deleted file mode 100644 (file)
index 5bc11e4..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-         -------------------------------------------------
-         Please note the following caveats to using klibc:
-         -------------------------------------------------
-
-optimization:
--------------
-
-Compiling with -O0 is not supported.  It may or may not work; please
-use -O1 if you want to do maximize debuggability.
-
-Compiling with -O0 is more likely to work on gcc 3.
-
-
-setjmp()/longjmp():
--------------------
-
-setjmp() and longjmp() *do not* save signal state.  sigsetjmp() and
-siglongjmp() *do* save the signal mask -- regardless of the value of
-the extra argument.
-
-The standards actually state that if you pass longjmp() a final value
-of zero the library should change that to a 1!  Presumably the reason
-is so people who write broken code can get away with writing
-longjmp(buf); or something equally bad.  If you pass longjmp() a final
-value of 0 you get what you deserve -- setjmp() will happily return 0.
-
-
-stdio:
-------
-
-Only a small subset of the stdio functions are implemented.  Those
-that are implemented do not buffer, although they *do* trap EINTR or
-short read/writes and iterate.
-
-_fread() and _fwrite(), which take only one size argument (like
-read/write), but do handle EINTR/short return are also available.
-
-
-namespaces:
------------
-
-klibc frequently includes headers in other headers in a way that
-exposes more symbols than POSIX says they should.  "Live with it."
-
-
-theading:
----------
-
-klibc is not thread-safe.  Consequently, clone() or any of the
-pthreads functions are not included.
-
-
-bsd_signal vs sysv_signal:
---------------------------
-
-There is no signal() call, because you never know if you want
-Linux/SysV semantics (SA_RESETHAND) or GNU/BSD semantics (SA_RESTART).
-The best, in *any* circumstances, is to never use signal() and instead
-use sigaction(), but in order to simplify porting you can use either
-sysv_signal() or bsd_signal(), depending on what you actually want.
-
diff --git a/klibc/klibc/Kbuild b/klibc/klibc/Kbuild
deleted file mode 100644 (file)
index be239a6..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-#
-# Kbuild file for klibc
-#
-
-libc-y := vsnprintf.o snprintf.o vsprintf.o sprintf.o \
-         asprintf.o vasprintf.o \
-         vsscanf.o sscanf.o ctypes.o \
-         strntoumax.o strntoimax.o \
-         atoi.o atol.o atoll.o \
-         strtol.o strtoll.o strtoul.o strtoull.o \
-         strtoimax.o strtoumax.o \
-         globals.o exitc.o atexit.o onexit.o \
-         execl.o execle.o execv.o execvpe.o execvp.o execlp.o execlpe.o \
-         fork.o wait.o wait3.o waitpid.o system.o setpgrp.o getpgrp.o \
-         daemon.o \
-         printf.o vprintf.o fprintf.o vfprintf.o perror.o \
-         statfs.o fstatfs.o umount.o \
-         open.o fopen.o fread.o fread2.o fgetc.o fgets.o \
-         fwrite.o fwrite2.o fputc.o fputs.o puts.o putchar.o \
-         sleep.o usleep.o strtotimespec.o strtotimeval.o \
-         raise.o abort.o assert.o alarm.o pause.o \
-         __signal.o sysv_signal.o bsd_signal.o siglist.o siglongjmp.o \
-         sigaction.o sigpending.o sigprocmask.o sigsuspend.o \
-         brk.o sbrk.o malloc.o realloc.o calloc.o mmap.o \
-         memcpy.o memcmp.o memset.o memccpy.o memmem.o memswap.o \
-         memmove.o memchr.o memrchr.o \
-         strcasecmp.o strncasecmp.o strndup.o strerror.o \
-         strcat.o strchr.o strcmp.o strcpy.o strdup.o strlen.o strnlen.o \
-         strncat.o strlcpy.o strlcat.o \
-         strstr.o strncmp.o strncpy.o strrchr.o \
-         strxspn.o strspn.o strcspn.o strpbrk.o strsep.o strtok.o \
-         gethostname.o getdomainname.o getcwd.o \
-         seteuid.o setegid.o \
-         getenv.o setenv.o putenv.o __put_env.o unsetenv.o \
-         getopt.o readdir.o \
-         syslog.o closelog.o pty.o getpt.o isatty.o reboot.o \
-         time.o utime.o llseek.o nice.o getpriority.o \
-         qsort.o \
-         lrand48.o jrand48.o mrand48.o nrand48.o srand48.o seed48.o \
-         inet/inet_ntoa.o inet/inet_aton.o inet/inet_addr.o \
-         inet/inet_ntop.o inet/inet_pton.o inet/bindresvport.o \
-         send.o recv.o
-
-libc-$(CONFIG_KLIBC_ERRLIST) += errlist.o
-
-libc-$(CONFIG_KLIBC_ZLIB)    += \
-       zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/gzio.o \
-       zlib/uncompr.o zlib/deflate.o zlib/trees.o zlib/zutil.o \
-       zlib/inflate.o zlib/infback.o zlib/inftrees.o zlib/inffast.o
-
-#####
-# Add any architecture-specific rules
-include $(obj)/arch/$(ARCH)/Makefile.inc
-
-#####
-# Shared definitions
-LIB      := libc.a
-SOLIB    := libc.so
-SOHASH   := klibc.so
-CRT0     := arch/$(ARCH)/crt0.o
-INTERP_O := interp.o
-
-always   := $(CRT0) $(LIB) $(SOLIB) $(SOHASH) $(INTERP_O)
-LIB      := $(call objectify,$(LIB))
-SOLIB    := $(call objectify,$(SOLIB))
-SOHASH   := $(call objectify,$(SOHASH))
-CRT0     := $(call objectify,$(CRT0))
-INTERP_O := $(call objectify,$(INTERP_O))
-
-targets  := arch/$(ARCH)/crt0.o
-targets  += $(libc-y) $(ARCHOBJS)
-
-# Generate syscall stubs
-subdir-y += syscalls
-# Generate socket calls stubs
-subdir-y += socketcalls
-
-# Tell make to descend before building libs
-$(obj)/syscalls/syscalls.o: $(obj)/syscalls
-$(obj)/socketcalls/socketcalls.o: $(obj)/socketcalls
-
-#####
-# Readable errormessages extracted from src..
-targets += errlist.c
-quiet_cmd_errlist = GEN     $@
-      cmd_errlist = $(PERL) $< $(LINUXINCLUDE) -errlist > $@ || rm -f $@
-
-$(obj)/errlist.c: $(srctree)/$(src)/makeerrlist.pl
-       $(call cmd,errlist)
-
-# full list of dependencies for klibc
-libc-deps = $(call objectify, $(libc-y) $(ARCHOBJS)) \
-            $(call objectify, syscalls/syscalls.o socketcalls/socketcalls.o)
-
-######
-# Build static library: libc.a
-targets += libc.a __static_init.o
-quiet_cmd_libc = USERAR  $@
-      cmd_libc = rm -f $@; \
-                 $(USERAR) cq $@ $(filter-out FORCE,$^); \
-                 $(USERRANLIB) $@
-
-$(LIB): $(call objectify,__static_init.o) $(libc-deps) FORCE
-       $(call if_changed,libc)
-
-######
-# Build shared library
-targets += libc.so __shared_init.o
-
-quiet_cmd_libcso = LD      $@
-      cmd_libcso = $(USERLD) $(USERLDFLAGS) $(USERSHAREDFLAGS) \
-                             -o $@ $(filter-out FORCE,$^) $(USERLIBGCC)
-
-$(SOLIB): $(CRT0) $(call objectify,__shared_init.o) $(libc-deps) FORCE
-       $(call if_changed,libcso)
-
-
-#####
-# Build sha1 hash values
-targets     += klibc.so libc.so.hash
-hostprogs-y := sha1hash
-
-quiet_cmd_solibhash = HASH    $@
-      cmd_solibhash = $(USERNM) $< | egrep '^[0-9a-fA-F]+ [ADRTW] ' | \
-                                        sort | $(obj)/sha1hash > $@
-$(SOLIB).hash: $(SOLIB) $(obj)/sha1hash FORCE
-       $(call if_changed,solibhash)
-
-quiet_cmd_sohash = GEN     $@
-      cmd_sohash = cat $< > $@;                                           \
-                     $(USERSTRIP) $(USERSTRIPFLAGS) $@;                   \
-                     rm -f $(obj)/klibc-??????????????????????.so;        \
-                     ln -f $@ $(obj)/klibc-`cat $(SOLIB).hash`.so
-$(SOHASH): $(SOLIB) $(SOLIB).hash
-       $(call cmd,sohash)
-
-
-#####
-# build interp.o
-targets += interp.o
-
-quiet_cmd_interp = BUILD  $@
-      cmd_interp = $(USERCC) $(usercflags) -D__ASSEMBLY__     \
-                             -DLIBDIR=\"$(SHLIBDIR)\"         \
-                            -DSOHASH=\"`cat $(SOLIB).hash`\" \
-                            -c -o $@ $<
-
-$(INTERP_O): $(obj)/interp.S $(SOLIB).hash
-       $(call if_changed,interp)
diff --git a/klibc/klibc/LICENSE b/klibc/klibc/LICENSE
deleted file mode 100644 (file)
index b512ff9..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-This license applies to all files in directory and its subdirectories,
-unless otherwise noted in individual files.
-
-
-Some files are derived from files derived from the include/ directory
-of the Linux kernel, and are licensed under the terms of the GNU
-General Public License, version 2, as released by the Free Software
-Foundation, Inc.; incorporated herein by reference.
-
-                               -----
-
-Some files are derived from files copyrighted by the Regents of The
-University of California, and are available under the following
-license:
-
-Note: The advertising clause in the license appearing on BSD Unix
-files was officially rescinded by the Director of the Office of
-Technology Licensing of the University of California on July 22
-1999. He states that clause 3 is "hereby deleted in its entirety."
-
- * Copyright (c)
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
-                               -----
-
-For all remaining files, the following license applies:
-
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- * 
- * Any copyright notice(s) and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/klibc/klibc/MCONFIG b/klibc/klibc/MCONFIG
deleted file mode 100644 (file)
index 24af09d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- makefile -*-
-#
-# Makefile configuration, without explicit rules
-#
-
-SRCROOT = ..
-include ../MCONFIG
-include ../MRULES
-
-WARNFLAGS = -W -Wall -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Winline
-
-ifeq ($(ERRLIST),1)
-REQFLAGS += -DWITH_ERRLIST
-endif
-
-CFLAGS  = -Wp,-MT,$@,-MD,$(dir $@).$(notdir $@).d $(OPTFLAGS) $(REQFLAGS) $(WARNFLAGS)
-INCLUDE += -I./zlib
-CFLAGS  += -DDYNAMIC_CRC_TABLE
-
-SOFLAGS = -fPIC
diff --git a/klibc/klibc/Makefile b/klibc/klibc/Makefile
deleted file mode 100644 (file)
index dff813f..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-#
-# Makefile
-#
-# Main makefile
-#
-
-# Include configuration rules
-include MCONFIG
-
-INCLUDE += -I./zlib
-
-TESTS   = $(patsubst %.c,%,$(wildcard tests/*.c)) \
-         $(patsubst %.c,%.shared,$(wildcard tests/*.c))
-LIBOBJS = vsnprintf.o snprintf.o vsprintf.o sprintf.o \
-         asprintf.o vasprintf.o \
-         vsscanf.o sscanf.o ctypes.o \
-         strntoumax.o strntoimax.o \
-         atoi.o atol.o atoll.o \
-         strtol.o strtoll.o strtoul.o strtoull.o \
-         strtoimax.o strtoumax.o \
-         globals.o exitc.o atexit.o onexit.o \
-         execl.o execle.o execv.o execvpe.o execvp.o execlp.o execlpe.o \
-         fork.o wait.o wait3.o waitpid.o system.o setpgrp.o getpgrp.o \
-         daemon.o \
-         printf.o vprintf.o fprintf.o vfprintf.o perror.o \
-         statfs.o fstatfs.o umount.o \
-         open.o fopen.o fread.o fread2.o fgetc.o fgets.o \
-         fwrite.o fwrite2.o fputc.o fputs.o puts.o putchar.o \
-         sleep.o usleep.o strtotimespec.o strtotimeval.o \
-         raise.o abort.o assert.o alarm.o pause.o \
-         __signal.o sysv_signal.o bsd_signal.o siglist.o siglongjmp.o \
-         sigaction.o sigpending.o sigprocmask.o sigsuspend.o \
-         brk.o sbrk.o malloc.o realloc.o calloc.o mmap.o \
-         memcpy.o memcmp.o memset.o memccpy.o memmem.o memswap.o \
-         memmove.o memchr.o memrchr.o \
-         strcasecmp.o strncasecmp.o strndup.o strerror.o \
-         strcat.o strchr.o strcmp.o strcpy.o strdup.o strlen.o strnlen.o \
-         strncat.o strlcpy.o strlcat.o \
-         strstr.o strncmp.o strncpy.o strrchr.o \
-         strxspn.o strspn.o strcspn.o strpbrk.o strsep.o strtok.o \
-         gethostname.o getdomainname.o getcwd.o \
-         seteuid.o setegid.o \
-         getenv.o setenv.o putenv.o __put_env.o unsetenv.o \
-         getopt.o readdir.o \
-         syslog.o closelog.o pty.o getpt.o isatty.o reboot.o \
-         time.o utime.o llseek.o nice.o getpriority.o \
-         qsort.o \
-         lrand48.o jrand48.o mrand48.o nrand48.o srand48.o seed48.o \
-         inet/inet_ntoa.o inet/inet_aton.o inet/inet_addr.o \
-         inet/inet_ntop.o inet/inet_pton.o inet/bindresvport.o \
-         send.o recv.o
-
-ifeq ($(ERRLIST),1)
-LIBOBJS += errlist.o
-endif
-
-ifeq ($(ZLIB),1)
-LIBOBJS += zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/gzio.o \
-          zlib/uncompr.o zlib/deflate.o zlib/trees.o zlib/zutil.o \
-          zlib/inflate.o zlib/infback.o zlib/inftrees.o zlib/inffast.o
-endif
-
-SOLIB   = libc.so
-SOHASH  = klibc.so
-
-CRT0    = crt0.o
-LIB     = libc.a
-
-INTERP_O = interp.o
-
-all: tests $(CRT0) $(LIB) $(SOLIB) $(SOHASH) $(INTERP_O)
-
-# Add any architecture-specific rules
-include arch/$(ARCH)/Makefile.inc
-EMAIN ?= -e main
-
-tests: $(TESTS)
-
-tests/%.o : tests/%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
-
-# This particular file uses a bunch of formats gcc don't know of, in order
-# to test the full range of our vsnprintf() function.  This outputs a bunch
-# of useless warnings unless we tell it not to.
-tests/testvsnp.o : tests/testvsnp.c
-       $(CC) $(CFLAGS) -Wno-format -c -o $@ $<
-
-tests/% : tests/%.o $(LIB) $(CRT0)
-       $(LD) $(LDFLAGS) -o $@ $(CRT0) $< $(LIB) $(LIBGCC)
-       cp $@ $@.stripped
-       $(STRIPCMD) $@.stripped
-
-tests/%.shared : tests/%.o interp.o $(SOLIB)
-       $(LD) $(LDFLAGS) -o $@ $(EMAIN) interp.o tests/$*.o -R $(SOLIB) $(LIBGCC)
-       cp $@ $@.stripped
-       $(STRIPCMD) $@.stripped
-
-$(LIB): __static_init.o $(LIBOBJS) $(ARCHOBJS) syscalls/static.obj socketcalls/static.obj
-       rm -f $(LIB)
-       $(AR) cq $(LIB) __static_init.o $(LIBOBJS) $(ARCHOBJS) \
-               $(wildcard syscalls/*.o) $(wildcard socketcalls/*.o)
-       $(RANLIB) $(LIB)
-
-$(SOLIB): $(CRT0) __shared_init.o $(LIBOBJS) $(ARCHOBJS) syscalls/static.obj socketcalls/static.obj
-       $(LD) $(LDFLAGS) $(SHAREDFLAGS) -o $@ \
-               $(CRT0) __shared_init.o $(LIBOBJS) $(ARCHOBJS) \
-               $(wildcard syscalls/*.o) $(wildcard socketcalls/*.o) \
-               $(LIBGCC)
-
-sha1hash: sha1hash.c
-       $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ $<
-
-$(SOLIB).hash: $(SOLIB) sha1hash
-       $(NM) $(SOLIB) | \
-               egrep '^[0-9a-fA-F]+ [ADRTW] ' | sort | ./sha1hash > $@
-
-$(SOHASH): $(SOLIB) $(SOLIB).hash
-       cp -f $(SOLIB) $@
-       $(STRIPCMD) $@
-       rm -f klibc-??????????????????????.so
-       ln -f $@ klibc-`cat $(SOLIB).hash`.so
-
-$(INTERP_O): interp.S $(SOLIB).hash
-       $(CC) $(CFLAGS) -D__ASSEMBLY__ -DLIBDIR=\"$(SHLIBDIR)\" \
-               -DSOHASH=\"`cat $(SOLIB).hash`\" \
-               -c -o $@ $<
-
-crt0.o: arch/$(ARCH)/crt0.o
-       cp arch/$(ARCH)/crt0.o .
-
-errlist.c:
-       $(PERL) makeerrlist.pl -q $(INCLUDE) -errlist > $@ || rm -f $@
-
-# We pass -ansi to keep cpp from define e.g. "i386" as well as "__i386__"
-SYSCALLS.i: SYSCALLS.def
-       $(CC) $(CFLAGS) -D__ASSEMBLY__ -ansi -x assembler-with-cpp -E -o $@ $<
-
-syscalls.nrs: ../include/sys/syscall.h
-       $(CC) $(CFLAGS) -Wp,-dM -x c -E -o $@ $<
-
-syscalls.dir: SYSCALLS.i syscalls.pl arch/$(ARCH)/sysstub.ph syscommon.h syscalls.nrs
-       rm -f syscalls/*.[Ssco] syscalls/*.obj
-       mkdir -p syscalls
-       $(PERL) syscalls.pl SYSCALLS.i arch/$(ARCH)/sysstub.ph $(ARCH) \
-               $(BITSIZE) syscalls.nrs \
-               syscalls ../include/klibc/havesyscall.h
-       touch $@
-
-../include/klibc/havesyscall.h: syscalls.dir
-       : Generated by side effect
-
-socketcalls.dir: SOCKETCALLS.def socketcalls.pl socketcommon.h
-       rm -f socketcalls/*.[Ssco] socketcalls/*.obj
-       mkdir -p socketcalls
-       $(PERL) socketcalls.pl SOCKETCALLS.def $(ARCH) socketcalls
-       touch $@
-
-%/static.obj: %.dir
-       $(MAKE) objects-$(basename $(notdir $@)) DIR=$*/
-
-STATIC = $(addsuffix .o,$(basename $(wildcard $(DIR)*.[cS])))
-
-objects-static: $(STATIC)
-       touch $(DIR)static.obj
-
-clean: archclean
-       find . -type f -a \( -name \*.[isoa] -o -name \*.l[iso] \) -print0 | xargs -0rt rm -f
-       rm -f *.a *.so *.hash *.syms *.stripped
-       rm -f $(TESTS) tests/*.stripped
-       rm -f syscalls/*.[Ssco] syscalls/*.obj syscalls.dir
-       rm -f socketcalls/*.[Ssco] socketcalls/*.obj socketcalls.dir
-       rm -f sha1hash errlist.c
-
-spotless: clean
-       rm -f ../include/klibc/havesyscall.h syscalls.nrs
-       find . \( -name \*~ -o -name '.*.d' \) -not -type d -print0 | \
-               xargs -0rt rm -f
-
-bitsize:
-       @echo $(BITSIZE)
-
-install: all
-       $(INSTALL_DATA) $(LIB) $(SOLIB) $(CRT0) $(INTERP_O) \
-               $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)lib
-       $(INSTALL_EXEC) klibc-`cat $(SOLIB).hash`.so \
-               $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)lib
-       $(INSTALL_EXEC) klibc-`cat $(SOLIB).hash`.so \
-               $(INSTALLROOT)/$(SHLIBDIR)
-
-ifneq ($(wildcard $(DIR).*.d),)
-include $(wildcard $(DIR).*.d)
-endif
diff --git a/klibc/klibc/README b/klibc/klibc/README
deleted file mode 100644 (file)
index 3a53a88..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-This is klibc, what is intended to be a minimalistic libc subset for
-use with initramfs.  It is deliberately written for small size,
-minimal entaglement, and portability, not speed.  It is definitely a
-work in progress, and a lot of things are still missing.
-
-
-The build procedure is not very polished yet, but it should work like
-this:
-
-a) In the source root directory (the directory above the one in which
-   this file is found) create a symlink called "linux" pointing to a
-   reasonably recent Linux kernel tree (2.4 or 2.6 should be OK.)
-   This tree must have the include/asm symlink set up for the
-   architecture you're compiling for, and include/linux/autoconf.h
-   must exist.  The easiest way to make sure of all of these is to do
-   a "make config" or any of its variants on the kernel tree is
-   question, followed by a "make dep" (2.4) or "make prepare" (2.6).
-
-b) If you're cross-compiling, change ARCH in the main MCONFIG file to
-   the appropriate architecture, and set CROSS to your toolchain
-   prefix.
-
-   IMPORTANT: if you're on a 64-bit machine with a 32-bit userland
-   (ia64, mips64, ppc64 sparc64, s390x or x86_64), and you want to
-   build the 32-bit version: you need to set ARCH to the 32-bit
-   architecture as well as set up the linux/include/asm symlink to
-   point to the 32-bit architecture.  Building the 32-bit architecture
-   usually (but not always) produces smaller binaries, and is likely
-   to be better tested.
-
-   If you are on ARM, and want to build a thumb version of the library
-   (this is supported), change OPTFLAGS in arch/arm/MCONFIG to build
-   thumb code.
-
-   The following is the last known status of various architectures:
-
-   alpha:       Working static, shared untested
-   arm-thumb:   Untested
-   arm26:       Not yet ported
-   arm:                 Working
-   cris:        Working
-   h8300:       Not yet ported
-   i386:        Working
-   ia64:        Working
-   m32r:        Untested
-   m68k:        Not yet ported
-   mips64:      Not yet ported
-   mips:        Working
-   parisc:      Untested
-   ppc64:       Working
-   ppc:                 Working
-   s390:        Working static, shared untested
-   s390x:       Working
-   sh:          Untested
-   sparc64:     Untested
-   sparc:       Working
-   v850:        Not yet ported
-   x86-64:      Working
-   
-   Shared library support requires recent binutils on many
-   architectures.
-
-   "Need sysstub.ph" means the architectural changes first implemented
-   in klibc-0.117 has not yet been implemented; klibc-0.116 did,
-   however, work.  "Not yet ported" means no porting work has been
-   done on this architecture.
-
-   Note that even the "working" ones likely have bugs.  Please report
-   them if you run into them.
-
-c) Type "make" and pray...
-
-d) Try the test programs in the tests/ directory.  They should run...
-
-Contact the klibc mailing list:
-
-       http://www.zytor.com/mailman/listinfo/klibc
-
-... for more info.
-
-       -hpa
diff --git a/klibc/klibc/SOCKETCALLS.def b/klibc/klibc/SOCKETCALLS.def
deleted file mode 100644 (file)
index e70b3fc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-; -*- fundamental -*-
-;
-; These are calls that are invoked via the socketcall mechanism
-; Note that on most architectures this is simply #included into
-; SYSCALLS.def.
-;
-<?> int socket(int, int, int)
-<?> int bind(int, struct sockaddr *, int)
-<?> int connect(int, struct sockaddr *, socklen_t)
-<?> int listen(int, int)
-<?> int accept(int, struct sockaddr *, socklen_t *)
-<?> int getsockname(int, struct sockaddr *, socklen_t *)
-<?> int getpeername(int, struct sockaddr *, socklen_t *)
-<?> int socketpair(int, int, int, int *)
-<?> int sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t)
-<?> int recvfrom(int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *)
-<?> int shutdown(int, int)
-<?> int setsockopt(int, int, int, const void *, socklen_t)
-<?> int getsockopt(int, int, int, void *, socklen_t *)
-<?> int sendmsg(int, const struct msghdr *, unsigned int)
-<?> int recvmsg(int, struct msghdr *, unsigned int)
diff --git a/klibc/klibc/SYSCALLS.def b/klibc/klibc/SYSCALLS.def
deleted file mode 100644 (file)
index b78919b..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-; -*- fundamental -*-
-;
-; This is a list of system calls we invoke "directly".  These
-; are generated into syscall stubs in their own files, so the
-; linker can do its job properly.
-;
-; The full description of a line is:
-; [<[?][!]arch,...>] type [sysname,...][@systype][::funcname](args)
-;
-; ? means only instantiate this system call if present in asm/unistd.h
-;
-
-#include <asm/unistd.h>
-#include <bitsize.h>
-
-;
-; Process-related syscalls
-;
-<!i386,x86_64> void _exit,exit::_exit(int)
-<?!ia64> pid_t clone::__clone(unsigned long, void *)
-<?ia64> pid_t clone::__clone2(unsigned long, void *, void *)
-<?!sparc> pid_t fork()
-<sparc> pid_t fork@forkish()
-<!mips,mips64,sparc,ia64> pid_t vfork()
-<sparc> pid_t vfork@forkish()
-<!alpha> pid_t getpid()
-<alpha> pid_t getxpid@dual0::getpid()
-int setpgid(pid_t, pid_t)
-pid_t getpgid(pid_t)
-<!alpha> pid_t getppid()
-<alpha> pid_t getxpid@dual1::getppid()
-pid_t setsid()
-pid_t getsid(pid_t)
-pid_t wait4(pid_t, int *, int, struct rusage *)
-int execve(const char *, char * const *, char * const *)
-<?> int nice(int)
-<alpha,ia64> int getpriority(int, int)
-<!alpha,ia64> int getpriority::__getpriority(int, int)
-int setpriority(int, int, int)
-int sched_setscheduler(pid_t, int, const struct sched_param *)
-int sched_yield()
-
-;
-; User and group IDs
-;
-int setuid32,setuid::setuid(uid_t)
-int setgid32,setgid::setgid(gid_t)
-<!alpha> uid_t getuid32,getuid::getuid()
-<alpha>  uid_t getxuid@dual0::getuid()
-<!alpha> gid_t getgid32,getgid::getgid()
-<alpha> gid_t getxgid@dual0::getgid()
-<!alpha> uid_t geteuid32,geteuid::geteuid()
-<alpha> uid_t getxuid@dual1::geteuid()
-<!alpha> gid_t getegid32,getegid::getegid()
-<alpha> gid_t getxgid@dual1::getegid()
-int getgroups32,getgroups::getgroups(int, gid_t *)
-int setgroups32,setgroups::setgroups(size_t, const gid_t *)
-int setreuid32,setreuid::setreuid(uid_t, uid_t)
-int setregid32,setregid::setregid(gid_t, gid_t)
-int setfsuid32,setfsuid::setfsuid(uid_t)
-int setfsgid32,setfsgid::setfsgid(gid_t)
-int setresuid32,setresuid::setresuid(int, uid_t, uid, uid_t)
-
-;
-; Filesystem-related system calls
-;
-int mount(const char *, const char *, const char *, unsigned long, const void *)
-<!alpha,ia64> int umount2(const char *, int)
-<alpha,ia64> int umount::umount2(const char *, int)
-<?> int pivot_root(const char *, const char *)
-int sync()
-#ifdef __NR_statfs64
-int statfs64::__statfs64(const char *, size_t, struct statfs *)
-#else
-int statfs(const char *, struct statfs *)
-#endif
-#ifdef __NR_fstatfs64
-int fstatfs64::__fstatfs64(int, size_t, struct statfs *)
-#else
-int fstatfs(int, struct statfs *)
-#endif
-int swapon(const char *, int)
-int swapoff(const char *)
-
-;
-; Inode-related system calls
-;
-int access(const char *, int)
-int link(const char *, const char *)
-int unlink(const char *)
-int chdir(const char *)
-int fchdir(int)
-int rename(const char *, const char *)
-int mknod(const char *, mode_t, dev_t)
-int chmod(const char *, mode_t)
-int fchmod(int, mode_t)
-int mkdir(const char *, mode_t)
-int rmdir(const char *)
-<!alpha,ia64,mips,mips64> int pipe(int *)
-mode_t umask(mode_t)
-int chroot(const char *)
-int symlink(const char *, const char *)
-int readlink(const char *, char *, size_t)
-<!ppc64> int stat64,stat::stat(const char *, struct stat *)
-<!ppc64> int lstat64,lstat::lstat(const char *, struct stat *)
-<!ppc64> int fstat64,fstat::fstat(int, struct stat *)
-<ppc64> int stat::stat(const char *, struct stat *)
-<ppc64> int lstat::lstat(const char *, struct stat *)
-<ppc64> int fstat::fstat(int, struct stat *)
-int getdents64,getdents::getdents(unsigned int, struct dirent *, unsigned int)
-int chown32,chown::chown(const char *, uid_t, gid_t)
-int fchown32,fchown::fchown(int, uid_t, gid_t)
-int lchown32,lchown::lchown(const char *, uid_t, gid_t)
-int getcwd::__getcwd(char *, size_t)
-<?> int utime(const char *, const struct utimbuf *)
-<?> int utimes(const char *, const struct timeval *)
-<?> int inotify_init(void)
-<?> int inotify_add_watch(int, const char *, __u32)
-<?> int inotify_rm_watch(int, __u32)
-
-;
-; I/O operations
-;
-<!i386,64> int open::__open(const char *, int, mode_t)
-<64> int open(const char *, int, mode_t)
-ssize_t read(int, void *, size_t)
-ssize_t write(int, const void *, size_t)
-int close(int)
-<64> off_t lseek(int, off_t, int)
-<32> int _llseek::__llseek(int, unsigned long, unsigned long, off_t *, int)
-int dup(int)
-int dup2(int, int)
-<i386> int fcntl64@varadic::fcntl(int, int, unsigned long)
-<ppc64> int fcntl(int, int, unsigned long)
-<!i386,ppc64> int fcntl64,fcntl::fcntl(int, int, unsigned long)
-int ioctl(int, int, void *)
-int flock(int, int)
-int _newselect,select::select(int, fd_set *, fd_set *, fd_set *, struct timeval *)
-int poll(struct pollfd *, nfds_t, long)
-int fsync(int)
-int fdatasync,fsync::fdatasync(int)
-int readv(int, const struct iovec *, int)
-int writev(int, const struct iovec *, int)
-int ftruncate64,ftruncate::ftruncate(int, off_t)
-ssize_t pread64,pread::pread(int, void *, size_t, off_t)
-ssize_t pwrite64,pwrite::pwrite(int, void *, size_t, off_t)
-
-;
-; Signal operations
-;
-; We really should get rid of the non-rt_* of these, but that takes
-; sanitizing <signal.h> for all architectures, sigh.
-#ifdef __NR_sigaction
-int sigaction::__sigaction(int, const struct sigaction *, struct sigaction *)
-#else
-int rt_sigaction::__rt_sigaction(int, const struct sigaction *, struct sigaction *, size_t)
-#endif
-#ifdef __NR_sigsuspend
-int sigsuspend(const sigset_t *)
-#else
-int rt_sigsuspend::__rt_sigsuspend(const sigset_t *, size_t)
-#endif
-#ifdef __NR_sigpending
-int sigpending(sigset_t *)
-#else
-int rt_sigpending::__rt_sigpending(sigset_t *, size_t)
-#endif
-#ifdef __NR_sigprocmask
-int sigprocmask(int, const sigset_t *, sigset_t *)
-#else
-int rt_sigprocmask::__rt_sigprocmask(int, const sigset_t *, sigset_t *, size_t)
-#endif
-int kill(pid_t, int)
-<?> unsigned int alarm(unsigned int)
-int getitimer(int, struct itimerval *)
-int setitimer(int, const struct itimerval *, struct itimerval *)
-
-;
-; Time-related system calls
-;
-<?> time_t time(time_t *)
-clock_t times(struct tms *)
-int gettimeofday(struct timeval *, struct timezone *)
-int settimeofday(const struct timeval *, const struct timezone *)
-int nanosleep(const struct timespec *, struct timespec *)
-<?> int pause()
-
-;
-; Memory
-;
-void * brk::__brk(void *)
-int munmap(void *, size_t)
-void * mremap(void *, size_t, size_t, unsigned long)
-int msync(const void *, size_t, int)
-int mprotect(const void *, size_t, int)
-#if (_BITSIZE == 32 && defined(__NR_mmap2)) || \
-    (_BITSIZE == 64 && !defined(__NR_mmap))
-<!s390> void * mmap2::__mmap2(void *, size_t, int, int, int, long)
-#else
-<!s390x> void * mmap(void *, size_t, int, int, int, long)
-#endif
-int mlockall(int)
-int munlockall()
-int mlock(const void *, size_t)
-int munlock(const void *, size_t)
-
-;
-; System stuff
-;
-int uname(struct utsname *)
-int setdomainname(const char *, size_t)
-int sethostname(const char *, size_t)
-long init_module(void *, unsigned long, const char *)
-long delete_module(const char *, unsigned int)
-int reboot::__reboot(int, int, int, void *)
-int syslog::klogctl(int, char *, int)
-int sysinfo(struct sysinfo *)
-
-;
-; Low-level I/O (generally architecture-specific)
-;
-<i386,x86_64> int iopl(int)
-<i386,x86_64> int ioperm(unsigned long, unsigned long, int)
-<i386> int vm86(struct vm86_struct *)
-
-;
-; Most architectures have the socket interfaces using regular
-; system calls.
-;
-<?!i386> long socketcall::__socketcall(int, const unsigned long *)
-#include "SOCKETCALLS.def"
diff --git a/klibc/klibc/__put_env.c b/klibc/klibc/__put_env.c
deleted file mode 100644 (file)
index 7e55f2c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * __put_env.c - common code for putenv() and setenv()
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-/* Initialized to zero, meaning "not malloc'd" */
-static size_t __environ_size;
-
-/* str should be a duplicated version of the input string;
-   len is the length of the key including the = sign */
-int __put_env(char *str, size_t len, int overwrite)
-{
-  char **p, *q;
-  char **newenv;
-  size_t n;
-
-  n = 1;                       /* Include space for final NULL */
-  for ( p = environ ; (q = *p) ; p++ ) {
-    n++;
-    if ( !strncmp(q,str,len) ) {
-      if ( !overwrite )
-       free(str);
-      else
-       *p = str;               /* Possible memory leak... */
-      return 0;
-    }
-  }
-
-  /* Need to extend the environment */
-  if ( n < __environ_size ) {
-    p[1] = NULL;
-    *p = str;
-    return 0;
-  } else {
-    if ( __environ_size ) {
-      newenv = realloc(environ, (__environ_size << 1)*sizeof(char *));
-      if ( !newenv )
-       return -1;
-
-      __environ_size <<= 1;
-    } else {
-      /* Make a reasonable guess how much more space we need */
-      size_t newsize = n+32;
-      newenv = malloc(newsize*sizeof(char *));
-      if ( !newenv )
-       return -1;
-
-      memcpy(newenv, environ, n*sizeof(char *));
-      __environ_size = newsize;
-    }
-    newenv[n-1] = str;         /* Old NULL position */
-    newenv[n]   = NULL;
-    environ = newenv;
-  }
-  return 0;
-}
diff --git a/klibc/klibc/__shared_init.c b/klibc/klibc/__shared_init.c
deleted file mode 100644 (file)
index 592a3db..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define SHARED 1
-#include "libc_init.c"
diff --git a/klibc/klibc/__signal.c b/klibc/klibc/__signal.c
deleted file mode 100644 (file)
index b5081d3..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * __signal.c
- */
-
-#include <signal.h>
-
-__sighandler_t __signal(int signum, __sighandler_t handler, int flags)
-{
-  struct sigaction sa;
-
-  sa.sa_handler = handler;
-  sa.sa_flags   = flags;
-  sigemptyset(&sa.sa_mask);
-
-  if ( sigaction(signum, &sa, &sa) ) {
-    return (__sighandler_t)SIG_ERR;
-  } else {
-    return (__sighandler_t)sa.sa_handler;
-  }
-}
-
-       
diff --git a/klibc/klibc/__static_init.c b/klibc/klibc/__static_init.c
deleted file mode 100644 (file)
index 0b59eed..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define SHARED 0
-#include "libc_init.c"
diff --git a/klibc/klibc/abort.c b/klibc/klibc/abort.c
deleted file mode 100644 (file)
index 9280d98..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * abort.c
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
-
-void abort(void)
-{
-  sigset_t set;
-
-  sigemptyset(&set);
-  sigaddset(&set, SIGABRT);
-  sigprocmask(SIG_UNBLOCK, &set, NULL);
-  raise(SIGABRT);
-  _exit(255);                  /* raise() should have killed us */
-}
-  
diff --git a/klibc/klibc/alarm.c b/klibc/klibc/alarm.c
deleted file mode 100644 (file)
index 40c0969..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * alarm.c
- */
-
-#include <sys/time.h>
-#include <sys/syscall.h>
-
-#ifndef __NR_alarm
-
-/* Emulate alarm() via setitimer() */
-
-unsigned int alarm(unsigned int seconds)
-{
-  struct itimerval iv;
-
-  iv.it_interval.tv_sec = iv.it_interval.tv_usec = 0;
-  iv.it_value.tv_sec = seconds;
-  iv.it_value.tv_usec = 0;
-
-  setitimer(ITIMER_REAL, &iv, &iv);
-
-  return iv.it_value.tv_sec + (iv.it_value.tv_usec ? 1 : 0);
-}
-
-#endif
diff --git a/klibc/klibc/arch/README b/klibc/klibc/arch/README
deleted file mode 100644 (file)
index eceb23d..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-To port klibc to a new architecture, you need:
-
-a) A directory structure
-
-Each archtecture has an arch/ directory, which should include an
-MCONFIG and a Makefile.inc file.
-
-b) Startup code (arch/*/crt0.S)
-
-The crt0.S assembly routine typically corresponds to the following
-pseudo-C code.  In addition, each architecture needs any support
-routines that gcc-generated code expects to find in the system library
--- Alpha, for example, needs divide subroutines.
-
-The "getenvtest" test program is a very good test for proper crt0.S
-functionality.
-
-
-extern __noreturn __libc_init(void *, void *);
-
-__noreturn _start(void)
-{
-  void *elf_data   = get_elf_data_address(); /* Usually the stack address */
-  void *atexit_ptr = get_atexit_ptr();       /* Usually in a register */ 
-
-  /* Some architectures need this for debugging to work */
-  setup_null_stack_frame_if_necessary();
-
-  __libc_init(elf_data, atexit_ptr);
-}
-
-
-c) A setenv implementation (arch/*/setjmp.S, arch/*/include/klibc/archsetjmp.h)
-
-On most (but not all!) architectures, this entails creating a setjmp
-buffer big enough to hold all callee-saved registers, plus the stack
-pointer and the return address.  In setjmp.S you have:
-
-* A "setjmp" function that writes out the callee-saved registers, the
-  stack pointer and the return address to the buffer pointed to by the
-  first argument, and then returns zero normally.
-
-  On some architectures you need to take some kind of action to make
-  sure the contents of the stack is actually manifest in memory and
-  not cached in the CPU.  In some cases (e.g. on SPARC) this will
-  automatically spill the registers onto the stack; then they don't
-  need to be spilled into the jmp_buf.
-
-* A "longjmp" function that read back these same registers from the
-  jmp_buf pointed to by the first argument, and returns the second
-  argument *to the address specified in the jmp_buf*.
-
-  On some architectures you need to take some kind of action to flush
-  any cached stack data or return stack.
-
-
-d) Any support functions needed by gcc, *unless* they are in libgcc
-  *and* libgcc is usable for klibc on your particular platform.  If
-  libgcc isn't usable for klibc (on MIPS, for example, libgcc is
-  compiled in a way that is not compatible with klibc) there are
-  reasonably good clones of most of the libgcc functions in the libgcc
-  directory.  To use them, add them to ARCHOBJS in
-  arch/*/Makefile.inc.
-
-
-e) A link location for the shared klibc.  This should be specified in
-  SHAREDFLAGS in arch/*/MCONFIG.
diff --git a/klibc/klibc/arch/alpha/MCONFIG b/klibc/klibc/arch/alpha/MCONFIG
deleted file mode 100644 (file)
index d7ab6c0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-#
-# arch/alpha/MCONFIG
-#
-# Build configuration for this architecture
-#
-
-OPTFLAGS = -Os
-BITSIZE  = 64
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# 7 GB - normal binaries start at 4.5 GB, and the stack is below
-# the binary.
-SHAREDFLAGS    = -Ttext 0x1c0000200
-
diff --git a/klibc/klibc/arch/alpha/Makefile.inc b/klibc/klibc/arch/alpha/Makefile.inc
deleted file mode 100644 (file)
index 62fce9d..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-# -*- makefile -*-
-#
-# arch/alpha/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-# Special CFLAGS for the divide code
-DIVCFLAGS = $(REQFLAGS) \
-       -O3 -fomit-frame-pointer -fcall-saved-1 -fcall-saved-2 \
-       -fcall-saved-3 -fcall-saved-4 -fcall-saved-5 -fcall-saved-6 \
-       -fcall-saved-7 -fcall-saved-8 -ffixed-15 -fcall-saved-16 \
-       -fcall-saved-17 -fcall-saved-18 -fcall-saved-19 -fcall-saved-20 \
-       -fcall-saved-21 -fcall-saved-22 -ffixed-23 -fcall-saved-24 \
-       -ffixed-25 -ffixed-27
-
-ARCHOBJS = \
-       arch/$(ARCH)/__divqu.o \
-       arch/$(ARCH)/__remqu.o \
-       arch/$(ARCH)/__divq.o \
-       arch/$(ARCH)/__remq.o \
-       arch/$(ARCH)/__divlu.o \
-       arch/$(ARCH)/__remlu.o \
-       arch/$(ARCH)/__divl.o \
-       arch/$(ARCH)/__reml.o \
-       arch/$(ARCH)/pipe.o \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       arch/$(ARCH)/sysdual.o
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-arch/$(ARCH)/%.s: arch/$(ARCH)/%.ss
-       sed -e 's/\$$0\b/$$27/g' -e 's/\$$24\b/$$99/g' \
-           -e 's/\$$16\b/$$24/g' -e 's/\$$17\b/$$25/g' \
-            -e 's/\$$26\b/$$23/g' -e 's/\$$99\b/$$16/g' < $< > $@
-
-arch/$(ARCH)/%.ls: arch/$(ARCH)/%.lss
-       sed -e 's/\$$0\b/$$27/g' -e 's/\$$24\b/$$99/g' \
-           -e 's/\$$16\b/$$24/g' -e 's/\$$17\b/$$25/g' \
-            -e 's/\$$26\b/$$23/g' -e 's/\$$99\b/$$16/g' < $< > $@
-
-arch/$(ARCH)/__divqu.ss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -DSIGNED=0 -DREM=0 -DBITS=64 -DNAME=__divqu -S -o $@ $<
-
-arch/$(ARCH)/__remqu.ss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -DSIGNED=0 -DREM=1 -DBITS=64 -DNAME=__remqu -S -o $@ $<
-
-arch/$(ARCH)/__divq.ss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -DSIGNED=1 -DREM=0 -DBITS=64 -DNAME=__divq -S -o $@ $<
-
-arch/$(ARCH)/__remq.ss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -DSIGNED=1 -DREM=1 -DBITS=64 -DNAME=__remq -S -o $@ $<
-
-arch/$(ARCH)/__divlu.ss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -DSIGNED=0 -DREM=0 -DBITS=32 -DNAME=__divlu -S -o $@ $<
-
-arch/$(ARCH)/__remlu.ss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -DSIGNED=0 -DREM=1 -DBITS=32 -DNAME=__remlu -S -o $@ $<
-
-arch/$(ARCH)/__divl.ss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -DSIGNED=1 -DREM=0 -DBITS=32 -DNAME=__divl -S -o $@ $<
-
-arch/$(ARCH)/__reml.ss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -DSIGNED=1 -DREM=1 -DBITS=32 -DNAME=__reml -S -o $@ $<
-
-arch/$(ARCH)/__divqu.lss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -fPIC -DSIGNED=0 -DREM=0 -DBITS=64 -DNAME=__divqu -S -o $@ $<
-
-arch/$(ARCH)/__remqu.lss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -fPIC -DSIGNED=0 -DREM=1 -DBITS=64 -DNAME=__remqu -S -o $@ $<
-
-arch/$(ARCH)/__divq.lss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -fPIC -DSIGNED=1 -DREM=0 -DBITS=64 -DNAME=__divq -S -o $@ $<
-
-arch/$(ARCH)/__remq.lss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -fPIC -DSIGNED=1 -DREM=1 -DBITS=64 -DNAME=__remq -S -o $@ $<
-
-arch/$(ARCH)/__divlu.lss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -fPIC -DSIGNED=0 -DREM=0 -DBITS=32 -DNAME=__divlu -S -o $@ $<
-
-arch/$(ARCH)/__remlu.lss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -fPIC -DSIGNED=0 -DREM=1 -DBITS=32 -DNAME=__remlu -S -o $@ $<
-
-arch/$(ARCH)/__divl.lss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -fPIC -DSIGNED=1 -DREM=0 -DBITS=32 -DNAME=__divl -S -o $@ $<
-
-arch/$(ARCH)/__reml.lss: arch/$(ARCH)/divide.c
-       $(CC) $(DIVCFLAGS) -fPIC -DSIGNED=1 -DREM=1 -DBITS=32 -DNAME=__reml -S -o $@ $<
-
-archclean:
-       rm -f arch/$(ARCH)/*.ss arch/$(ARCH)/*.lss
-
diff --git a/klibc/klibc/arch/alpha/README-gcc b/klibc/klibc/arch/alpha/README-gcc
deleted file mode 100644 (file)
index 9aaba72..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-   The current Alpha chips don't provide hardware for integer
-   division.  The C compiler expects the functions
-
-        __divqu: 64-bit unsigned long divide
-        __remqu: 64-bit unsigned long remainder
-        __divq/__remq:   signed 64-bit
-        __divlu/__remlu: unsigned 32-bit
-        __divl/__reml:   signed 32-bit
-
-   These are not normal C functions: instead of the normal calling
-   sequence, these expect their arguments in registers t10 and t11, and
-   return the result in t12 (aka pv).  Register AT may be clobbered
-   (assembly temporary), anything else must be saved.
-
-   Furthermore, the return address is in t9 instead of ra.
-
-   Normal function     Divide functions
-   ---------------     ----------------
-   v0 ($0)             t12/pv ($27)
-   a0 ($16)            t10 ($24)
-   a1 ($17)            t11 ($25)
-   ra ($26)            t9 ($23)
-
diff --git a/klibc/klibc/arch/alpha/crt0.S b/klibc/klibc/arch/alpha/crt0.S
deleted file mode 100644 (file)
index 904b539..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# arch/alpha/crt0.S
-#
-
-       .text
-       .type   _start,@function
-       .ent    _start, 0
-       .globl  _start
-_start:
-       .frame  $30, 0, $26, 0
-       mov     $31, $15
-       br      $29, 1f
-1:     ldgp    $29, 0($29)
-       .prologue 0
-
-       lda     $16, 0($30)             # ELF data structure
-       lda     $17, 0($0)              # atexit pointer
-       
-       jsr     $26, __libc_init
-       
-       .size   _start,.-_start
-       .end    _start
diff --git a/klibc/klibc/arch/alpha/divide.c b/klibc/klibc/arch/alpha/divide.c
deleted file mode 100644 (file)
index 49d77cd..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <stdint.h>
-#include <asm/gentrap.h>
-#include <asm/pal.h>
-
-#if BITS == 64
-typedef uint64_t uint;
-typedef int64_t  sint;
-#else
-typedef uint32_t uint;
-typedef int32_t  sint;
-#endif
-
-#ifdef SIGNED
-typedef sint xint;
-#else
-typedef uint xint;
-#endif
-
-xint NAME (uint num, uint den)
-{
-  uint quot = 0, qbit = 1;
-  int minus = 0;
-  xint v;
-  
-  if ( den == 0 ) {
-    /* This is really $16, but $16 and $24 are exchanged by a script */
-    register unsigned long cause asm("$24") = GEN_INTDIV;
-    asm volatile("call_pal %0" :: "i" (PAL_gentrap), "r" (cause));
-    return 0;                  /* If trap returns... */
-  }
-
-#if SIGNED
-  if ( (sint)(num^den) < 0 )
-    minus = 1;
-  if ( (sint)num < 0 ) num = -num;
-  if ( (sint)den < 0 ) den = -den;
-#endif
-
-  /* Left-justify denominator and count shift */
-  while ( (sint)den >= 0 ) {
-    den <<= 1;
-    qbit <<= 1;
-  }
-
-  while ( qbit ) {
-    if ( den <= num ) {
-      num -= den;
-      quot += qbit;
-    }
-    den >>= 1;
-    qbit >>= 1;
-  }
-
-  v = (xint)(REM ? num : quot);
-  if ( minus ) v = -v;
-  return v;
-}
diff --git a/klibc/klibc/arch/alpha/pipe.c b/klibc/klibc/arch/alpha/pipe.c
deleted file mode 100644 (file)
index 5aee9ed..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <unistd.h>
-#include <sys/syscall.h>
-
-/* pipe() on alpha returns both file descriptors in registers --
-   $0 and $20 respectively.  This is unlike any other system call,
-   as far as I can tell. */
-
-int pipe(int *fds)
-{
-  register long sc_0 __asm__("$0");
-  register long sc_19 __asm__("$19");
-  register long sc_20 __asm__("$20");
-
-  sc_0 = __NR_pipe;
-  asm volatile("callsys" : "=r" (sc_0), "=r" (sc_19), "=r" (sc_20)
-              : "0" (sc_0)
-              : _syscall_clobbers);
-  
-  if ( sc_19 ) {
-    errno = sc_19;
-    return -1;
-  }
-
-  fds[0] = sc_0;
-  fds[1] = sc_20;
-
-  return 0;
-}
diff --git a/klibc/klibc/arch/alpha/setjmp.S b/klibc/klibc/arch/alpha/setjmp.S
deleted file mode 100644 (file)
index 5d915f2..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# setjmp.S
-#
-
-#
-# The jmp_buf looks like:
-#
-#      s0..5
-#      fp
-#      ra
-#      gp
-#      sp
-#
-
-#include <machine/asm.h>
-       
-       .text
-       .align  3
-       .type   setjmp,@function
-       .ent    setjmp, 0
-       .globl  setjmp
-setjmp:
-       lda     v0,   0(zero)
-       stq     s0,   0(a0)
-       stq     s1,   8(a0)
-       stq     s2,  16(a0)
-       stq     s3,  24(a0)
-       stq     s4,  32(a0)
-       stq     s5,  40(a0)
-       stq     fp,  48(a0)
-       stq     ra,  56(a0)
-       stq     gp,  64(a0)
-       stq     sp,  72(a0)
-       stt     $f2,  80(a0)
-       stt     $f3,  88(a0)
-       stt     $f4,  96(a0)
-       stt     $f5, 104(a0)
-       stt     $f6, 112(a0)
-       stt     $f7, 120(a0)
-       stt     $f8, 128(a0)
-       stt     $f9, 136(a0)
-       ret     zero,(ra),1
-
-       .size setjmp,.-setjmp
-       .end setjmp
-
-       .type   longjmp,@function
-       .ent    longjmp, 0
-       .globl  longjmp
-longjmp:
-       mov     a1, v0
-       ldq     s0,   0(a0)
-       ldq     s1,   8(a0)
-       ldq     s2,  16(a0)
-       ldq     s3,  24(a0)
-       ldq     s4,  32(a0)
-       ldq     s5,  40(a0)
-       ldq     fp,  48(a0)
-       ldq     ra,  56(a0)
-       ldq     gp,  64(a0)
-       ldq     sp,  72(a0)
-       ldt     $f2,  80(a0)
-       ldt     $f3,  88(a0)
-       ldt     $f4,  96(a0)
-       ldt     $f5, 104(a0)
-       ldt     $f6, 112(a0)
-       ldt     $f7, 120(a0)
-       ldt     $f8, 128(a0)
-       ldt     $f9, 136(a0)
-       /* We're bound to get a mispredict here, but at least give us
-          a chance to get the return stack back in sync... */
-       ret     zero,(ra),1
-
-       .size longjmp,.-longjmp
-       .end longjmp
-
-
diff --git a/klibc/klibc/arch/alpha/syscall.S b/klibc/klibc/arch/alpha/syscall.S
deleted file mode 100644 (file)
index 0c87414..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# arch/alpha/syscall.S
-#
-
-#include <machine/asm.h>
-       
-       .text
-       .align  3
-       .type   __syscall_common,@function
-       .ent    __syscall_common, 0
-       .globl  __syscall_common
-__syscall_common:
-       .frame  sp,0,ra,0
-       callsys
-       beq     a3, 1f
-       br      pv, 2f                  # pv <- pc  
-2:
-       ldgp    gp, 0(pv)
-       lda     a1, errno
-       lda     v0, -1(zero)
-       stl     a3, 0(a1)
-1:
-       ret     zero,(ra),1
-
-       .size   __syscall_common,.-__syscall_common
-       .end    __syscall_common
diff --git a/klibc/klibc/arch/alpha/sysdual.S b/klibc/klibc/arch/alpha/sysdual.S
deleted file mode 100644 (file)
index c00db88..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# arch/alpha/sysdual.S
-#
-
-#
-# Some system calls have an alternate return value in r20 (a4).
-# This system call stub is for system calls where that is
-# the "real" return value.
-#
-
-#include <machine/asm.h>
-       
-       .text
-       .align  3
-       .type   __syscall_dual1,@function
-       .ent    __syscall_dual1, 0
-       .globl  __syscall_dual1
-__syscall_dual1:
-       .frame  sp,0,ra,0
-       callsys
-       mov     v0, a4
-       beq     a3, 1f
-       br      pv, 2f                  # pv <- pc  
-2:
-       ldgp    gp, 0(pv)
-       lda     a1, errno
-       lda     v0, -1(zero)
-       stl     a3, 0(a1)
-1:
-       ret     zero,(ra),1
-
-       .size   __syscall_dual1,.-__syscall_dual1
-       .end    __syscall_dual1
diff --git a/klibc/klibc/arch/alpha/sysstub.ph b/klibc/klibc/arch/alpha/sysstub.ph
deleted file mode 100644 (file)
index 08b97e8..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-# -*- perl -*-
-#
-# arch/alpha/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-# On Alpha, most system calls follow the standard convention, with the
-# system call number in r0 (v0), return an error value in r19 (a3) as
-# well as the return value in r0 (v0).
-#
-# A few system calls are dual-return with the second return value in
-# r20 (a4).
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    $stype = $stype || 'common';
-    $stype = 'common' if ( $stype eq 'dual0' );
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "#include <machine/asm.h>\n";
-    print OUT "\n";
-    print OUT "\t.text\n";
-    print OUT "\t.type ${fname},\@function\n";
-    print OUT "\t.ent\t${fname}, 0\n"; # What is this?
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-    print OUT "\tlda\tv0, __NR_${sname}(zero)\n";
-    print OUT "\tbr __syscall_${stype}\n";
-    print OUT "\t.size\t${fname},.-${fname}\n";
-    print OUT "\t.end\t${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/arm/MCONFIG b/klibc/klibc/arch/arm/MCONFIG
deleted file mode 100644 (file)
index fe26b99..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- makefile -*-
-#
-# arch/arm/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-THUMB    = n
-CPU_ARCH := armv4
-CPU_TUNE := strongarm
-
-OPTFLAGS = -Os -march=$(CPU_ARCH) -mtune=$(CPU_TUNE)
-BITSIZE  = 32
-
-ifeq ($(THUMB),y)
-CPU_ARCH := $(CPU_ARCH)t
-OPTFLAGS += -mthumb
-LDFLAGS  += --thumb-entry _start
-endif
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-SHAREDFLAGS = -Ttext 0x01000200
diff --git a/klibc/klibc/arch/arm/Makefile.inc b/klibc/klibc/arch/arm/Makefile.inc
deleted file mode 100644 (file)
index 0603d85..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- makefile -*-
-#
-# arch/arm/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       libgcc/__divsi3.o \
-       libgcc/__modsi3.o \
-       libgcc/__udivsi3.o \
-       libgcc/__umodsi3.o \
-       libgcc/__udivmodsi4.o \
-       libgcc/__divdi3.o \
-       libgcc/__moddi3.o \
-       libgcc/__udivdi3.o \
-       libgcc/__umoddi3.o \
-       libgcc/__udivmoddi4.o \
-       arch/arm/syscall.o
-
-ifeq ($(THUMB),y)
-ARCHOBJS += arch/arm/setjmp-thumb.o
-LIBGCC   =
-else
-ARCHOBJS += arch/arm/setjmp-arm.o
-endif
-
-arch/arm/sysstubs.a: arch/arm/sysstubs.pl
-       mkdir -p arch/arm/sysstubs
-       $(PERL) $< arch/arm/sysstubs
-       $(MAKE) $(patsubst %.S,%.o,$(wildcard arch/arm/sysstubs/*.S))
-       -rm -f $@
-       $(AR) cq $@ arch/arm/sysstubs/*.o
-       $(RANLIB) $@
-
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-archclean:
-       -rm -rf arch/arm/sysstubs
-       -rm -f arch/arm/sysstubs.a
diff --git a/klibc/klibc/arch/arm/crt0.S b/klibc/klibc/arch/arm/crt0.S
deleted file mode 100644 (file)
index fc1104e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# arch/arm/crt0.S
-#
-# void _start(void)
-# {
-#    __libc_init(elf_structure, atexit_ptr);
-# }
-#
-
-       .text
-       .align 4
-       .type _start,#function
-       .globl _start
-
-#ifdef __thumb__
-       .thumb_func
-#endif
-
-_start:        mov     r0, sp
-       mov     r1, #0
-       bl      __libc_init
-
-       .size _start,.-_start
diff --git a/klibc/klibc/arch/arm/setjmp-arm.S b/klibc/klibc/arch/arm/setjmp-arm.S
deleted file mode 100644 (file)
index 1a29ee7..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# arch/arm/setjmp.S
-#
-# setjmp/longjmp for the ARM architecture
-#
-
-#
-# The jmp_buf is assumed to contain the following, in order:
-#              r4
-#              r5
-#              r6
-#              r7
-#              r8
-#              r9
-#              r10
-#              fp
-#              sp
-#              lr
-#
-
-       .text
-       .align 4
-       .globl setjmp
-       .type setjmp, #function
-setjmp:
-       stmia   r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
-       mov     r0, #0
-       mov     pc, lr
-       .size setjmp,.-setjmp
-
-       .text
-       .align 4
-       .globl longjmp
-       .type longjmp, #function
-longjmp:
-       ldmia   r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
-       mov     r0, r1
-       mov     pc, lr
-       .size longjmp,.-longjmp
diff --git a/klibc/klibc/arch/arm/setjmp-thumb.S b/klibc/klibc/arch/arm/setjmp-thumb.S
deleted file mode 100644 (file)
index b581c5f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# arch/arm/setjmp-thumb.S
-#
-# setjmp/longjmp for the ARM/thumb architecture
-#
-
-#
-# The jmp_buf is assumed to contain the following, in order:
-#              lr
-#              r4
-#              r5
-#              r6
-#              r7
-#              r8
-#              r9
-#              r10
-#              fp
-#              sp
-#
-
-       .text
-       .align 4
-       .globl setjmp
-       .type setjmp, #function
-       .thumb_func
-setjmp:
-       mov     r3, lr
-       stmia   r0!, {r3, r4, r5, r6, r7}
-       mov     r3, r8
-       mov     r4, r9
-       mov     r5, r10
-       mov     r6, fp
-       mov     r7, sp
-       stmia   r0!, {r3, r4, r5, r6, r7}
-       mov     r0, #0
-       mov     pc, lr
-       .size setjmp,.-setjmp
-
-       .text
-       .align 4
-       .globl longjmp
-       .type longjmp, #function
-       .thumb_func
-longjmp:
-       mov     r2, r0
-       add     r0, #5*4
-       ldmia   r0!, {r3, r4, r5, r6, r7}
-       mov     r8, r3
-       mov     r9, r4
-       mov     r10, r5
-       mov     fp, r6
-       mov     sp, r7
-       ldmia   r2!, {r3, r4, r5, r6, r7}
-       mov     r0, r1
-       bne     1f
-       mov     r0, #1
-1:     mov     pc, r3
-       .size longjmp,.-longjmp
diff --git a/klibc/klibc/arch/arm/syscall.S b/klibc/klibc/arch/arm/syscall.S
deleted file mode 100644 (file)
index 0e73f68..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * arch/arm/syscall.S
- *
- * System call common handling
- */
-
-       .type   __syscall_common,#function
-       .globl  __syscall_common
-#ifndef __thumb__
-       /* ARM version - this is executed after the swi */
-
-       .align  4
-__syscall_common:
-        cmn     r0, #4096
-        rsbcs  r2, r0, #0
-        ldrcs  r3, 1f
-        mvncs  r0, #0
-        strcs  r2, [r3]
-       ldmfd   sp!,{r4,r5,pc}
-       
-       .align 4        
-1:
-       .word   errno
-
-#else
-       /* Thumb version - must still load r4 and r5 and run swi */
-
-       .thumb_func
-       .align  2
-__syscall_common:
-       ldr     r4, [sp #12]
-       ldr     r5, [sp #16]
-       swi     0
-       ldr     r1, 2f
-       cmp     r0, r1
-       bcc     1f
-       ldr     r1, 3f
-       neg     r2, r0
-       mvn     r0, #0  
-       str     r2, [r1]
-1:
-       pop     {r4,r5,r7,pc}
-
-       .align  4
-2:
-       .word   #-4095
-3:
-       .word   errno
-
-#endif
diff --git a/klibc/klibc/arch/arm/sysstub.ph b/klibc/klibc/arch/arm/sysstub.ph
deleted file mode 100644 (file)
index 256ea3d..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# -*- perl -*-
-#
-# arch/arm/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print  OUT "#include <asm/unistd.h>\n";
-       
-    print  OUT "\t.text\n";
-    print  OUT "\t.type\t${fname}, #function\n";
-    print  OUT "\t.globl ${fname}\n";
-    print  OUT "\t.align\t4\n";
-
-    print  OUT "#ifndef __thumb__\n";
-
-    # ARM version first
-    print  OUT "${fname}:\n";
-    print  OUT "\tstmfd\tsp!,{r4,r5,lr}\n";
-    print  OUT "\tldr\tr4,[sp,#12]\n";
-    print  OUT "\tldr\tr5,[sp,#16]\n";
-    print  OUT "\tswi\t# __NR_${sname}\n";
-    print  OUT "\tb\t__syscall_common\n";
-
-    print  OUT "#else\n";
-
-    # Thumb version
-    print  OUT "\t.thumb_func\n";
-    print  OUT "${fname}:\n";
-    print  OUT "\tpush\t{r4,r5,r7,pc}\n";
-    print  OUT "\tmov\tr7, # __NR_${sname}\n";
-    print  OUT "\tb\t__syscall_common\n";
-    
-    print  OUT "#endif\n";
-
-    print  OUT "\t.size\t__syscall${i},.-__syscall${i}\n";
-}
-
-1;
diff --git a/klibc/klibc/arch/cris/MCONFIG b/klibc/klibc/arch/cris/MCONFIG
deleted file mode 100644 (file)
index 2762494..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- makefile -*-
-#
-# arch/cris/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os -fomit-frame-pointer
-BITSIZE  = 32
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# 224 MB - normal binaries start at 0
-# (lib?)gcc on cris seems to insist on producing .init and .fini sections
-SHAREDFLAGS     = --section-start .init=0x0e000100
-
-# The CRIS compiler needs an -iprefix to find libgcc includes when
-# nostdinc is used. It also needs -mlinux to compile linux applications.
-INCLUDE_PREFIX  = $(shell $(CC) -print-libgcc-file-name | sed -e s/libgcc.a//)
-ARCHREQFLAGS = -iprefix $(INCLUDE_PREFIX) -mlinux
-
-# Special flags needed for linking
-LDFLAGS        += -mcrislinux
diff --git a/klibc/klibc/arch/cris/Makefile.inc b/klibc/klibc/arch/cris/Makefile.inc
deleted file mode 100644 (file)
index 75fa17b..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- makefile -*-
-#
-# arch/cris/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/__Umod.o \
-       arch/$(ARCH)/__Udiv.o \
-       arch/$(ARCH)/__Mod.o \
-       arch/$(ARCH)/__Div.o \
-       arch/$(ARCH)/__negdi2.o \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       libgcc/__divdi3.o \
-       libgcc/__moddi3.o \
-       libgcc/__udivdi3.o \
-       libgcc/__umoddi3.o \
-       libgcc/__udivmoddi4.o
-
-arch/$(ARCH)/__Umod.o: arch/$(ARCH)/divide.c
-       $(CC) $(CFLAGS) -DSIGNED=0 -DREM=1 -DBITS=32 -DNAME=__Umod -c -o $@ $<
-arch/$(ARCH)/__Udiv.o: arch/$(ARCH)/divide.c
-       $(CC) $(CFLAGS) -DSIGNED=0 -DREM=0 -DBITS=32 -DNAME=__Udiv -c -o $@ $<
-arch/$(ARCH)/__Mod.o: arch/$(ARCH)/divide.c
-       $(CC) $(CFLAGS) -DSIGNED=1 -DREM=1 -DBITS=32 -DNAME=__Mod -c -o $@ $<
-arch/$(ARCH)/__Div.o: arch/$(ARCH)/divide.c
-       $(CC) $(CFLAGS) -DSIGNED=1 -DREM=0 -DBITS=32 -DNAME=__Div -c -o $@ $<
-
-archclean:
diff --git a/klibc/klibc/arch/cris/__negdi2.S b/klibc/klibc/arch/cris/__negdi2.S
deleted file mode 100644 (file)
index 3cca9ed..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * arch/cris/__negdi2.c
- */
-
-/*
- * In 2's complement arithmetric, -x == (~x + 1), so
- * -{h,l} = (~{h,l} + {0,1)
- * -{h,l} = {~h,~l} + {0,1}
- * -{h,l} = {~h + cy, ~l + 1}
- * ... where cy = (l == 0)
- * -{h,l} = {~h + cy, -l}
- */
-
-       .text
-       .balign 4
-       .type   __negdi2,@function
-       .globl  __negdi2
-__negdi2:
-       neg.d   $r10,$r10
-       seq     $r12
-       not     $r11
-       ret
-         add.d $r12,$r11
-
-       .size __negdi2, .-__negdi2
diff --git a/klibc/klibc/arch/cris/crt0.S b/klibc/klibc/arch/cris/crt0.S
deleted file mode 100644 (file)
index 989c82b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# arch/cris/crt0.S
-#
-# Does arch-specific initialization and invokes __libc_init
-# with the appropriate arguments.
-#
-# See __static_init.c or __shared_init.c for the expected
-# arguments.
-#
-
-       .text
-       .balign 4
-       .type   _start,@function
-       .globl  _start
-_start:
-       /* Save the address of the ELF argument array */
-       move.d  $sp,$r10        /* Address of ELF arguments */
-
-       /* atexit() function (assume null) */
-       moveq   0,$r11
-       
-       /* Set up a dummy stack frame to keep gcc from getting confused */
-       push    $r11
-       push    $r11
-       jump    __libc_init
-
-       .size _start, .-_start
-
diff --git a/klibc/klibc/arch/cris/divide.c b/klibc/klibc/arch/cris/divide.c
deleted file mode 100644 (file)
index 29081dc..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#include <stdint.h>
-#include <signal.h>
-
-#if BITS == 64
-typedef uint64_t unum;
-typedef int64_t  snum;
-#else
-typedef uint32_t unum;
-typedef int32_t  snum;
-#endif
-
-#ifdef SIGNED
-typedef snum xnum;
-#else
-typedef unum xnum;
-#endif
-
-#ifdef __cris__
-static inline unum __attribute__((const)) dstep(unum rs, unum rd) {
-  asm("dstep %1,%0" : "+r" (rd) : "r" (rs));
-  return rd;
-}
-
-static inline unum __attribute__((const)) lz(unum rs) {
-  unum rd;
-  asm("lz %1,%0" : "=r" (rd) : "r" (rs));
-  return rd;
-}
-
-#else
-/* For testing */
-static inline unum __attribute__ ((const)) dstep(unum rs, unum rd) {
-  rd <<= 1;
-  if ( rd >= rs )
-    rd -= rs;
-
-  return rd;
-}
-
-static inline unum __attribute__((const)) lz(unum rs) {
-  unum rd = 0;
-  while ( rs >= 0x7fffffff ) {
-    rd++;
-    rs <<= 1;
-  }
-  return rd;
-}
-
-#endif
-
-xnum NAME (unum num, unum den)
-{
-  unum quot = 0, qbit = 1;
-  int minus = 0;
-  xnum v;
-  
-  if ( den == 0 ) {
-    raise(SIGFPE);
-    return 0;                  /* If signal ignored... */
-  }
-
-  if (den == 1) return (xnum)(REM ? 0 : num);
-
-#if SIGNED
-  if ( (snum)(num^den) < 0 )
-    minus = 1;
-  if ( (snum)num < 0 ) num = -num;
-  if ( (snum)den < 0 ) den = -den;
-#endif
-
-  den--;
-
-
-  /* Left-justify denominator and count shift */
-  while ( (snum)den >= 0 ) {
-    den <<= 1;
-    qbit <<= 1;
-  }
-
-  while ( qbit ) {
-    if ( den <= num ) {
-      num -= den;
-      quot += qbit;
-    }
-    den >>= 1;
-    qbit >>= 1;
-  }
-
-  v = (xnum)(REM ? num : quot);
-  if ( minus ) v = -v;
-  return v;
-}
diff --git a/klibc/klibc/arch/cris/setjmp.S b/klibc/klibc/arch/cris/setjmp.S
deleted file mode 100644 (file)
index 4316241..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# arch/cris/setjmp.S
-#
-# setjmp/longjmp for the cris architecture
-#
-
-#
-# The jmp_buf is assumed to contain the following, in order:
-#      $r8..$r0        (in that order)
-#      $sp     ($r14)
-#      return address
-#
-
-       .text
-       .balign 4
-       .globl  setjmp
-       .type   setjmp, @function
-setjmp:
-       movem   $r8,[$r10+]             /* Save $r8..$r0 at $r10... */
-       move.d  $sp,[$r10+]
-       move    $srp,[$r10]
-       ret
-         moveq 0,$r10
-
-       .size setjmp,.-setjmp
-
-       .text
-       .balign 4
-       .globl  longjmp
-       .type   longjmp, @function
-longjmp:
-       movem   [$r10+],$r8             /* Load $r8..$r0 from $r10... */
-       move.d  [$r10+],$sp
-       jump    [$r10]
-       move.d $r11,$r10
-       
-       .size longjmp,.-longjmp
diff --git a/klibc/klibc/arch/cris/syscall.S b/klibc/klibc/arch/cris/syscall.S
deleted file mode 100644 (file)
index d71495a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * arch/cris/syscall.S
- *
- * On cris, r9 contains the syscall number (set by generated stub);
- * r10..r13 contain arguments 0-3 per the standard calling convention,
- * and arguments 4-5 are passed in $mof and $srp; however, we have
- * to save $srp around the system call.
- */
-
-       .section ".text","ax"
-       .balign 4
-       .globl  __syscall_common
-       .type   __syscall_common,@function
-__syscall_common:
-       push    $srp
-       move    [$sp+4],$mof
-       move    [$sp+8],$srp
-       break   13
-
-       cmps.w  -4096,$r10
-       blo     1f
-       neg.d   $r10,$r11
-       move.d  $r11,[errno]
-       moveq   -1,$r10
-1:
-       pop     $srp
-       ret
-       nop
-
-       .size   __syscall_common,.-__syscall_common
diff --git a/klibc/klibc/arch/cris/sysstub.ph b/klibc/klibc/arch/cris/sysstub.ph
deleted file mode 100644 (file)
index 182ad73..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*- perl -*-
-#
-# arch/cris/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.text\n";
-    print OUT "\t.type\t${fname},\@function\n";
-    print OUT "\t.globl\t${fname}\n";
-    print OUT "\t.balign\t4\n";
-    print OUT "${fname}:\n";
-    print OUT "#if __NR_${sname} <= 31\n";
-    print OUT "\t  moveq\t__NR_${sname}, \$r9\n";
-    print OUT "#else\n";
-    print OUT "\t  move.d\t__NR_${sname}, \$r9\n";
-    print OUT "#endif\n";
-    print OUT "\tjump\t__syscall_common\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/i386/MCONFIG b/klibc/klibc/arch/i386/MCONFIG
deleted file mode 100644 (file)
index ecd1307..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- makefile -*-
-#
-# arch/i386/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-# Enable this to compile with register parameters; only safe for
-# gcc >= 3
-REGPARM_OPT := -mregparm=3 -D_REGPARM=3
-
-gcc_major := $(shell echo __GNUC__ | $(CC) -E -xc - | tail -n 1)
-
-OPTFLAGS  = -march=i386 -Os -g -fomit-frame-pointer
-LDFLAGS   = -m elf_i386
-
-ifneq ($(gcc_major),2)
-REQFLAGS += $(REGPARM_OPT)
-OPTFLAGS += -falign-functions=0 -falign-jumps=0 -falign-loops=0
-ARCHREQFLAGS += -m32
-else
-OPTFLAGS += -malign-functions=0 -malign-jumps=0 -malign-loops=0
-endif
-
-BITSIZE  = 32
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# 96 MB - normal binaries start at 128 MB
-SHAREDFLAGS    = -Ttext 0x06000200
diff --git a/klibc/klibc/arch/i386/Makefile.inc b/klibc/klibc/arch/i386/Makefile.inc
deleted file mode 100644 (file)
index 80344bd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- makefile -*-
-#
-# arch/i386/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/exits.o \
-       arch/$(ARCH)/socketcall.o \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       arch/$(ARCH)/open.o \
-       arch/$(ARCH)/sigreturn.o \
-       arch/$(ARCH)/libgcc/__ashldi3.o \
-       arch/$(ARCH)/libgcc/__ashrdi3.o \
-       arch/$(ARCH)/libgcc/__lshrdi3.o \
-       arch/$(ARCH)/libgcc/__muldi3.o \
-       arch/$(ARCH)/libgcc/__negdi2.o \
-       libgcc/__divdi3.o \
-       libgcc/__moddi3.o \
-       libgcc/__udivdi3.o \
-       libgcc/__umoddi3.o \
-       libgcc/__udivmoddi4.o
-
-archclean:
diff --git a/klibc/klibc/arch/i386/crt0.S b/klibc/klibc/arch/i386/crt0.S
deleted file mode 100644 (file)
index fb02c69..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# arch/i386/crt0.S
-#
-# Does arch-specific initialization and invokes __libc_init
-# with the appropriate arguments.
-#
-# See __static_init.c or __shared_init.c for the expected
-# arguments.
-#
-       
-       .text
-       .align 4
-       .type _start,@function
-       .globl _start
-_start:
-       # Save the address of the ELF argument array
-       movl %esp,%eax          # Address of ELF arguments
-       # Set up a faux stack frame for the benefit of gdb
-       xorl %ebp,%ebp
-       push %ebp               # Keep gdb from getting confused
-       push %ebp               # Keep gdb from getting confused
-       # Push the arguments and called __libc_init()
-#ifndef _REGPARM
-       push %edx               # atexit() function
-       push %eax               # ELF array
-#endif
-       call __libc_init
-       # If __libc_init returns, problem...    
-       hlt
-       
-       .size _start, .-_start
-
diff --git a/klibc/klibc/arch/i386/exits.S b/klibc/klibc/arch/i386/exits.S
deleted file mode 100644 (file)
index ed23d98..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# exit and _exit get included in *every* program, and gcc generates
-# horrible code for them.  Yes, this only saves a few bytes, but
-# it does it in every program.
-#
-
-#include <asm/unistd.h>
-
-       .data
-       .align 4
-       .globl __exit_handler
-       .type __exit_handler,@object
-__exit_handler:
-       .long _exit
-       .size __exit_handler,4
-
-       .text
-       .align 4
-       .globl exit
-       .type exit,@function
-exit:
-       jmp *(__exit_handler)
-       .size exit,.-exit
-
-       /* No need to save any registers... we're exiting! */
-       .text
-       .align 4
-       .globl _exit
-       .type _exit,@function
-_exit:
-#ifdef _REGPARM
-       movl %eax,%ebx
-#else
-       popl %ebx
-       popl %ebx
-#endif
-#if __NR_exit == 1
-       xorl %eax,%eax
-       incl %eax
-#else
-       movl $__NR_exit,%eax
-#endif
-       int $0x80
-       hlt
-       .size _exit,.-exit
diff --git a/klibc/klibc/arch/i386/libgcc/__ashldi3.S b/klibc/klibc/arch/i386/libgcc/__ashldi3.S
deleted file mode 100644 (file)
index 61982eb..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/i386/libgcc/__ashldi3.S
- *
- * 64-bit shl
- */
-       .text
-       .align 4
-       .globl __ashldi3
-       .type __ashldi3,@function
-__ashldi3:
-#ifndef _REGPARM
-       movl  4(%esp),%eax
-       movl  8(%esp),%edx
-       movb  12(%esp),%cl
-#endif
-       cmpb  $32,%cl
-       jae   1f
-       
-       shldl %cl,%eax,%edx
-       shl   %cl,%eax
-       ret
-       
-1:
-       xorl  %edx,%edx
-       shl   %cl,%eax
-       xchgl %edx,%eax
-       ret
-
-       .size __ashldi3,.-__ashldi3
diff --git a/klibc/klibc/arch/i386/libgcc/__ashrdi3.S b/klibc/klibc/arch/i386/libgcc/__ashrdi3.S
deleted file mode 100644 (file)
index 4ac2af6..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/i386/libgcc/__ashrdi3.S
- *
- * 64-bit sar
- */
-       .text
-       .align 4
-       .globl __ashrdi3
-       .type __ashrdi3,@function
-__ashrdi3:
-#ifndef _REGPARM
-       movl  4(%esp),%eax
-       movl  8(%esp),%edx
-       movb  12(%esp),%cl
-#endif
-       cmpb  $32,%cl
-       jae   1f
-       
-       shrdl %cl,%edx,%eax
-       sarl  %cl,%edx
-       ret
-       
-1:
-       sarl  %cl,%edx
-       movl  %edx,%eax
-       cdq
-       ret
-
-       .size __ashrdi3,.-__ashrdi3
diff --git a/klibc/klibc/arch/i386/libgcc/__lshrdi3.S b/klibc/klibc/arch/i386/libgcc/__lshrdi3.S
deleted file mode 100644 (file)
index 730ee43..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/i386/libgcc/__lshrdi3.S
- *
- * 64-bit shr
- */
-       .text
-       .align 4
-       .globl __lshrdi3
-       .type __lshrdi3,@function
-__lshrdi3:
-#ifndef _REGPARM
-       movl  4(%esp),%eax
-       movl  8(%esp),%edx
-       movb  12(%esp),%cl
-#endif
-       cmpb  $32,%cl
-       jae   1f
-       
-       shrdl %cl,%edx,%eax
-       shrl  %cl,%edx
-       ret
-       
-1:
-       shrl  %cl,%edx
-       xorl  %eax,%eax
-       xchgl %edx,%eax
-       ret
-
-       .size __lshrdi3,.-__lshrdi3
diff --git a/klibc/klibc/arch/i386/libgcc/__muldi3.S b/klibc/klibc/arch/i386/libgcc/__muldi3.S
deleted file mode 100644 (file)
index 81e23b1..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * arch/i386/libgcc/__muldi3.S
- *
- * 64*64 = 64 bit unsigned multiplication
- */
-
-       .text
-       .align 4
-       .globl __muldi3
-       .type __muldi3,@function
-__muldi3:
-       push  %esi
-#ifndef _REGPARM
-       movl  8(%esp),%eax
-       movl  %eax,%esi
-       movl  16(%esp),%ecx
-       mull  %ecx
-       imull 12(%esp),%ecx
-       imull 20(%esp),%esi
-       addl  %ecx,%edx
-       addl  %esi,%edx
-#else
-       movl  %eax,%esi
-       push  %edx
-       mull  %ecx
-       imull 8(%esp),%esi
-       addl  %esi,%edx
-       pop   %esi
-       imull %esi,%ecx
-       addl  %ecx,%edx
-#endif 
-       pop   %esi
-       ret
-       .size __muldi3,.-__muldi3
diff --git a/klibc/klibc/arch/i386/libgcc/__negdi2.S b/klibc/klibc/arch/i386/libgcc/__negdi2.S
deleted file mode 100644 (file)
index c4f2cd5..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * arch/i386/libgcc/__negdi2.S
- *
- * 64-bit negation
- */
-       
-       .text
-       .align 4
-       .globl __negdi2
-       .type __negdi2,@function
-__negdi2:
-#ifndef _REGPARM
-       movl 4(%esp),%eax
-       movl 8(%esp),%edx
-#endif
-       negl %edx
-       negl %eax
-       sbbl $0,%edx
-       ret
-
-       .size __negdi2,.-__negdi2
diff --git a/klibc/klibc/arch/i386/open.S b/klibc/klibc/arch/i386/open.S
deleted file mode 100644 (file)
index 54dd615..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/i386/open.S
- *
- * Handle the open() system call - oddball due to the varadic
- * prototype, which forces the use of the cdecl calling convention,
- * and the need for O_LARGEFILE.
- */
-
-#include <asm/unistd.h>
-
-/* <asm/fcntl.h>, despite the name, isn't assembly-safe */
-#define O_LARGEFILE     0100000
-       
-       .globl  open
-       .type   open,@function
-
-open:
-#ifdef _REGPARM
-       movl    4(%esp),%eax
-       movl    8(%esp),%edx
-       movl    12(%esp),%ecx
-       orl     $O_LARGEFILE,%edx
-#else
-       orl     $O_LARGEFILE,8(%esp)
-#endif
-       pushl   $__NR_open
-       jmp     __syscall_common
-
-       .size   open,.-open
diff --git a/klibc/klibc/arch/i386/setjmp.S b/klibc/klibc/arch/i386/setjmp.S
deleted file mode 100644 (file)
index 2f3033f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# arch/i386/setjmp.S
-#
-# setjmp/longjmp for the i386 architecture
-#
-
-#
-# The jmp_buf is assumed to contain the following, in order:
-#      %ebx
-#      %esp
-#      %ebp
-#      %esi
-#      %edi
-#      <return address>
-#
-
-       .text
-       .align 4
-       .globl setjmp
-       .type setjmp, @function
-setjmp:
-#ifdef _REGPARM
-       movl %eax,%edx
-#else
-       movl 4(%esp),%edx
-#endif 
-       popl %ecx                       # Return address, and adjust the stack
-       xorl %eax,%eax                  # Return value
-       movl %ebx,(%edx)
-       movl %esp,4(%edx)               # Post-return %esp!
-       pushl %ecx                      # Make the call/return stack happy
-       movl %ebp,8(%edx)
-       movl %esi,12(%edx)
-       movl %edi,16(%edx)
-       movl %ecx,20(%edx)              # Return address
-       ret
-
-       .size setjmp,.-setjmp
-
-       .text
-       .align 4
-       .globl longjmp
-       .type longjmp, @function
-longjmp:
-#ifdef _REGPARM
-       xchgl %eax,%edx
-#else
-       movl 4(%esp),%edx               # jmp_ptr address
-       movl 8(%esp),%eax               # Return value
-#endif
-       movl (%edx),%ebx
-       movl 4(%edx),%esp
-       movl 8(%edx),%ebp
-       movl 12(%edx),%esi
-       movl 16(%edx),%edi
-       jmp *20(%edx)
-
-       .size longjmp,.-longjmp
diff --git a/klibc/klibc/arch/i386/sigreturn.S b/klibc/klibc/arch/i386/sigreturn.S
deleted file mode 100644 (file)
index f2a3241..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# arch/i386/sigreturn.S
-#
-
-#include <asm/unistd.h>
-
-       .text
-       .align 4
-       .globl __sigreturn
-       .type __sigreturn,@function
-__sigreturn:
-       pop     %eax            # Have no idea why this is needed...
-       movl    $__NR_sigreturn,%eax
-       int     $0x80
-       .size __sigreturn,.-__sigreturn
diff --git a/klibc/klibc/arch/i386/socketcall.S b/klibc/klibc/arch/i386/socketcall.S
deleted file mode 100644 (file)
index b13d204..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# socketcall.S
-#
-# On i386, the main (only?) user of socketcall(2), the memory array
-# socketcall(2) needs is conveniently already assembled for us on
-# the stack.  Capitalize on that to make a common socketcall stub.
-#
-
-#include <asm/unistd.h>
-
-#ifdef __i386__
-
-       .text
-       .align 4
-       .globl __socketcall_common
-       .type __socketcall_common, @function
-
-__socketcall_common:
-       pushl   %ebx
-
-       movzbl  %al,%ebx        # The socketcall number is passed in in %al
-       leal    8(%esp),%ecx    # Argument pointer
-       movl    $__NR_socketcall,%eax
-       int     $0x80
-       
-       cmpl    $-4096,%eax     # Error return?
-       
-       popl    %ebx
-       
-       jb      1f
-       
-       negl    %eax
-       movl    %eax,errno
-       orl     $-1,%eax        # Return -1
-1:
-       ret
-
-       .size __socketcall_common,.-__socketcall_common
-       
-#endif
-
-       
diff --git a/klibc/klibc/arch/i386/syscall.S b/klibc/klibc/arch/i386/syscall.S
deleted file mode 100644 (file)
index 0634e82..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * arch/i386/syscall.S
- *
- * Common tail-handling code for system calls.  Because of __syscalldecl
- * we are using the stack even on if we are compiling with regparm.
- *
- * The arguments are on the stack; the system call number in %eax.
- */
-
-#define ARG(n) (4*n+20)(%esp)
-       
-       .text
-       .align  4
-       .globl  __syscall_common
-       .type   __syscall_common,@function
-__syscall_common:
-#ifdef _REGPARM
-       xchgl   %ebx,(%esp)
-#else
-       popl    %eax
-       pushl   %ebx
-#endif
-       pushl   %esi
-       pushl   %edi
-       pushl   %ebp
-
-#ifdef _REGPARM
-       xchgl   %eax,%ebx
-       xchgl   %ecx,%edx
-       movl    ARG(0),%esi
-       movl    ARG(1),%edi
-       movl    ARG(2),%ebp
-#else
-       movl    ARG(0),%ebx             # Syscall arguments
-       movl    ARG(1),%ecx
-       movl    ARG(2),%edx
-       movl    ARG(3),%esi
-       movl    ARG(4),%edi
-       movl    ARG(5),%ebp
-#endif
-       int     $0x80
-
-       cmpl    $-4096,%eax
-
-       popl    %ebp
-       popl    %edi
-       popl    %esi
-       popl    %ebx
-
-       jb      1f
-
-       # Error return, must set errno
-       negl    %eax
-       movl    %eax,errno
-       orl     $-1,%eax                # Return -1
-
-1:
-       ret
-
-       .size   __syscall_common,.-__syscall_common
diff --git a/klibc/klibc/arch/i386/sysstub.ph b/klibc/klibc/arch/i386/sysstub.ph
deleted file mode 100644 (file)
index e2649e2..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- perl -*-
-#
-# arch/i386/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.type ${fname},\@function\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-
-    if ( $stype eq 'varadic' ) {
-       print OUT "#ifdef _REGPARM\n";
-       print OUT "\tmovl  4(%esp),%eax\n";
-       print OUT "\tmovl  8(%esp),%edx\n";
-       print OUT "\tmovl 12(%esp),%ecx\n";
-       print OUT "#endif\n";
-    }
-
-    print OUT "\tpushl \$__NR_${sname}\n";
-    print OUT "\tjmp __syscall_common\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/ia64/MCONFIG b/klibc/klibc/arch/ia64/MCONFIG
deleted file mode 100644 (file)
index 36b30ff..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- makefile -*-
-#
-# arch/ia64/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os
-BITSIZE  = 64
diff --git a/klibc/klibc/arch/ia64/Makefile.inc b/klibc/klibc/arch/ia64/Makefile.inc
deleted file mode 100644 (file)
index 6363c1f..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- makefile -*-
-#
-# arch/ia64/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/vfork.o \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/pipe.o \
-       arch/$(ARCH)/syscall.o \
-       libgcc/__divdi3.o \
-       libgcc/__divsi3.o \
-       libgcc/__udivdi3.o \
-       libgcc/__udivsi3.o \
-       libgcc/__umodsi3.o \
-       libgcc/__umoddi3.o \
-       libgcc/__udivmodsi4.o \
-       libgcc/__udivmoddi4.o
-
-ARCHSOOBJS = $(patsubst %o,%.lo,%(ARCHOBJS))
-
-archclean:
diff --git a/klibc/klibc/arch/ia64/crt0.S b/klibc/klibc/arch/ia64/crt0.S
deleted file mode 100644 (file)
index 4b12815..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#include <asm/fpu.h>
-       
-       .align 32
-       .global _start
-
-       .proc _start
-       .type _start,@function
-_start:        
-       .prologue
-       .save rp, r0
-
-       alloc r2 = ar.pfs,0,0,2,0
-       movl r3 = FPSR_DEFAULT
-       ;;
-       adds out0= 16,sp    /* argc pointer */
-       movl gp = @gprel(0f)
-0:     mov r9 = ip
-       ;;
-       sub gp = r9, gp     /* back-compute gp value */
-
-       .body
-       br.call.sptk.few rp = __libc_init
-       ;;
-       break 0             /* break miserably if we ever return */
-
-       .endp _start
diff --git a/klibc/klibc/arch/ia64/pipe.c b/klibc/klibc/arch/ia64/pipe.c
deleted file mode 100644 (file)
index 87a6981..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * pipe.c
- */
-
-#include <sys/syscall.h>
-#include <klibc/archsys.h>
-
-#define ASM_CLOBBERS ,"out2", "out3", "out4", "out5", "out6", "out7",    \
-   /* Non-stacked integer registers, minus r8, r9, r10, r15.  */       \
-  "r2", "r3", "r11", "r12", "r13", "r14", "r16", "r17", "r18",         \
-  "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27",       \
-  "r28", "r29", "r30", "r31",                                          \
-  /* Predicate registers.  */                                          \
-  "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15",    \
-  /* Non-rotating fp registers.  */                                    \
-  "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",    \
-  /* Branch registers.  */                                             \
-  "b6", "b7"
-
-int pipe(int *filedes)
-{
-       register long _r8 asm("r8");
-       register long _r9 asm("r9");
-       register long _r10 asm("r10");
-       register long _r15 asm("r15") = __NR_pipe;
-       register long _out0 asm ("out0") = (long)filedes;
-       long _retval;
-       __asm __volatile (__IA64_BREAK
-                         : "=r" (_r8), "=r" (_r10), "=r" (_r15),
-                         "=r" (_out0), "=r" (_r9)
-                         : "2" (_r15), "3" (_out0)
-                         : "memory" ASM_CLOBBERS);
-       if (_r10 == -1) {
-               errno = _r8;
-               _retval = -1;
-       } else {
-               filedes[0] = _r8;
-               filedes[1] = _r9;
-               _retval = 0;
-       }
-       return _retval;
-}
diff --git a/klibc/klibc/arch/ia64/setjmp.S b/klibc/klibc/arch/ia64/setjmp.S
deleted file mode 100644 (file)
index 7859ba4..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * IA-64 specific setjmp/longjmp routines
- *
- * Inspired by setjmp.s from the FreeBSD kernel.
- */
-
-#define        J_UNAT          0
-#define        J_NATS          0x8
-#define        J_PFS           0x10
-#define        J_BSP           0x18
-#define        J_RNAT          0x20
-#define        J_PREDS         0x28
-#define        J_LC            0x30
-#define        J_R4            0x38
-#define        J_R5            0x40
-#define        J_R6            0x48
-#define        J_R7            0x50
-#define        J_SP            0x58
-#define        J_F2            0x60
-#define        J_F3            0x70
-#define        J_F4            0x80
-#define        J_F5            0x90
-#define        J_F16           0xa0
-#define        J_F17           0xb0
-#define        J_F18           0xc0
-#define        J_F19           0xd0
-#define        J_F20           0xe0
-#define        J_F21           0xf0
-#define        J_F22           0x100
-#define        J_F23           0x110
-#define        J_F24           0x120
-#define        J_F25           0x130
-#define        J_F26           0x140
-#define        J_F27           0x150
-#define        J_F28           0x160
-#define        J_F29           0x170
-#define        J_F30           0x180
-#define        J_F31           0x190
-#define        J_FPSR          0x1a0
-#define        J_B0            0x1a8
-#define        J_B1            0x1b0
-#define        J_B2            0x1b8
-#define        J_B3            0x1c0
-#define        J_B4            0x1c8
-#define        J_B5            0x1d0
-#define        J_SIGMASK       0x1d8
-#define        J_SIGSET        0x1e0
-#define        J_GP            0x1f0
-       
-// int setjmp(struct jmp_buffer *)
-//
-//  Setup a non-local goto.
-//
-// Description:
-//
-//  SetJump stores the current register set in the area pointed to
-//  by "save".  It returns zero.  Subsequent calls to "LongJump" will
-//  restore the registers and return non-zero to the same location.
-//
-// On entry, r32 contains the pointer to the jmp_buffer
-//
-       .align 32
-       .global setjmp
-       .proc setjmp
-setjmp:
-    //
-    //  Make sure buffer is aligned at 16byte boundary
-    //
-    add     r10 = -0x10,r0  ;;  // mask the lower 4 bits
-    and     r32 = r32, r10;; 
-    add     r32 = 0x10, r32;;   // move to next 16 byte boundary
-
-    add     r10 = J_PREDS, r32  // skip Unats & pfs save area
-    add     r11 = J_BSP, r32
-    //
-    //  save immediate context
-    //
-    mov     r2 = ar.bsp         // save backing store pointer
-    mov     r3 = pr             // save predicates
-    flushrs
-    ;;
-    //
-    // save user Unat register
-    //
-    mov     r16 = ar.lc         // save loop count register
-    mov     r14 = ar.unat       // save user Unat register
-
-    st8     [r10] = r3, J_LC-J_PREDS
-    st8     [r11] = r2, J_R4-J_BSP
-    ;;
-    st8     [r10] = r16, J_R5-J_LC
-    st8     [r32] = r14, J_NATS // Note: Unat at the 
-                                // beginning of the save area
-    mov     r15 = ar.pfs
-    ;;
-    //
-    //  save preserved general registers & NaT's
-    //
-    st8.spill   [r11] = r4, J_R6-J_R4
-    ;;
-    st8.spill   [r10] = r5, J_R7-J_R5 
-    ;;
-    st8.spill   [r11] = r6, J_SP-J_R6
-    ;;
-    st8.spill   [r10] = r7, J_F3-J_R7 
-    ;;
-    st8.spill   [r11] = sp, J_F2-J_SP
-    ;;
-    //
-    // save spilled Unat and pfs registers
-    //
-    mov     r2 = ar.unat        // save Unat register after spill
-    ;;
-    st8     [r32] = r2, J_PFS-J_NATS    // save unat for spilled regs
-    ;;
-    st8     [r32] = r15         // save pfs
-    //
-    //  save floating registers 
-    //
-    stf.spill   [r11] = f2, J_F4-J_F2
-    stf.spill   [r10] = f3, J_F5-J_F3 
-    ;;
-    stf.spill   [r11] = f4, J_F16-J_F4
-    stf.spill   [r10] = f5, J_F17-J_F5 
-    ;;
-    stf.spill   [r11] = f16, J_F18-J_F16
-    stf.spill   [r10] = f17, J_F19-J_F17 
-    ;;
-    stf.spill   [r11] = f18, J_F20-J_F18
-    stf.spill   [r10] = f19, J_F21-J_F19 
-    ;;
-    stf.spill   [r11] = f20, J_F22-J_F20
-    stf.spill   [r10] = f21, J_F23-J_F21 
-    ;;
-    stf.spill   [r11] = f22, J_F24-J_F22
-    stf.spill   [r10] = f23, J_F25-J_F23 
-    ;;
-    stf.spill   [r11] = f24, J_F26-J_F24
-    stf.spill   [r10] = f25, J_F27-J_F25 
-    ;;
-    stf.spill   [r11] = f26, J_F28-J_F26
-    stf.spill   [r10] = f27, J_F29-J_F27 
-    ;;
-    stf.spill   [r11] = f28, J_F30-J_F28
-    stf.spill   [r10] = f29, J_F31-J_F29 
-    ;;
-    stf.spill   [r11] = f30, J_FPSR-J_F30
-    stf.spill   [r10] = f31, J_B0-J_F31     // size of f31 + fpsr
-    //
-    // save FPSR register & branch registers
-    //
-    mov     r2 = ar.fpsr    // save fpsr register
-    mov     r3 = b0 
-    ;;
-    st8     [r11] = r2, J_B1-J_FPSR
-    st8     [r10] = r3, J_B2-J_B0
-    mov     r2 = b1
-    mov     r3 = b2 
-    ;;
-    st8     [r11] = r2, J_B3-J_B1
-    st8     [r10] = r3, J_B4-J_B2
-    mov     r2 = b3
-    mov     r3 = b4 
-    ;;
-    st8     [r11] = r2, J_B5-J_B3
-    st8     [r10] = r3
-    mov     r2 = b5 
-    ;;
-    st8     [r11] = r2
-    ;;
-    //
-    // return
-    //
-    mov     r8 = r0         // return 0 from setjmp
-    mov     ar.unat = r14   // restore unat
-    br.ret.sptk b0
-    .endp setjmp
-
-//
-// void longjmp(struct jmp_buffer *, int val)
-//
-//  Perform a non-local goto.
-//
-// Description:
-//
-//  LongJump initializes the register set to the values saved by a
-//  previous 'SetJump' and jumps to the return location saved by that
-//  'SetJump'.  This has the effect of unwinding the stack and returning
-//  for a second time to the 'SetJump'.
-//
-       
-       .align 32
-       .global longjmp
-       .proc longjmp
-longjmp:
-    //
-    //  Make sure buffer is aligned at 16byte boundary
-    //
-    add     r10 = -0x10,r0  ;;  // mask the lower 4 bits
-    and     r32 = r32, r10;; 
-    add     r32 = 0x10, r32;;   // move to next 16 byte boundary
-
-    //
-    // caching the return value as we do invala in the end
-    //
-    mov     r8 = r33            // return value
-
-    //
-    //  get immediate context
-    //
-    mov     r14 = ar.rsc        // get user RSC conf 
-    add     r10 = J_PFS, r32    // get address of pfs
-    add     r11 = J_NATS, r32
-    ;;
-    ld8     r15 = [r10], J_BSP-J_PFS    // get pfs
-    ld8     r2 = [r11], J_LC-J_NATS     // get unat for spilled regs
-    ;;
-    mov     ar.unat = r2
-    ;;
-    ld8     r16 = [r10], J_PREDS-J_BSP  // get backing store pointer
-    mov     ar.rsc = r0         // put RSE in enforced lazy 
-    mov     ar.pfs = r15
-    ;;
-    
-    //
-    // while returning from longjmp the BSPSTORE and BSP needs to be
-    // same and discard all the registers allocated after we did
-    // setjmp. Also, we need to generate the RNAT register since we
-    // did not flushed the RSE on setjmp.
-    //
-    mov     r17 = ar.bspstore   // get current BSPSTORE
-    ;;
-    cmp.ltu p6,p7 = r17, r16    // is it less than BSP of 
-(p6)    br.spnt.few .flush_rse
-    mov     r19 = ar.rnat       // get current RNAT
-    ;;
-    loadrs                      // invalidate dirty regs
-    br.sptk.many    .restore_rnat       // restore RNAT
-
-.flush_rse:
-    flushrs
-    ;;
-    mov     r19 = ar.rnat       // get current RNAT
-    mov     r17 = r16           // current BSPSTORE
-    ;;
-.restore_rnat:
-    //
-    // check if RNAT is saved between saved BSP and curr BSPSTORE
-    //
-    mov     r18 = 0x3f
-    ;; 
-    dep     r18 = r18,r16,3,6   // get RNAT address
-    ;;
-    cmp.ltu p8,p9 = r18, r17    // RNAT saved on RSE
-    ;;
-(p8)    ld8     r19 = [r18]     // get RNAT from RSE
-    ;;
-    mov     ar.bspstore = r16   // set new BSPSTORE 
-    ;;
-    mov     ar.rnat = r19       // restore RNAT
-    mov     ar.rsc = r14        // restore RSC conf
-
-
-    ld8     r3 = [r11], J_R4-J_LC       // get lc register
-    ld8     r2 = [r10], J_R5-J_PREDS    // get predicates
-    ;;
-    mov     pr = r2, -1
-    mov     ar.lc = r3
-    //
-    //  restore preserved general registers & NaT's
-    //
-    ld8.fill    r4 = [r11], J_R6-J_R4
-    ;;
-    ld8.fill    r5 = [r10], J_R7-J_R5 
-    ld8.fill    r6 = [r11], J_SP-J_R6
-    ;;
-    ld8.fill    r7 = [r10], J_F2-J_R7
-    ld8.fill    sp = [r11], J_F3-J_SP
-    ;;
-    //
-    //  restore floating registers 
-    //
-    ldf.fill    f2 = [r10], J_F4-J_F2
-    ldf.fill    f3 = [r11], J_F5-J_F3 
-    ;;
-    ldf.fill    f4 = [r10], J_F16-J_F4
-    ldf.fill    f5 = [r11], J_F17-J_F5 
-    ;;
-    ldf.fill    f16 = [r10], J_F18-J_F16
-    ldf.fill    f17 = [r11], J_F19-J_F17
-    ;;
-    ldf.fill    f18 = [r10], J_F20-J_F18
-    ldf.fill    f19 = [r11], J_F21-J_F19
-    ;;
-    ldf.fill    f20 = [r10], J_F22-J_F20
-    ldf.fill    f21 = [r11], J_F23-J_F21
-    ;;
-    ldf.fill    f22 = [r10], J_F24-J_F22
-    ldf.fill    f23 = [r11], J_F25-J_F23 
-    ;;
-    ldf.fill    f24 = [r10], J_F26-J_F24
-    ldf.fill    f25 = [r11], J_F27-J_F25
-    ;;
-    ldf.fill    f26 = [r10], J_F28-J_F26
-    ldf.fill    f27 = [r11], J_F29-J_F27
-    ;;
-    ldf.fill    f28 = [r10], J_F30-J_F28
-    ldf.fill    f29 = [r11], J_F31-J_F29 
-    ;;
-    ldf.fill    f30 = [r10], J_FPSR-J_F30
-    ldf.fill    f31 = [r11], J_B0-J_F31 ;;
-
-    //
-    // restore branch registers and fpsr
-    //
-    ld8     r16 = [r10], J_B1-J_FPSR    // get fpsr
-    ld8     r17 = [r11], J_B2-J_B0      // get return pointer
-    ;;
-    mov     ar.fpsr = r16
-    mov     b0 = r17
-    ld8     r2 = [r10], J_B3-J_B1
-    ld8     r3 = [r11], J_B4-J_B2
-    ;;
-    mov     b1 = r2
-    mov     b2 = r3
-    ld8     r2 = [r10], J_B5-J_B3
-    ld8     r3 = [r11]
-    ;;
-    mov     b3 = r2
-    mov     b4 = r3 
-    ld8     r2 = [r10]
-    ld8     r21 = [r32]         // get user unat
-    ;;
-    mov     b5 = r2
-    mov     ar.unat = r21
-
-    //
-    // invalidate ALAT
-    //
-    invala ;;
-
-    br.ret.sptk b0
-    .endp longjmp
diff --git a/klibc/klibc/arch/ia64/syscall.S b/klibc/klibc/arch/ia64/syscall.S
deleted file mode 100644 (file)
index e3f264c..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# arch/ia64/syscall.S
-#
-
-#include <asm/unistd.h>
-       
-       .text
-       .align  32
-       .proc   __syscall_error
-       .globl  __syscall_error
-__syscall_error:
-       addl    r2 = @ltoffx(errno),gp
-       ;;
-       ld8.mov r3 = [r2],errno
-       ;;
-       st4     [r3] = r8
-       mov     r8 = -1
-       br.ret.sptk.many b0
-       .size   __syscall_error, .-__syscall_error
-       .endp   __syscall_error
diff --git a/klibc/klibc/arch/ia64/sysstub.ph b/klibc/klibc/arch/ia64/sysstub.ph
deleted file mode 100644 (file)
index 8e686c6..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*- perl -*-
-#
-# arch/ia64/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.text\n";
-    print OUT "\t.align 32\n";
-    print OUT "\t.proc ${fname}\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-    print OUT "\tmov\tr15 = __NR_${sname}\n";
-    print OUT "\tbreak __BREAK_SYSCALL\n";
-    print OUT "\tcmp.eq p6,p0 = -1,r10\n";
-    print OUT "(p6)\tbr.few __syscall_error\n";
-    print OUT "\tbr.ret.sptk.many b0\n";
-    print OUT "\t.size\t${fname},.-${fname}\n";
-    print OUT "\t.endp\t${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/ia64/vfork.S b/klibc/klibc/arch/ia64/vfork.S
deleted file mode 100644 (file)
index f79bdc8..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * ia64 specific vfork syscall
- *
- * Written By:  Martin Hicks <mort@wildopensource.com>
- *
- */
-
-/* This syscall is a special case of the clone syscall */
-#include <asm/unistd.h>
-#include <asm/signal.h>
-#include <klibc/archsys.h>
-
-/* These are redefined here because linux/sched.h isn't safe for
- * inclusion in asm.
- */
-#define CLONE_VM    0x00000100 /* set if VM shared between processes */
-#define CLONE_VFORK 0x00004000 /* set if parent wants the child to wake it up on exit */
-       
-/* pid_t vfork(void) */
-/* Implemented as clone(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
-
-       .align 32
-       .proc vfork
-       .global vfork
-vfork: 
-       alloc r2=ar.pfs,0,0,2,0
-       mov     r15=__NR_clone
-       mov     out0=CLONE_VM|CLONE_VFORK|SIGCHLD
-       mov     out1=0
-       ;;
-       break 0x100000      // Do the syscall
-       ;; 
-       addl    r15=0,r1
-       cmp.eq  p7,p6 = -1,r10
-       ;;
-       ld8     r14=[r15]
-       ;;
-(p7)   st4     [r14]=r8
-       ;; 
-(p7)   mov     r8=-1
-       br.ret.sptk.many b0
-       .endp vfork
diff --git a/klibc/klibc/arch/m32r/MCONFIG b/klibc/klibc/arch/m32r/MCONFIG
deleted file mode 100644 (file)
index 2673090..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-#
-# arch/m32r/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os
-BITSIZE  = 32
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# 224 MB - normal binaries start at 0 (?)
-# (lib?)gcc on cris seems to insist on producing .init and .fini sections
-SHAREDFLAGS     = --section-start .init=0x0e000100
diff --git a/klibc/klibc/arch/m32r/Makefile.inc b/klibc/klibc/arch/m32r/Makefile.inc
deleted file mode 100644 (file)
index 43cb44e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-#
-# arch/m32r/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       libgcc/__divdi3.o \
-       libgcc/__moddi3.o \
-       libgcc/__udivdi3.o \
-       libgcc/__umoddi3.o \
-       libgcc/__udivmoddi4.o
-
-archclean:
diff --git a/klibc/klibc/arch/m32r/crt0.S b/klibc/klibc/arch/m32r/crt0.S
deleted file mode 100644 (file)
index 1589a77..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# arch/m32r/crt0.S
-#
-# Does arch-specific initialization and invokes __libc_init
-# with the appropriate arguments.
-#
-# See __static_init.c or __shared_init.c for the expected
-# arguments.
-#
-
-       .text
-       .balign 4
-       .type   _start,@function
-       .globl  _start
-_start:
-       /* Save the address of the ELF argument array */
-       mv      r0, sp
-
-       /* atexit() function (assume null) */
-       xor     r1, r1
-       
-       bl      __libc_init
-
-       .size _start, .-_start
-
diff --git a/klibc/klibc/arch/m32r/setjmp.S b/klibc/klibc/arch/m32r/setjmp.S
deleted file mode 100644 (file)
index 14ef7e3..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# arch/m32r/setjmp.S
-#
-# setjmp/longjmp for the M32R architecture
-#
-
-#
-# The jmp_buf is assumed to contain the following, in order:
-#      r8-r15
-#
-#      Note that r14 is the return address register and
-#      r15 is the stack pointer.
-#
-       
-       .text
-       .balign 4
-       .globl  setjmp
-       .type   setjmp, @function
-setjmp:
-       st      r8, @r0
-       st      r9, @+r0
-       st      r10, @+r0
-       st      r11, @+r0
-       st      r12, @+r0
-       st      r13, @+r0
-       st      r14, @+r0
-       st      r15, @+r0
-       xor     r0, r0
-       jmp     r14
-       .size   setjmp,.-setjmp
-
-       .text
-       .balign 4
-       .globl  longjmp
-       .type   longjmp, @function
-longjmp:
-       ld      r8, @r0+
-       ld      r9, @r0+
-       ld      r10, @r0+
-       ld      r11, @r0+
-       ld      r12, @r0+
-       ld      r13, @r0+
-       ld      r14, @r0+
-       ld      r15, @r0
-       mv      r0, r1
-       jmp     r14
-       .size longjmp,.-longjmp
diff --git a/klibc/klibc/arch/m32r/syscall.S b/klibc/klibc/arch/m32r/syscall.S
deleted file mode 100644 (file)
index a20a336..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/m32r/syscall.S
- *
- *     r7 contains the syscall number (set by stub);
- * r0..r3 contains arguments 0-3 per standard calling convention;
- * r4..r5 contains arguments 4-5, but we have to get those from
- *        the stack.
- */
-
-       .section ".text","ax"
-       .balign 4
-       .globl  __syscall_common
-       .type   __syscall_common,@function
-__syscall_common:
-       ld      r4,@sp
-       ld      r5,@(4,sp)
-       trap    #2
-       cmpi    r0, #-4096
-       bnc     1f
-       jmp     r14
-1:
-       seth    r2,#high(errno)
-       or3     r2,r2,#low(errno)
-       neg     r1,r0
-       st      r1,@r7
-       ldi     r0,#-1
-       jmp     r14
-
-       .size   __syscall_common,.-__syscall_common
diff --git a/klibc/klibc/arch/m32r/sysstub.ph b/klibc/klibc/arch/m32r/sysstub.ph
deleted file mode 100644 (file)
index 98dfb9d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- perl -*-
-#
-# arch/m32r/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.text\n";
-    print OUT "\t.type\t${fname},\@function\n";
-    print OUT "\t.globl\t${fname}\n";
-    print OUT "\t.balign\t4\n";
-    print OUT "${fname}:\n";
-    print OUT "\tldi\tr7,#__NR_${sname}\n";
-    print OUT "\tbra\t__syscall_common\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/m68k/MCONFIG b/klibc/klibc/arch/m68k/MCONFIG
deleted file mode 100644 (file)
index 2ba69b3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- makefile -*-
-#
-# arch/m68k/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os -fomit-frame-pointer
-BITSIZE  = 32
diff --git a/klibc/klibc/arch/m68k/Makefile.inc b/klibc/klibc/arch/m68k/Makefile.inc
deleted file mode 100644 (file)
index 9abec14..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- makefile -*-
-#
-# arch/m68k/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-archclean:
diff --git a/klibc/klibc/arch/mips/MCONFIG b/klibc/klibc/arch/mips/MCONFIG
deleted file mode 100644 (file)
index 0a98918..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-#
-# arch/mips/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHREQFLAGS = -fno-pic -mno-abicalls -G 0
-OPTFLAGS     = -Os
-BITSIZE      = 32
-
-# Extra linkflags when building the shared version of the library
-SHAREDFLAGS    = -T arch/$(ARCH)/klibc.ld
diff --git a/klibc/klibc/arch/mips/Makefile.inc b/klibc/klibc/arch/mips/Makefile.inc
deleted file mode 100644 (file)
index e257023..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- makefile -*-
-#
-# arch/mips/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/pipe.o \
-       arch/$(ARCH)/vfork.o \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       libgcc/__divdi3.o \
-        libgcc/__moddi3.o \
-        libgcc/__udivdi3.o \
-       libgcc/__umoddi3.o \
-        libgcc/__udivmoddi4.o
-
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-
-archclean:
diff --git a/klibc/klibc/arch/mips/crt0.S b/klibc/klibc/arch/mips/crt0.S
deleted file mode 100644 (file)
index 42d9dd5..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# arch/mips/crt0.S
-#
-# Does arch-specific initialization and invokes __libc_init
-# with the appropriate arguments.
-#
-# See __static_init.c or __shared_init.c for the expected
-# arguments.
-#
-
-#include <machine/asm.h>
-
-NESTED(__start, 32, sp)
-       subu    sp, 32
-       sw      zero, 16(sp)
-
-       lui     gp, %hi(_gp)            # Initialize gp
-       addiu   gp, gp, _gp
-       
-       addiu   a0, sp, 32              # Pointer to ELF entry structure
-       move    a1, v0                  # Kernel-provided atexit() pointer
-
-       jal     __libc_init
-
-       END(__start)
diff --git a/klibc/klibc/arch/mips/klibc.ld b/klibc/klibc/arch/mips/klibc.ld
deleted file mode 100644 (file)
index d75c9de..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-/* Linker script for klibc.so, needed because of the the damned
-   GNU ld script headers problem */
-
-OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips",
-             "elf32-tradlittlemips")
-OUTPUT_ARCH(mips)
-ENTRY(__start)
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  /* This address needs to be reachable using normal inter-module
-      calls, and work on the memory models for this architecture */
-  /* 2 MB -- the normal starting point for text is 4 MB */
-  . = 0x00200400;
-  .interp         : { *(.interp) }
-  .reginfo        : { *(.reginfo) }
-  .dynamic        : { *(.dynamic) }
-  .hash           : { *(.hash) }
-  .dynsym         : { *(.dynsym) }
-  .dynstr         : { *(.dynstr) }
-  .gnu.version    : { *(.gnu.version) }
-  .gnu.version_d  : { *(.gnu.version_d) }
-  .gnu.version_r  : { *(.gnu.version_r) }
-  .rel.dyn        :
-    {
-      *(.rel.init)
-      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
-      *(.rel.fini)
-      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
-      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
-      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
-      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
-      *(.rel.ctors)
-      *(.rel.dtors)
-      *(.rel.got)
-      *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
-      *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
-      *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
-      *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
-      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
-    }
-  .rela.dyn       :
-    {
-      *(.rela.init)
-      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
-      *(.rela.fini)
-      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
-      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
-      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
-      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
-      *(.rela.ctors)
-      *(.rela.dtors)
-      *(.rela.got)
-      *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
-      *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
-      *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
-      *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
-      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
-    }
-  .rel.plt        : { *(.rel.plt) }
-  .rela.plt       : { *(.rela.plt) }
-  .init           :
-  {
-    KEEP (*(.init))
-  } =0
-  .plt            : { *(.plt) }
-  .text           :
-  {
-    _ftext = . ;
-    *(.text .stub .text.* .gnu.linkonce.t.*)
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-    *(.mips16.fn.*) *(.mips16.call.*)
-  } =0
-  .fini           :
-  {
-    KEEP (*(.fini))
-  } =0
-  PROVIDE (__etext = .);
-  PROVIDE (_etext = .);
-  PROVIDE (etext = .);
-  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
-  .rodata1        : { *(.rodata1) }
-  .sdata2         : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
-  .sbss2          : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
-  .eh_frame_hdr : { *(.eh_frame_hdr) }
-  /* Adjust the address for the data segment.  We want to adjust up to
-     the same address within the page on the next page up.  */
-  . = ALIGN(8192);
-  /* Ensure the __preinit_array_start label is properly aligned.  We
-     could instead move the label definition inside the section, but
-     the linker would then create the section even if it turns out to
-     be empty, which isn't pretty.  */
-  . = ALIGN(32 / 8);
-  PROVIDE (__preinit_array_start = .);
-  .preinit_array     : { *(.preinit_array) }
-  PROVIDE (__preinit_array_end = .);
-  PROVIDE (__init_array_start = .);
-  .init_array     : { *(.init_array) }
-  PROVIDE (__init_array_end = .);
-  PROVIDE (__fini_array_start = .);
-  .fini_array     : { *(.fini_array) }
-  PROVIDE (__fini_array_end = .);
-  .data           :
-  {
-    _fdata = . ;
-    *(.data .data.* .gnu.linkonce.d.*)
-    SORT(CONSTRUCTORS)
-  }
-  .data1          : { *(.data1) }
-  .tdata         : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
-  .tbss                  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
-  .eh_frame       : { KEEP (*(.eh_frame)) }
-  .gcc_except_table   : { *(.gcc_except_table) }
-  .ctors          :
-  {
-    /* gcc uses crtbegin.o to find the start of
-       the constructors, so we make sure it is
-       first.  Because this is a wildcard, it
-       doesn't matter if the user does not
-       actually link against crtbegin.o; the
-       linker won't look for a file to match a
-       wildcard.  The wildcard also means that it
-       doesn't matter which directory crtbegin.o
-       is in.  */
-    KEEP (*crtbegin*.o(.ctors))
-    /* We don't want to include the .ctor section from
-       from the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last */
-    KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-  }
-  .dtors          :
-  {
-    KEEP (*crtbegin*.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-  }
-  .jcr            : { KEEP (*(.jcr)) }
-  _gp = ALIGN(16) + 0x7ff0;
-  .got            : { *(.got.plt) *(.got) }
-  /* We want the small data sections together, so single-instruction offsets
-     can access them all, and initialized data all before uninitialized, so
-     we can shorten the on-disk segment size.  */
-  .sdata          :
-  {
-    *(.sdata .sdata.* .gnu.linkonce.s.*)
-  }
-  .lit8           : { *(.lit8) }
-  .lit4           : { *(.lit4) }
-  _edata = .;
-  PROVIDE (edata = .);
-  __bss_start = .;
-  _fbss = .;
-  .sbss           :
-  {
-    PROVIDE (__sbss_start = .);
-    PROVIDE (___sbss_start = .);
-    *(.dynsbss)
-    *(.sbss .sbss.* .gnu.linkonce.sb.*)
-    *(.scommon)
-    PROVIDE (__sbss_end = .);
-    PROVIDE (___sbss_end = .);
-  }
-  .bss            :
-  {
-   *(.dynbss)
-   *(.bss .bss.* .gnu.linkonce.b.*)
-   *(COMMON)
-   /* Align here to ensure that the .bss section occupies space up to
-      _end.  Align after .bss to ensure correct alignment even if the
-      .bss section disappears because there are no input sections.  */
-   . = ALIGN(32 / 8);
-  }
-  . = ALIGN(32 / 8);
-  _end = .;
-  PROVIDE (end = .);
-  /* Stabs debugging sections.  */
-  .stab          0 : { *(.stab) }
-  .stabstr       0 : { *(.stabstr) }
-  .stab.excl     0 : { *(.stab.excl) }
-  .stab.exclstr  0 : { *(.stab.exclstr) }
-  .stab.index    0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
-  .comment       0 : { *(.comment) }
-  /* DWARF debug sections.
-     Symbols in the DWARF debugging sections are relative to the beginning
-     of the section so we begin them at 0.  */
-  /* DWARF 1 */
-  .debug          0 : { *(.debug) }
-  .line           0 : { *(.line) }
-  /* GNU DWARF 1 extensions */
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }
-  .debug_sfnames  0 : { *(.debug_sfnames) }
-  /* DWARF 1.1 and DWARF 2 */
-  .debug_aranges  0 : { *(.debug_aranges) }
-  .debug_pubnames 0 : { *(.debug_pubnames) }
-  /* DWARF 2 */
-  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
-  .debug_abbrev   0 : { *(.debug_abbrev) }
-  .debug_line     0 : { *(.debug_line) }
-  .debug_frame    0 : { *(.debug_frame) }
-  .debug_str      0 : { *(.debug_str) }
-  .debug_loc      0 : { *(.debug_loc) }
-  .debug_macinfo  0 : { *(.debug_macinfo) }
-  /* SGI/MIPS DWARF 2 extensions */
-  .debug_weaknames 0 : { *(.debug_weaknames) }
-  .debug_funcnames 0 : { *(.debug_funcnames) }
-  .debug_typenames 0 : { *(.debug_typenames) }
-  .debug_varnames  0 : { *(.debug_varnames) }
-  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
-  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
-  /DISCARD/ : { *(.note.GNU-stack) }
-}
diff --git a/klibc/klibc/arch/mips/pipe.S b/klibc/klibc/arch/mips/pipe.S
deleted file mode 100644 (file)
index d79f614..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <asm/asm.h>
-#include <asm/regdef.h>
-#include <asm/unistd.h>
-
-LEAF(pipe)
-       li      v0, __NR_pipe
-       syscall
-       bnez    a3, 1f
-       sw      v0, (a0)
-       sw      v1, (a1)
-       li      v0, 0
-       b       2f
-1:     sw      v0, errno
-       li      v0, -1
-2:     jr      ra
-       END(pipe)
diff --git a/klibc/klibc/arch/mips/setjmp.S b/klibc/klibc/arch/mips/setjmp.S
deleted file mode 100644 (file)
index 4d29375..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-# arch/mips/setjmp.S
-#
-# setjmp/longjmp for the MIPS architecture
-#
-# The jmp_buf is assumed to contain the following, in order:
-#      s0..s7
-#      gp
-#      sp
-#      s8
-#      ra
-#      f20..f31
-#      fcr31
-#
-
-#include <machine/asm.h>
-       
-LEAF(setjmp)
-       sw      s0,  0(a0)
-       sw      s1,  4(a0)
-       sw      s2,  8(a0)
-       sw      s3, 12(a0)
-       sw      s4, 16(a0)
-       sw      s5, 20(a0)
-       sw      s6, 24(a0)
-       sw      s7, 28(a0)
-       sw      gp, 32(a0)
-       sw      sp, 36(a0)
-       sw      s8, 40(a0)
-       sw      ra, 44(a0)
-       cfc1    t0,$31
-       swc1    $f20,48(a0)
-       swc1    $f21,52(a0)
-       swc1    $f22,56(a0)
-       swc1    $f23,60(a0)
-       swc1    $f24,64(a0)
-       swc1    $f25,68(a0)
-       swc1    $f26,72(a0)
-       swc1    $f27,76(a0)
-       swc1    $f28,80(a0)
-       swc1    $f29,84(a0)
-       swc1    $f30,88(a0)
-       swc1    $f31,92(a0)
-       sw      t0,96(a0)
-       move    v0,zero
-       jr      ra
-       
-       END(setjmp)
-
-LEAF(longjmp)
-       lw      s0,  0(a0)
-       lw      s1,  4(a0)
-       lw      s2,  8(a0)
-       lw      s3, 12(a0)
-       lw      s4, 16(a0)
-       lw      s5, 20(a0)
-       lw      s6, 24(a0)
-       lw      s7, 28(a0)
-       lw      gp, 32(a0)
-       lw      sp, 36(a0)
-       lw      s8, 40(a0)
-       lw      ra, 44(a0)
-       lw      t0, 96(a0)
-       lwc1    $f20,48(a0)
-       lwc1    $f21,52(a0)
-       lwc1    $f22,56(a0)
-       lwc1    $f23,60(a0)
-       lwc1    $f24,64(a0)
-       lwc1    $f25,68(a0)
-       lwc1    $f26,72(a0)
-       lwc1    $f27,76(a0)
-       lwc1    $f28,80(a0)
-       lwc1    $f29,84(a0)
-       lwc1    $f30,88(a0)
-       lwc1    $f31,92(a0)
-       ctc1    t0,$31
-       move    v0,a1
-       jr      ra
-
-       END(longjmp)
-       
-       
\ No newline at end of file
diff --git a/klibc/klibc/arch/mips/syscall.S b/klibc/klibc/arch/mips/syscall.S
deleted file mode 100644 (file)
index d5c1fe1..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <asm/asm.h>
-#include <asm/regdef.h>
-#include <asm/unistd.h>
-
-       .set noreorder
-       
-LEAF(__syscall_common)
-       syscall
-        beqz    a3, 1f
-       # sw is actually two instructions; the first one goes
-       # in the branch delay slot
-        sw      v0, errno
-        li      v0, -1
-1:      jr      ra
-       END(__syscall_common)
diff --git a/klibc/klibc/arch/mips/sysstub.ph b/klibc/klibc/arch/mips/sysstub.ph
deleted file mode 100644 (file)
index a71d5d0..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- perl -*-
-#
-# arch/mips/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-# On MIPS, most system calls follow the standard convention, with the
-# system call number in r0 (v0), return an error value in r19 (a3) as
-# well as the return value in r0 (v0).
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    $stype = $stype || 'common';
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/asm.h>\n";
-    print OUT "#include <asm/regdef.h>\n";
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.set noreorder\n";
-    print OUT "\n";
-    print OUT "LEAF(${fname})\n";
-    print OUT "\tj\t__syscall_${stype}\n";
-    print OUT "\t  li\tv0, __NR_${sname}\n";
-    print OUT "\tEND(${fname})\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/mips/vfork.S b/klibc/klibc/arch/mips/vfork.S
deleted file mode 100644 (file)
index 9829867..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <asm/asm.h>
-#include <asm/regdef.h>
-#include <asm/unistd.h>
-
-#define CLONE_VM       0x00000100
-#define CLONE_VFORK    0x00004000
-#define SIGCHLD                18
-
-       .set noreorder
-       
-LEAF(vfork)
-       li      a0, CLONE_VFORK | CLONE_VM | SIGCHLD
-       li      a1, 0
-       j       __syscall_common
-         li    v0, __NR_clone
-       END(vfork)
diff --git a/klibc/klibc/arch/mips64/MCONFIG b/klibc/klibc/arch/mips64/MCONFIG
deleted file mode 100644 (file)
index 66405e4..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- makefile -*-
-#
-# arch/mips64/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os
-BITSIZE  = 64
diff --git a/klibc/klibc/arch/mips64/Makefile.inc b/klibc/klibc/arch/mips64/Makefile.inc
deleted file mode 100644 (file)
index 4a9529a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- makefile -*-
-#
-# arch/mips64/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-archclean:
diff --git a/klibc/klibc/arch/parisc/MCONFIG b/klibc/klibc/arch/parisc/MCONFIG
deleted file mode 100644 (file)
index 93a3170..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- makefile -*-
-#
-# arch/parisc/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os -fomit-frame-pointer
-BITSIZE  = 32
diff --git a/klibc/klibc/arch/parisc/Makefile.inc b/klibc/klibc/arch/parisc/Makefile.inc
deleted file mode 100644 (file)
index 980a543..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-#
-# arch/parisc/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o
-
-ARCHOOBJS = $(patsubst %o,%.lo,%(ARCHOBJS))
-
-archclean:
-
-arch/$(ARCH)/syscall.o: arch/$(ARCH)/syscall.c
-       $(CC) $(CFLAGS) -ffixed-r20 -c -o $@ $<
diff --git a/klibc/klibc/arch/parisc/crt0.S b/klibc/klibc/arch/parisc/crt0.S
deleted file mode 100644 (file)
index fb0bd37..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-        .align 4
-
-        .import $global$, data
-        .import __libc_init, code
-        .global _start
-        .export _start, ENTRY
-        .type _start,@function
-
-        .proc
-        .callinfo
-
-_start: 
-/* extend the stack by 64-bytes */
-        ldo     64(%sp), %sp
-       
-/* %r25 = argc
- * %r24 = argv
- * envp = argv + (argc + 1)        
- * elfdata = (argv - 4)
- */
-        ldo     -4(%r24), %r26
-
-/* load global data */
-        ldil   L%$global$, %dp
-        ldo    R%$global$(%dp), %dp
-
-/* branch to __libc_init */
-        bl     __libc_init,%r2
-        nop
-/* break miserably if we ever return */
-        iitlbp %r0,(%r0) /* illegal instruction */
-        nop
-        .procend
diff --git a/klibc/klibc/arch/parisc/setjmp.S b/klibc/klibc/arch/parisc/setjmp.S
deleted file mode 100644 (file)
index aebe03a..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * parisc specific setjmp/longjmp routines
- *
- */
-        
-        .text
-        .align 4
-        .global setjmp
-        .export setjmp, code
-        .proc
-        .callinfo
-setjmp:
-        stw     %r3,0(%r26)
-        stw     %r4,8(%r26)
-        stw     %r5,12(%r26)
-        stw     %r6,16(%r26)
-        stw     %r7,20(%r26)
-        stw     %r8,24(%r26)
-        stw     %r9,28(%r26)
-        stw     %r10,32(%r26)
-        stw     %r11,36(%r26)
-        stw     %r12,40(%r26)
-        stw     %r13,44(%r26)
-        stw     %r14,48(%r26)
-        stw     %r15,52(%r26)
-        stw     %r16,56(%r26)
-        stw     %r17,60(%r26)
-        stw     %r18,64(%r26)
-        stw     %r19,68(%r26)
-        stw     %r27,72(%r26)
-        stw     %r30,76(%r26)
-        stw     %rp,80(%r26)
-        ldo     88(%r26),%r19
-        fstd,ma %fr12,8(%r19)
-        fstd,ma %fr13,8(%r19)
-        fstd,ma %fr14,8(%r19)
-        fstd,ma %fr15,8(%r19)
-        fstd,ma %fr16,8(%r19)
-        fstd,ma %fr17,8(%r19)
-        fstd,ma %fr18,8(%r19)
-        fstd,ma %fr19,8(%r19)
-        fstd,ma %fr20,8(%r19)
-        fstd     %fr21,0(%r19)
-        bv       %r0(%rp)
-        copy     %r0,%r28
-       .procend
-
-       .text
-       .align 4
-       .global longjmp
-       .export longjmp, code
-       .proc
-       .callinfo
-longjmp:
-        ldw     0(%r26),%r3
-        ldw     8(%r26),%r4
-        ldw     12(%r26),%r5
-        ldw     16(%r26),%r6
-        ldw     20(%r26),%r7
-        ldw     24(%r26),%r8
-        ldw     28(%r26),%r9
-        ldw     32(%r26),%r10
-        ldw     36(%r26),%r11
-        ldw     40(%r26),%r12
-        ldw     44(%r26),%r13
-        ldw     48(%r26),%r14
-        ldw     52(%r26),%r15
-        ldw     56(%r26),%r16
-        ldw     60(%r26),%r17
-        ldw     64(%r26),%r18
-        ldw     68(%r26),%r19
-        ldw     72(%r26),%r27
-        ldw     76(%r26),%r30
-        ldw     80(%r26),%rp
-        ldo     88(%r26),%r20
-        fldd,ma 8(%r20),%fr12
-        fldd,ma 8(%r20),%fr13
-        fldd,ma 8(%r20),%fr14
-        fldd,ma 8(%r20),%fr15
-        fldd,ma 8(%r20),%fr16
-        fldd,ma 8(%r20),%fr17
-        fldd,ma 8(%r20),%fr18
-        fldd,ma 8(%r20),%fr19
-        fldd,ma 8(%r20),%fr20
-        fldd    0(%r20),%fr21
-        bv      %r0(%rp)
-        copy    %r25,%r28
-        .procend
diff --git a/klibc/klibc/arch/parisc/syscall.c b/klibc/klibc/arch/parisc/syscall.c
deleted file mode 100644 (file)
index 99ef5fe..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/parisc/syscall.c
- *
- * This function is called from a stub with %r20 already set up.
- * Compile this function with -ffixed-r20 so that it doesn't clobber
- * this register by mistake.
- */
-
-#include <klibc/compiler.h>
-#include <errno.h>
-
-long __syscall_common(long a0, long a1, long a2, long a3, long a4, long a5)
-{
-  register unsigned long rv asm ("r28");
-
-  asm volatile("\tble 0x100(%%sr2, %%r0)\n"
-              : "=r" (rv)
-              : "r" (a0), "r" (a1), "r" (a2), "r" (a3), "r" (a4), "r" (a5)
-              : "%r1", "%r2", "%r29", "%r31");
-
-  if ( __unlikely(rv >= -4095UL) ) {
-    errno = -rv;
-    return -1L;
-  } else {
-    return (long)rv;
-  }
-}
-
-  
diff --git a/klibc/klibc/arch/parisc/sysstub.ph b/klibc/klibc/arch/parisc/sysstub.ph
deleted file mode 100644 (file)
index e2196ac..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- perl -*-
-#
-# arch/parisc/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.text\n";
-    print OUT "\t.align 4\n";
-    print OUT "\t.import __syscall_common, code\n";
-    print OUT "\t.global ${fname}\n";
-    print OUT "\t.export ${fname}, code\n";
-    print OUT "\t.proc\n";
-    print OUT "\.callinfo\n";
-    print OUT "${fname}:\n";
-    print OUT "\tb\t__syscall_common\n";
-    print OUT "\t  ldo\t__NR_${sname}(%r0),%r20\n";
-    print OUT "\t.procend\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/ppc/MCONFIG b/klibc/klibc/arch/ppc/MCONFIG
deleted file mode 100644 (file)
index 82c7107..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-#
-# arch/ppc/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os
-BITSIZE  = 32
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# 256-16 MB - normal binaries start at 256 MB, and jumps are limited
-# to +/- 16 MB
-SHAREDFLAGS     = -Ttext 0x0f000200
diff --git a/klibc/klibc/arch/ppc/Makefile.inc b/klibc/klibc/arch/ppc/Makefile.inc
deleted file mode 100644 (file)
index c6bb975..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- makefile -*-
-#
-# arch/ppc/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       libgcc/__divdi3.o \
-       libgcc/__moddi3.o \
-       libgcc/__udivdi3.o \
-       libgcc/__umoddi3.o \
-       libgcc/__udivmoddi4.o
-
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-archclean:
diff --git a/klibc/klibc/arch/ppc/crt0.S b/klibc/klibc/arch/ppc/crt0.S
deleted file mode 100644 (file)
index 282f841..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# arch/ppc/crt0.S
-#
-
-       .text
-       .align 4
-       .type _start,@function
-       .globl _start
-_start:
-       stwu    1,-16(1)
-       addi    3,1,16
-       /*
-        * the SVR4abippc.pdf specifies r7 as a pointer to 
-        * a termination function pointer.
-        * It is unused on Linux.
-        */
-       mr      4,7
-       bl      __libc_init
-       
-       .size _start,.-_start
diff --git a/klibc/klibc/arch/ppc/setjmp.S b/klibc/klibc/arch/ppc/setjmp.S
deleted file mode 100644 (file)
index 3012de3..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# arch/ppc/setjmp.S
-#
-# Basic setjmp/longjmp implementation
-# This file was derived from the equivalent file in NetBSD
-#
-
-       .text
-       .align 4
-       .type setjmp,@function
-       .globl setjmp
-setjmp:
-        mflr    %r11                    /* save return address */
-        mfcr    %r12                    /* save condition register */
-        mr      %r10,%r1                /* save stack pointer */
-        mr      %r9,%r2                 /* save GPR2 (not needed) */
-        stmw    %r9,0(%r3)              /* save r9..r31 */
-        li      %r3,0                   /* indicate success */
-        blr                             /* return */
-
-       .size setjmp,.-setjmp
-
-       .type longjmp,@function
-       .globl longjmp
-longjmp:
-        lmw     %r9,0(%r3)              /* save r9..r31 */
-        mtlr    %r11                    /* restore LR */
-        mtcr    %r12                    /* restore CR */
-        mr      %r2,%r9                 /* restore GPR2 (not needed) */
-        mr      %r1,%r10                /* restore stack */
-        mr      %r3,%r4                 /* get return value */
-        blr                             /* return */
-
-       .size longjmp,.-longjmp
-
diff --git a/klibc/klibc/arch/ppc/syscall.S b/klibc/klibc/arch/ppc/syscall.S
deleted file mode 100644 (file)
index 0a7c37c..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * arch/ppc/syscall.S
- *
- * Common error-handling path for system calls.
- */
-
-       .text
-       .align  2
-       .globl  __syscall_error
-       .type   __syscall_error,@function
-__syscall_error:
-       lis     9,errno@ha
-       stw     3,errno@l(9)
-       li      3,-1
-       blr
-       .size   __syscall_error,.-__syscall_error
diff --git a/klibc/klibc/arch/ppc/sysstub.ph b/klibc/klibc/arch/ppc/sysstub.ph
deleted file mode 100644 (file)
index 3b3916c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- perl -*-
-#
-# arch/ppc/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.type ${fname},\@function\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-    print OUT "\tli 0,__NR_${sname}\n";
-    print OUT "\tsc\n";
-    print OUT "\tbnslr\n";
-    print OUT "\tb __syscall_error\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/ppc64/MCONFIG b/klibc/klibc/arch/ppc64/MCONFIG
deleted file mode 100644 (file)
index 9aba2dd..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- makefile -*-
-#
-# arch/ppc64/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHREQFLAGS = -m64 -mcall-aixdesc
-OPTFLAGS     = -Os
-BITSIZE      = 64
-LDFLAGS      = -m elf64ppc
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# 256-16 MB - normal binaries start at 256 MB, and jumps are limited
-# to +/- 16 MB
-SHAREDFLAGS     = -Ttext 0x0f000200
diff --git a/klibc/klibc/arch/ppc64/Makefile.inc b/klibc/klibc/arch/ppc64/Makefile.inc
deleted file mode 100644 (file)
index d1e128f..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- makefile -*-
-#
-# arch/ppc64/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-INTERP_O = interp1.o
-
-interp.o: interp1.o klibc.got
-       $(LD) $(LDFLAGS) -r -o $@ interp1.o klibc.got
-
-klibc.got: $(SOHASH)
-       $(OBJCOPY) -j .got $< $@
-
-archclean:
-       rm -f klibc.got
diff --git a/klibc/klibc/arch/ppc64/crt0.S b/klibc/klibc/arch/ppc64/crt0.S
deleted file mode 100644 (file)
index 872d2a0..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# arch/ppc64/crt0.S
-#
-# void _start(void)
-# {
-#    /* Divine up argc, argv, and envp */
-#    environ = envp;
-#    exit(main(argc, argv, envp));
-# } 
-#
-
-       .section ".toc","aw"
-.LC0:  .tc     environ[TC],environ
-
-       .section ".opd","aw"
-       .align 3
-       .globl _start
-_start:
-       .quad   ._start
-       .quad   .TOC.@tocbase, 0
-
-       .text
-       .globl  ._start
-       .type   ._start,@function
-._start:
-       stdu    %r1,-32(%r1)
-       addi    %r3,%r1,32
-       mr      %r4,%r7     /* fini */
-       b       .__libc_init
-       nop
-
-       .size _start,.-_start
diff --git a/klibc/klibc/arch/ppc64/setjmp.S b/klibc/klibc/arch/ppc64/setjmp.S
deleted file mode 100644 (file)
index 30db419..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-# arch/ppc64/setjmp.S
-#
-# Basic setjmp/longjmp implementation
-#
-
-       .text
-       .align 4
-
-       .section ".opd","aw"
-setjmp:
-       .quad   .setjmp,.TOC.@tocbase,0
-       .previous
-       .size   setjmp,24
-       .type   .setjmp,@function
-       .globl  setjmp
-       .globl  .setjmp
-.setjmp:
-       mflr    %r11                    /* save return address */
-       mfcr    %r12                    /* save condition register */
-       std     %r2,0(%r3)              /* save TOC pointer (not needed) */
-       stdu    %r1,8(%r3)              /* save stack pointer */
-       stdu    %r11,8(%r3)
-       stdu    %r12,8(%r3)
-       stdu    %r13,8(%r3)             /* save caller saved regs */
-       stdu    %r14,8(%r3)
-       stdu    %r15,8(%r3)
-       stdu    %r16,8(%r3)
-       stdu    %r17,8(%r3)
-       stdu    %r18,8(%r3)
-       stdu    %r19,8(%r3)
-       stdu    %r20,8(%r3)
-       stdu    %r21,8(%r3)
-       stdu    %r22,8(%r3)
-       stdu    %r23,8(%r3)
-       stdu    %r24,8(%r3)
-       stdu    %r25,8(%r3)
-       stdu    %r26,8(%r3)
-       stdu    %r27,8(%r3)
-       stdu    %r28,8(%r3)
-       stdu    %r29,8(%r3)
-       stdu    %r30,8(%r3)
-       std     %r31,8(%r3)
-       li      %r3,0                   /* indicate success */
-       blr                             /* return */
-
-       .size .setjmp,.-.setjmp
-       .section ".opd","aw"
-longjmp:
-       .quad   .longjmp,.TOC.@tocbase,0
-       .previous
-       .size   longjmp,24
-       .type   .longjmp,@function
-       .globl  longjmp
-       .globl  .longjmp
-.longjmp:
-       ld      %r2,0(%r3)              /* restore TOC pointer (not needed) */
-       ldu     %r1,8(%r3)              /* restore stack */
-       ldu     %r11,8(%r3)
-       ldu     %r12,8(%r3)
-       ldu     %r13,8(%r3)             /* restore caller saved regs */
-       ldu     %r14,8(%r3)
-       ldu     %r15,8(%r3)
-       ldu     %r16,8(%r3)
-       ldu     %r17,8(%r3)
-       ldu     %r18,8(%r3)
-       ldu     %r19,8(%r3)
-       ldu     %r20,8(%r3)
-       ldu     %r21,8(%r3)
-       ldu     %r22,8(%r3)
-       ldu     %r23,8(%r3)
-       ldu     %r24,8(%r3)
-       ldu     %r25,8(%r3)
-       ldu     %r26,8(%r3)
-       ldu     %r27,8(%r3)
-       ldu     %r28,8(%r3)
-       ldu     %r29,8(%r3)
-       ldu     %r30,8(%r3)
-       ld      %r31,8(%r3)
-       mtlr    %r11                    /* restore LR */
-       mtcr    %r12                    /* restore CR */
-       mr      %r3,%r4                 /* get return value */
-       blr                             /* return */
-
-       .size .longjmp,.-.longjmp
diff --git a/klibc/klibc/arch/ppc64/syscall.c b/klibc/klibc/arch/ppc64/syscall.c
deleted file mode 100644 (file)
index a5895fe..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * arch/ppc64/syscall.c
- *
- * Common error-handling path for system calls.
- * The return value from __syscall_error becomes the
- * return value from the system call.
- */
-#include <errno.h>
-
-long int __syscall_error(long int err)
-{
-       errno = err;
-       return -1;
-}
diff --git a/klibc/klibc/arch/ppc64/sysstub.ph b/klibc/klibc/arch/ppc64/sysstub.ph
deleted file mode 100644 (file)
index 9ee9370..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- perl -*-
-#
-# arch/ppc64/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "\t.section \".opd\",\"aw\"\n";
-    print OUT "\t.align 3\n";
-    print OUT "${fname}:\n";
-    print OUT "\t.quad .${fname},.TOC.\@tocbase,0\n";
-    print OUT "\t.text\n";
-    print OUT "\t.type .${fname},\@function\n";
-    print OUT "\t.globl .${fname}\n";
-    print OUT ".${fname}:\n";
-    print OUT "\tli 0,__NR_${sname}\n";
-    print OUT "\tsc\n";
-    print OUT "\tbnslr\n";
-    print OUT "\tb .__syscall_error\n";
-    print OUT "\t.size .${fname},.-.${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/s390/MCONFIG b/klibc/klibc/arch/s390/MCONFIG
deleted file mode 100644 (file)
index 640b395..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-#
-# arch/s390/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os
-BITSIZE  = 32
-
-SHAREDFLAGS    = -Ttext 0x40000200
diff --git a/klibc/klibc/arch/s390/Makefile.inc b/klibc/klibc/arch/s390/Makefile.inc
deleted file mode 100644 (file)
index 49b64dd..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- makefile -*-
-#
-# arch/s390/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/mmap.o \
-       arch/$(ARCH)/syscall.o \
-       libgcc/__divdi3.o \
-       libgcc/__moddi3.o \
-       libgcc/__udivdi3.o \
-       libgcc/__umoddi3.o \
-       libgcc/__udivmoddi4.o
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-
-archclean:
diff --git a/klibc/klibc/arch/s390/crt0.S b/klibc/klibc/arch/s390/crt0.S
deleted file mode 100644 (file)
index 49c3e7e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# arch/s390/crt0.S
-#
-# Does arch-specific initialization and invokes __libc_init
-# with the appropriate arguments.
-#
-# See __static_init.c or __shared_init.c for the expected
-# arguments.
-#
-       .text
-       .align 4
-       .type _start,@function
-       .globl _start
-_start:
-       lr      %r2,%r15
-       lhi     %r3,0
-       ahi     %r15,-96
-       bras    %r1,.L0
-.L0:
-       l       %r1,.L1-.L0(%r1)
-       br      %r1
-.L1:
-       .long   __libc_init
-
-       .size _start,.-_start
diff --git a/klibc/klibc/arch/s390/mmap.c b/klibc/klibc/arch/s390/mmap.c
deleted file mode 100644 (file)
index 51ff07f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <sys/types.h>
-#include <linux/unistd.h>
-
-struct mmap_arg_struct {
-       unsigned long addr;
-       unsigned long len;
-       unsigned long prot;
-       unsigned long flags;
-       unsigned long fd;
-       unsigned long offset;
-};
-
-void * __mmap2(void * addr, size_t len, int prot, int flags,
-                                                int fd, long offset)
-{
-       struct mmap_arg_struct args = {
-               (unsigned long) addr,
-               (unsigned long) len,
-               (unsigned long) prot,
-               (unsigned long) flags,
-               (unsigned long) fd,
-               (unsigned long) offset,
-       };
-
-       register struct mmap_arg_struct *__arg1 asm("2") = &args;
-       register long __svcres asm("2");
-       unsigned long __res;
-
-       __asm__ __volatile__ (
-               "    svc %b1\n"
-               : "=d" (__svcres)
-               : "i" (__NR_mmap2),
-                 "0" (__arg1)
-               : "1", "cc", "memory");
-       __res = __svcres;
-       if (__res >= (unsigned long)-125) {
-               errno = -__res;
-               __res = -1;
-       }
-       return (void *)__res;
-}
diff --git a/klibc/klibc/arch/s390/setjmp.S b/klibc/klibc/arch/s390/setjmp.S
deleted file mode 100644 (file)
index 9713268..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# arch/s390/setjmp.S
-#
-# setjmp/longjmp for the s390 architecture
-#
-
-       .text
-       .align 4
-       .globl setjmp
-       .type setjmp, @function
-setjmp:
-       stm     %r6,%r15,0(%r2)         # save all general registers
-       std     %f4,40(%r2)             # save fp registers f4 and f6
-       std     %f6,48(%r2)
-       lhi     %r2,0                   # return 0
-       br      %r14
-
-       .size setjmp,.-setjmp
-
-       .text
-       .align 4
-       .globl longjmp
-       .type longjmp, @function
-longjmp:
-       lr      %r1,%r2                 # jmp_buf
-       lr      %r2,%r3                 # return value
-       ld      %f6,48(%r1)             # restore all saved registers
-       ld      %f4,40(%r1)
-       lm      %r6,%r15,0(%r1)
-       br      %r14                    # return to restored address
-
-       .size longjmp,.-longjmp
diff --git a/klibc/klibc/arch/s390/syscall.c b/klibc/klibc/arch/s390/syscall.c
deleted file mode 100644 (file)
index c0f17c4..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * arch/s390/syscall.c
- *
- * Common error-handling path for system calls.
- * The return value from __syscall_common becomes the
- * return value from the system call.
- */
-#include <errno.h>
-
-long int __syscall_common(long int err)
-{
-       if ((unsigned long)(err) < (unsigned long)(-125))
-               return err;
-       errno = err;
-       return -1;
-}
diff --git a/klibc/klibc/arch/s390/sysstub.ph b/klibc/klibc/arch/s390/sysstub.ph
deleted file mode 100644 (file)
index 35f40a0..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- perl -*-
-#
-# arch/s390/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.type ${fname},\@function\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-    print OUT ".if __NR_${sname} < 256\n";
-    print OUT "\tsvc __NR_${sname}\n";
-    print OUT ".else\n";
-    print OUT "\tlhi %r1,__NR_${sname}\n";
-    print OUT "\tsvc 0\n";
-    print OUT ".endif\n";
-    print OUT "\tbras %r3,1f\n";
-    print OUT "\t.long __syscall_common\n";
-    print OUT "1:\tl %r3,0(%r3)\n";
-    print OUT "\tbr %r3\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/s390x/MCONFIG b/klibc/klibc/arch/s390x/MCONFIG
deleted file mode 100644 (file)
index 081a0bb..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-#
-# arch/s390x/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os
-BITSIZE  = 64
-
-SHAREDFLAGS    = -Ttext 0x40000200
diff --git a/klibc/klibc/arch/s390x/Makefile.inc b/klibc/klibc/arch/s390x/Makefile.inc
deleted file mode 100644 (file)
index 9d614e0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-#
-# arch/s390x/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/mmap.o \
-       arch/$(ARCH)/syscall.o
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-
-archclean:
diff --git a/klibc/klibc/arch/s390x/crt0.S b/klibc/klibc/arch/s390x/crt0.S
deleted file mode 100644 (file)
index de35664..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# arch/s390/crt0.S
-#
-# Does arch-specific initialization and invokes __libc_init
-# with the appropriate arguments.
-#
-# See __static_init.c or __shared_init.c for the expected
-# arguments.
-#
-       
-       .text
-       .align 4
-       .type _start,@function
-       .globl _start
-_start:
-       lgr     %r2,%r15
-       lghi    %r3,0
-       aghi    %r15,-160
-       jg      __libc_init
-
-       .size _start,.-_start
diff --git a/klibc/klibc/arch/s390x/mmap.c b/klibc/klibc/arch/s390x/mmap.c
deleted file mode 100644 (file)
index 158f093..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <sys/types.h>
-#include <linux/unistd.h>
-
-struct mmap_arg_struct {
-       unsigned long addr;
-       unsigned long len;
-       unsigned long prot;
-       unsigned long flags;
-       unsigned long fd;
-       unsigned long offset;
-};
-
-void * mmap(void * addr, size_t len, int prot, int flags,
-                                                int fd, off_t offset)
-{
-       struct mmap_arg_struct args = {
-               (unsigned long) addr,
-               (unsigned long) len,
-               (unsigned long) prot,
-               (unsigned long) flags,
-               (unsigned long) fd,
-               (unsigned long) offset,
-       };
-
-       register struct mmap_arg_struct *__arg1 asm("2") = &args;
-       register long __svcres asm("2");
-       unsigned long __res;
-
-       __asm__ __volatile__ (
-               "    svc %b1\n"
-               : "=d" (__svcres)
-               : "i" (__NR_mmap),
-                 "0" (__arg1)
-               : "1", "cc", "memory");
-       __res = __svcres;
-       if (__res >= (unsigned long)-125) {
-               errno = -__res;
-               __res = -1;
-       }
-       return (void *)__res;
-}
diff --git a/klibc/klibc/arch/s390x/setjmp.S b/klibc/klibc/arch/s390x/setjmp.S
deleted file mode 100644 (file)
index 251c57d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# arch/s390x/setjmp.S
-#
-# setjmp/longjmp for the s390x architecture
-#
-
-       .text
-       .align 4
-       .globl setjmp
-       .type setjmp, @function
-setjmp:
-       stmg    %r6,%r15,0(%r2)         # save all general registers
-       std     %f1,80(%r2)             # save fp registers f4 and f6
-       std     %f3,88(%r2)
-       std     %f5,96(%r2)
-       std     %f7,104(%r2)
-       lghi    %r2,0                   # return 0
-       br      %r14
-
-       .size setjmp,.-setjmp
-
-       .text
-       .align 4
-       .globl longjmp
-       .type longjmp, @function
-longjmp:
-       lgr     %r1,%r2                 # jmp_buf
-       lgr     %r2,%r3                 # return value
-       ld      %f7,104(%r1)            # restore all saved registers
-       ld      %f5,96(%r1)
-       ld      %f3,88(%r1)
-       ld      %f1,80(%r1)
-       lmg     %r6,%r15,0(%r1)
-       br      %r14                    # return to restored address
-
-       .size longjmp,.-longjmp
diff --git a/klibc/klibc/arch/s390x/syscall.c b/klibc/klibc/arch/s390x/syscall.c
deleted file mode 100644 (file)
index c0f17c4..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * arch/s390/syscall.c
- *
- * Common error-handling path for system calls.
- * The return value from __syscall_common becomes the
- * return value from the system call.
- */
-#include <errno.h>
-
-long int __syscall_common(long int err)
-{
-       if ((unsigned long)(err) < (unsigned long)(-125))
-               return err;
-       errno = err;
-       return -1;
-}
diff --git a/klibc/klibc/arch/s390x/sysstub.ph b/klibc/klibc/arch/s390x/sysstub.ph
deleted file mode 100644 (file)
index 55c721b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- perl -*-
-#
-# arch/s390x/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.type ${fname},\@function\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-    print OUT ".if __NR_${sname} < 256\n";
-    print OUT "\tsvc __NR_${sname}\n";
-    print OUT ".else\n";
-    print OUT "\tlghi %r1,__NR_${sname}\n";
-    print OUT "\tsvc 0\n";
-    print OUT ".endif\n";
-    print OUT "\tbrasl %r3,__syscall_common\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/sh/MCONFIG b/klibc/klibc/arch/sh/MCONFIG
deleted file mode 100644 (file)
index 6cd4e5c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-#
-# arch/sh/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHREGFLAGS = -m4 -mno-implicit-fp
-OPTFLAGS     = -Os -fomit-frame-pointer
-BITSIZE      = 32
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# 2 MB -- the normal starting point for text is 4 MB.
-SHAREDFLAGS    = -Ttext 0x00200200
-
diff --git a/klibc/klibc/arch/sh/Makefile.inc b/klibc/klibc/arch/sh/Makefile.inc
deleted file mode 100644 (file)
index ccabfa4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-#
-# arch/sh/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = arch/sh/setjmp.o \
-          arch/sh/syscall.o
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-archclean:
diff --git a/klibc/klibc/arch/sh/crt0.S b/klibc/klibc/arch/sh/crt0.S
deleted file mode 100644 (file)
index 21a3765..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# arch/sh/crt0.S
-#
-# Does arch-specific initialization and invokes __libc_init
-# with the appropriate arguments.
-#
-# See __static_init.c or __shared_init.c for the expected
-# arguments.
-#
-
-       .text
-       .align 2
-       .type _start,#function
-       .globl _start
-       
-_start:
-       mov     r15, r4
-       mov     #0, r5
-       mov.l   1f, r0
-
-       jsr     @r0
-        nop
-
-       .align 2
-1:     .long   __libc_init
-
-       .size _start,.-_start
diff --git a/klibc/klibc/arch/sh/setjmp.S b/klibc/klibc/arch/sh/setjmp.S
deleted file mode 100644 (file)
index 63f7602..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# arch/sh/setjmp.S
-#
-# setjmp/longjmp for the SuperH architecture
-#
-
-#
-# The jmp_buf is assumed to contain the following, in order:
-#
-#              r8
-#              r9
-#              r10
-#              r11
-#              r12
-#              r13
-#              r14
-#              r15
-#              pr
-#
-
-       .text
-       .align 2
-
-       .globl setjmp
-       .type setjmp, #function
-
-setjmp:
-       add     #(9*4), r4
-       sts.l   pr, @-r4
-       mov.l   r15, @-r4
-       mov.l   r14, @-r4
-       mov.l   r13, @-r4
-       mov.l   r12, @-r4
-       mov.l   r11, @-r4
-       mov.l   r10, @-r4
-       mov.l   r9, @-r4
-       mov.l   r8, @-r4
-       rts
-        mov    #0, r0
-
-       .size setjmp,.-setjmp
-
-       .align 2
-       .globl longjmp
-       .type setjmp, #function
-
-longjmp:
-       mov.l   @r4+, r8
-       mov.l   @r4+, r9
-       mov.l   @r4+, r10
-       mov.l   @r4+, r11
-       mov.l   @r4+, r12
-       mov.l   @r4+, r13
-       mov.l   @r4+, r14
-       mov.l   @r4+, r15
-       lds.l   @r4+, pr
-       mov     r5, r0
-       tst     r0, r0
-       bf      1f
-       mov     #1, r0  ! in case val==0
-1:     rts
-        nop
-
-       .size longjmp,.-longjmp
-
diff --git a/klibc/klibc/arch/sh/syscall.S b/klibc/klibc/arch/sh/syscall.S
deleted file mode 100644 (file)
index 41a0486..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * arch/sh/syscall.S
- *
- * On sh, r3 contains the syscall number (set by generated stub);
- * r4..r7 contain arguments 0-3 per the standard calling convention,
- * and arguments 4-5 are passed in r0 and r1.
- *
- * The return value is in r3 rather than standard r0.
- */
-
-       .section ".text.syscall","ax"
-       .align  2
-       .globl  ___syscall_common
-       .type   ___syscall_common,@function
-___syscall_common:
-       mov.l   @(sp),r0
-       mov.l   @(4,sp),r1
-       trapa   #0x15
-       mov.l   1f,r0
-       cmp/hs  r0,r3
-       bt/s    3f
-         neg   r3,r4
-       mov.l   2f,r5
-       mov.l   r4,@r5
-       rts
-         mov   #-1,r0
-3:
-       rts
-         mov   r3,r0
-
-       .align 2
-1:     .long   -4096           /* Errno limit */
-2:     .long   errno
-
-       .size   ___syscall_common,.-___syscall_common
diff --git a/klibc/klibc/arch/sh/sysstub.ph b/klibc/klibc/arch/sh/sysstub.ph
deleted file mode 100644 (file)
index ce04b73..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- perl -*-
-#
-# arch/sh/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.section\t\".text.syscall\",\"ax\"\n";
-    print OUT "\t.type\t${fname},\#function\n";
-    print OUT "\t.globl\t${fname}\n";
-    print OUT "\t.align\t2\n";
-    print OUT "${fname}:\n";
-    print OUT "\tbra\t__syscall_common\n";
-    print OUT "#if __NR_${sname} >= 128\n";
-    print OUT "\t  mov.l\t1f, r3\n";
-    print OUT "#else\n";
-    print OUT "\t  mov\t# __NR_${sname}, r3\n";
-    print OUT "#endif\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    print OUT "\n";
-    print OUT "#if __NR_${sname} >= 128\n";
-    print OUT "\t.align\t2\n";
-    print OUT "1:\t.long\t__NR_${sname}\n";
-    print OUT "#endif\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/sparc/MCONFIG b/klibc/klibc/arch/sparc/MCONFIG
deleted file mode 100644 (file)
index 3a5cbaa..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-#
-# arch/sparc/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-OPTFLAGS = -Os -m32 -mptr32
-BITSIZE  = 32
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# Normal binaries start at 64K; the linker wants 64K alignment,
-# and call instructions have a 30-bit signed offset, << 2.
-SHAREDFLAGS    = -Ttext 0x40000100
diff --git a/klibc/klibc/arch/sparc/Makefile.inc b/klibc/klibc/arch/sparc/Makefile.inc
deleted file mode 100644 (file)
index bea1dbc..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- makefile -*-
-#
-# arch/sparc/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/sdiv.o \
-       arch/$(ARCH)/udiv.o \
-       arch/$(ARCH)/srem.o \
-       arch/$(ARCH)/urem.o \
-       arch/$(ARCH)/smul.o \
-       arch/$(ARCH)/umul.o \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       arch/$(ARCH)/sysfork.o \
-       libgcc/__divdi3.o \
-       libgcc/__moddi3.o \
-       libgcc/__udivdi3.o \
-       libgcc/__umoddi3.o \
-       libgcc/__udivmoddi4.o
-
-arch/$(ARCH)/sdiv.S: arch/$(ARCH)/divrem.m4
-       @echo 'building $@ from $^'
-       @(echo "define(NAME,\`.div')define(OP,\`div')define(S,\`true')"; \
-        cat $^) | m4 > $@
-       @chmod 444 $@
-
-arch/$(ARCH)/udiv.S: arch/$(ARCH)/divrem.m4
-       @echo 'building $@ from $^'
-       @(echo "define(NAME,\`.udiv')define(OP,\`div')define(S,\`false')"; \
-        cat $^) | m4 > $@
-       @chmod 444 $@
-
-arch/$(ARCH)/srem.S: arch/$(ARCH)/divrem.m4
-       @echo 'building $@ from $^'
-       @(echo "define(NAME,\`.rem')define(OP,\`rem')define(S,\`true')"; \
-        cat $^) | m4 > $@
-       @chmod 444 $@
-
-arch/$(ARCH)/urem.S: arch/$(ARCH)/divrem.m4
-       @echo 'building $@ from $^'
-       @(echo "define(NAME,\`.urem')define(OP,\`rem')define(S,\`false')"; \
-        cat $^) | m4 > $@
-       @chmod 444 $@
-
-archclean:
-       rm -f arch/$(ARCH)/?div.S arch/$(ARCH)/?rem.S
diff --git a/klibc/klibc/arch/sparc/crt0.S b/klibc/klibc/arch/sparc/crt0.S
deleted file mode 100644 (file)
index 63db188..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TARGET_PTR_SIZE        32
-#include "crt0i.S"
diff --git a/klibc/klibc/arch/sparc/crt0i.S b/klibc/klibc/arch/sparc/crt0i.S
deleted file mode 100644 (file)
index 97652a3..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-! This file derived from the equivalent in newlib
-!
-! C run time start off
-
-! This file supports:
-!
-! - both 32bit pointer and 64bit pointer environments (at compile time)
-! - an imposed stack bias (of 2047) (at run time)
-! - medium/low and medium/anywhere code models (at run time)
-
-! Initial stack setup:
-!
-!    bottom of stack (higher memory address)
-!      ...
-!      text of environment strings
-!      text of argument strings
-!      envp[envc] = 0 (4/8 bytes)
-!      ...
-!      env[0] (4/8 bytes)
-!      argv[argc] = 0 (4/8 bytes)
-!      ...
-!      argv[0] (4/8 bytes)
-!      argc (4/8 bytes)
-!      register save area (64 bits by 16 registers = 128 bytes)
-!      top of stack (%sp)
-
-! Stack Bias:
-!
-! It is the responsibility of the o/s to set this up.
-! We handle both a 0 and 2047 value for the stack bias.
-
-! Medium/Anywhere code model support:
-!
-! In this model %g4 points to the start of the data segment.
-! The text segment can go anywhere, but %g4 points to the *data* segment.
-! It is up to the compiler/linker to get this right.
-!
-! Since this model is statically linked the start of the data segment
-! is known at link time.  Eg:
-!
-!      sethi   %hh(data_start), %g1
-!      sethi   %lm(data_start), %g4
-!      or      %g1, %hm(data_start), %g1
-!      or      %g4, %lo(data_start), %g4
-!      sllx    %g1, 32, %g1
-!      or      %g4, %g1, %g4
-!
-! FIXME: For now we just assume 0.
-
-! FIXME: if %g1 contains a non-zero value, atexit() should be invoked
-! with this value.
-
-
-       .text
-       .align 4
-       .globl _start
-       .type _start, @function
-_start:
-       clr     %fp
-
-! We use %g4 even if the code model is Medium/Low (simplifies the code).
-
-       clr     %g4                     ! Medium/Anywhere base reg
-
-! If there is a stack bias in effect, account for it in %g5.  Then always
-! add %g5 to stack references below.  This way the code can be used with
-! or without an imposed bias.
-
-       andcc   %sp, 1, %g5
-       bz,a .LNoBias
-        nop
-       mov     2047, %g5
-.LNoBias:
-       add     %sp, %g5, %g5
-
-! On entry, the kernel leaves room for one register frame, but
-! the C API wants more free space.  Thus, we need to drop the stack
-! pointer additionally.   
-
-#if TARGET_PTR_SIZE == 32
-       sub     %sp, 32, %sp            ! make room for incoming arguments
-#else /* TARGET_PTR_SIZE == 64 */
-       sub     %sp, 64, %sp            ! make room for incoming arguments
-#endif
-
-! Set up pointers to the ELF data structure (argc, argv, ...)
-! Pass as the first argument to __libc_init
-#if TARGET_PTR_SIZE == 32
-       add     %g5, 0x40, %o0
-#else /* TARGET_PTR_SIZE == 64 */
-       add     %g5, 0x80, %o0
-#endif
-
-       call    __libc_init
-        mov    %g1, %o1        ! This is the "atexit" pointer;
-                               ! pass as the second argument to __libc_init
-
-! If __libc_init returns, something is hosed.  Try an illegal insn.
-! If that does not work, the o/s is hosed more than we are.
-       .long 0
diff --git a/klibc/klibc/arch/sparc/divrem.m4 b/klibc/klibc/arch/sparc/divrem.m4
deleted file mode 100644 (file)
index aa4171d..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * Copyright (c) 1992, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This software was developed by the Computer Systems Engineering group
- * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
- * contributed to Berkeley.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: Header: divrem.m4,v 1.4 92/06/25 13:23:57 torek Exp
- * $NetBSD: divrem.m4,v 1.4 1997/10/09 10:07:54 lukem Exp $
- */
-
-/*
- * Division and remainder, from Appendix E of the Sparc Version 8
- * Architecture Manual, with fixes from Gordon Irlam.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-       .asciz "@(#)divrem.m4   8.1 (Berkeley) 6/4/93"
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Input: dividend and divisor in %o0 and %o1 respectively.
- *
- * m4 parameters:
- *  NAME       name of function to generate
- *  OP         OP=div => %o0 / %o1; OP=rem => %o0 % %o1
- *  S          S=true => signed; S=false => unsigned
- *
- * Algorithm parameters:
- *  N          how many bits per iteration we try to get (4)
- *  WORDSIZE   total number of bits (32)
- *
- * Derived constants:
- *  TWOSUPN    2^N, for label generation (m4 exponentiation currently broken)
- *  TOPBITS    number of bits in the top `decade' of a number
- *
- * Important variables:
- *  Q          the partial quotient under development (initially 0)
- *  R          the remainder so far, initially the dividend
- *  ITER       number of main division loop iterations required;
- *             equal to ceil(log2(quotient) / N).  Note that this
- *             is the log base (2^N) of the quotient.
- *  V          the current comparand, initially divisor*2^(ITER*N-1)
- *
- * Cost:
- *  Current estimate for non-large dividend is
- *     ceil(log2(quotient) / N) * (10 + 7N/2) + C
- *  A large dividend is one greater than 2^(31-TOPBITS) and takes a
- *  different path, as the upper bits of the quotient must be developed
- *  one bit at a time.
- */
-
-define(N, `4')
-define(TWOSUPN, `16')
-define(WORDSIZE, `32')
-define(TOPBITS, eval(WORDSIZE - N*((WORDSIZE-1)/N)))
-
-define(dividend, `%o0')
-define(divisor, `%o1')
-define(Q, `%o2')
-define(R, `%o3')
-define(ITER, `%o4')
-define(V, `%o5')
-
-/* m4 reminder: ifelse(a,b,c,d) => if a is b, then c, else d */
-define(T, `%g1')
-define(SC, `%g7')
-ifelse(S, `true', `define(SIGN, `%g6')')
-
-/*
- * This is the recursive definition for developing quotient digits.
- *
- * Parameters:
- *  $1 the current depth, 1 <= $1 <= N
- *  $2 the current accumulation of quotient bits
- *  N  max depth
- *
- * We add a new bit to $2 and either recurse or insert the bits in
- * the quotient.  R, Q, and V are inputs and outputs as defined above;
- * the condition codes are expected to reflect the input R, and are
- * modified to reflect the output R.
- */
-define(DEVELOP_QUOTIENT_BITS,
-`      ! depth $1, accumulated bits $2
-       bl      L.$1.eval(TWOSUPN+$2)
-       srl     V,1,V
-       ! remainder is positive
-       subcc   R,V,R
-       ifelse($1, N,
-       `       b       9f
-               add     Q, ($2*2+1), Q
-       ', `    DEVELOP_QUOTIENT_BITS(incr($1), `eval(2*$2+1)')')
-L.$1.eval(TWOSUPN+$2):
-       ! remainder is negative
-       addcc   R,V,R
-       ifelse($1, N,
-       `       b       9f
-               add     Q, ($2*2-1), Q
-       ', `    DEVELOP_QUOTIENT_BITS(incr($1), `eval(2*$2-1)')')
-       ifelse($1, 1, `9:')')
-
-#include <machine/asm.h>
-#include <machine/trap.h>
-
-FUNC(NAME)
-ifelse(S, `true',
-`      ! compute sign of result; if neither is negative, no problem
-       orcc    divisor, dividend, %g0  ! either negative?
-       bge     2f                      ! no, go do the divide
-       ifelse(OP, `div',
-               `xor    divisor, dividend, SIGN',
-               `mov    dividend, SIGN')        ! compute sign in any case
-       tst     divisor
-       bge     1f
-       tst     dividend
-       ! divisor is definitely negative; dividend might also be negative
-       bge     2f                      ! if dividend not negative...
-       neg     divisor                 ! in any case, make divisor nonneg
-1:     ! dividend is negative, divisor is nonnegative
-       neg     dividend                ! make dividend nonnegative
-2:
-')
-       ! Ready to divide.  Compute size of quotient; scale comparand.
-       orcc    divisor, %g0, V
-       bnz     1f
-       mov     dividend, R
-
-               ! Divide by zero trap.  If it returns, return 0 (about as
-               ! wrong as possible, but that is what SunOS does...).
-               t       ST_DIV0
-               retl
-               clr     %o0
-
-1:
-       cmp     R, V                    ! if divisor exceeds dividend, done
-       blu     Lgot_result             ! (and algorithm fails otherwise)
-       clr     Q
-       sethi   %hi(1 << (WORDSIZE - TOPBITS - 1)), T
-       cmp     R, T
-       blu     Lnot_really_big
-       clr     ITER
-
-       ! `Here the dividend is >= 2^(31-N) or so.  We must be careful here,
-       ! as our usual N-at-a-shot divide step will cause overflow and havoc.
-       ! The number of bits in the result here is N*ITER+SC, where SC <= N.
-       ! Compute ITER in an unorthodox manner: know we need to shift V into
-       ! the top decade: so do not even bother to compare to R.'
-       1:
-               cmp     V, T
-               bgeu    3f
-               mov     1, SC
-               sll     V, N, V
-               b       1b
-               inc     ITER
-
-       ! Now compute SC.
-       2:      addcc   V, V, V
-               bcc     Lnot_too_big
-               inc     SC
-
-               ! We get here if the divisor overflowed while shifting.
-               ! This means that R has the high-order bit set.
-               ! Restore V and subtract from R.
-               sll     T, TOPBITS, T   ! high order bit
-               srl     V, 1, V         ! rest of V
-               add     V, T, V
-               b       Ldo_single_div
-               dec     SC
-
-       Lnot_too_big:
-       3:      cmp     V, R
-               blu     2b
-               nop
-               be      Ldo_single_div
-               nop
-       /* NB: these are commented out in the V8-Sparc manual as well */
-       /* (I do not understand this) */
-       ! V > R: went too far: back up 1 step
-       !       srl     V, 1, V
-       !       dec     SC
-       ! do single-bit divide steps
-       !
-       ! We have to be careful here.  We know that R >= V, so we can do the
-       ! first divide step without thinking.  BUT, the others are conditional,
-       ! and are only done if R >= 0.  Because both R and V may have the high-
-       ! order bit set in the first step, just falling into the regular
-       ! division loop will mess up the first time around.
-       ! So we unroll slightly...
-       Ldo_single_div:
-               deccc   SC
-               bl      Lend_regular_divide
-               nop
-               sub     R, V, R
-               mov     1, Q
-               b       Lend_single_divloop
-               nop
-       Lsingle_divloop:
-               sll     Q, 1, Q
-               bl      1f
-               srl     V, 1, V
-               ! R >= 0
-               sub     R, V, R
-               b       2f
-               inc     Q
-       1:      ! R < 0
-               add     R, V, R
-               dec     Q
-       2:
-       Lend_single_divloop:
-               deccc   SC
-               bge     Lsingle_divloop
-               tst     R
-               b,a     Lend_regular_divide
-
-Lnot_really_big:
-1:
-       sll     V, N, V
-       cmp     V, R
-       bleu    1b
-       inccc   ITER
-       be      Lgot_result
-       dec     ITER
-
-       tst     R       ! set up for initial iteration
-Ldivloop:
-       sll     Q, N, Q
-       DEVELOP_QUOTIENT_BITS(1, 0)
-Lend_regular_divide:
-       deccc   ITER
-       bge     Ldivloop
-       tst     R
-       bl,a    Lgot_result
-       ! non-restoring fixup here (one instruction only!)
-ifelse(OP, `div',
-`      dec     Q
-', `   add     R, divisor, R
-')
-
-Lgot_result:
-ifelse(S, `true',
-`      ! check to see if answer should be < 0
-       tst     SIGN
-       bl,a    1f
-       ifelse(OP, `div', `neg Q', `neg R')
-1:')
-       retl
-       ifelse(OP, `div', `mov Q, %o0', `mov R, %o0')
diff --git a/klibc/klibc/arch/sparc/setjmp.S b/klibc/klibc/arch/sparc/setjmp.S
deleted file mode 100644 (file)
index f41ee2b..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-!
-! setjmp.S
-!
-! Basic setjmp/longjmp
-!
-! This code was based on the equivalent code in NetBSD
-!
-
-#include <machine/asm.h>
-#include <machine/trap.h>
-
-!
-! The jmp_buf contains the following entries:
-!   sp
-!   fp
-!   pc
-!      
-ENTRY(setjmp)
-       st      %sp,[%o0+0]     ! Callers stack pointer
-       st      %o7,[%o0+4]     ! Return pc
-       st      %fp,[%o0+8]     ! Frame pointer
-       retl                    ! Return
-        clr    %o0             !  ...0
-
-ENTRY(longjmp)
-       sub     %sp, 64, %sp    ! set up a local stack frame
-0:
-       t       ST_FLUSHWIN     ! flush register windows out to memory
-       !
-       ! We restore the saved stack pointer to %fp, then issue
-       ! a restore instruction which will reload the register
-       ! window from the stack.
-       !
-        ld      [%o0+4], %o7    /* restore return pc */
-        ld      [%o0+0], %fp    /* and stack pointer */
-
-        retl                    ! success, return %g6
-         restore        %o1, 0, %o0
diff --git a/klibc/klibc/arch/sparc/smul.S b/klibc/klibc/arch/sparc/smul.S
deleted file mode 100644 (file)
index 0eb218b..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*     $NetBSD: mul.S,v 1.3 1997/07/16 14:37:42 christos Exp $ */
-
-/*
- * Copyright (c) 1992, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This software was developed by the Computer Systems Engineering group
- * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
- * contributed to Berkeley.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: Header: mul.s,v 1.5 92/06/25 13:24:03 torek Exp
- */
-
-#include <machine/asm.h>
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-       .asciz "@(#)mul.s       8.1 (Berkeley) 6/4/93"
-#else
-       RCSID("$NetBSD: mul.S,v 1.3 1997/07/16 14:37:42 christos Exp $")
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Signed multiply, from Appendix E of the Sparc Version 8
- * Architecture Manual.
- *
- * Returns %o0 * %o1 in %o1%o0 (i.e., %o1 holds the upper 32 bits of
- * the 64-bit product).
- *
- * This code optimizes short (less than 13-bit) multiplies.
- */
-
-FUNC(.mul)
-       mov     %o0, %y         ! multiplier -> Y
-       andncc  %o0, 0xfff, %g0 ! test bits 12..31
-       be      Lmul_shortway   ! if zero, can do it the short way
-       andcc   %g0, %g0, %o4   ! zero the partial product and clear N and V
-
-       /*
-        * Long multiply.  32 steps, followed by a final shift step.
-        */
-       mulscc  %o4, %o1, %o4   ! 1
-       mulscc  %o4, %o1, %o4   ! 2
-       mulscc  %o4, %o1, %o4   ! 3
-       mulscc  %o4, %o1, %o4   ! 4
-       mulscc  %o4, %o1, %o4   ! 5
-       mulscc  %o4, %o1, %o4   ! 6
-       mulscc  %o4, %o1, %o4   ! 7
-       mulscc  %o4, %o1, %o4   ! 8
-       mulscc  %o4, %o1, %o4   ! 9
-       mulscc  %o4, %o1, %o4   ! 10
-       mulscc  %o4, %o1, %o4   ! 11
-       mulscc  %o4, %o1, %o4   ! 12
-       mulscc  %o4, %o1, %o4   ! 13
-       mulscc  %o4, %o1, %o4   ! 14
-       mulscc  %o4, %o1, %o4   ! 15
-       mulscc  %o4, %o1, %o4   ! 16
-       mulscc  %o4, %o1, %o4   ! 17
-       mulscc  %o4, %o1, %o4   ! 18
-       mulscc  %o4, %o1, %o4   ! 19
-       mulscc  %o4, %o1, %o4   ! 20
-       mulscc  %o4, %o1, %o4   ! 21
-       mulscc  %o4, %o1, %o4   ! 22
-       mulscc  %o4, %o1, %o4   ! 23
-       mulscc  %o4, %o1, %o4   ! 24
-       mulscc  %o4, %o1, %o4   ! 25
-       mulscc  %o4, %o1, %o4   ! 26
-       mulscc  %o4, %o1, %o4   ! 27
-       mulscc  %o4, %o1, %o4   ! 28
-       mulscc  %o4, %o1, %o4   ! 29
-       mulscc  %o4, %o1, %o4   ! 30
-       mulscc  %o4, %o1, %o4   ! 31
-       mulscc  %o4, %o1, %o4   ! 32
-       mulscc  %o4, %g0, %o4   ! final shift
-
-       ! If %o0 was negative, the result is
-       !       (%o0 * %o1) + (%o1 << 32))
-       ! We fix that here.
-
-       tst     %o0
-       bge     1f
-       rd      %y, %o0
-
-       ! %o0 was indeed negative; fix upper 32 bits of result by subtracting 
-       ! %o1 (i.e., return %o4 - %o1 in %o1).
-       retl
-       sub     %o4, %o1, %o1
-
-1:
-       retl
-       mov     %o4, %o1
-
-Lmul_shortway:
-       /*
-        * Short multiply.  12 steps, followed by a final shift step.
-        * The resulting bits are off by 12 and (32-12) = 20 bit positions,
-        * but there is no problem with %o0 being negative (unlike above).
-        */
-       mulscc  %o4, %o1, %o4   ! 1
-       mulscc  %o4, %o1, %o4   ! 2
-       mulscc  %o4, %o1, %o4   ! 3
-       mulscc  %o4, %o1, %o4   ! 4
-       mulscc  %o4, %o1, %o4   ! 5
-       mulscc  %o4, %o1, %o4   ! 6
-       mulscc  %o4, %o1, %o4   ! 7
-       mulscc  %o4, %o1, %o4   ! 8
-       mulscc  %o4, %o1, %o4   ! 9
-       mulscc  %o4, %o1, %o4   ! 10
-       mulscc  %o4, %o1, %o4   ! 11
-       mulscc  %o4, %o1, %o4   ! 12
-       mulscc  %o4, %g0, %o4   ! final shift
-
-       /*
-        *  %o4 has 20 of the bits that should be in the low part of the
-        * result; %y has the bottom 12 (as %y's top 12).  That is:
-        *
-        *        %o4               %y
-        * +----------------+----------------+
-        * | -12- |   -20-  | -12- |   -20-  |
-        * +------(---------+------)---------+
-        *  --hi-- ----low-part----
-        *
-        * The upper 12 bits of %o4 should be sign-extended to form the
-        * high part of the product (i.e., highpart = %o4 >> 20).
-        */
-
-       rd      %y, %o5
-       sll     %o4, 12, %o0    ! shift middle bits left 12
-       srl     %o5, 20, %o5    ! shift low bits right 20, zero fill at left
-       or      %o5, %o0, %o0   ! construct low part of result
-       retl
-       sra     %o4, 20, %o1    ! ... and extract high part of result
diff --git a/klibc/klibc/arch/sparc/syscall.S b/klibc/klibc/arch/sparc/syscall.S
deleted file mode 100644 (file)
index c0273f7..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/sparc/syscall.S
- *
- * Common system-call stub; %g1 already set to syscall number
- */
-
-       .globl  __syscall_common
-       .type   __syscall_common,#function
-               .align  4
-__syscall_common:
-       t       0x10
-       bcc     1f
-         sethi %hi(errno), %g4
-       or      %g4, %lo(errno), %g4
-       st      %o0,[%g4]
-       mov     -1, %o0
-1:
-               retl
-         nop
diff --git a/klibc/klibc/arch/sparc/sysfork.S b/klibc/klibc/arch/sparc/sysfork.S
deleted file mode 100644 (file)
index a66c76e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * arch/sparc/sysfork.S
- *
- * The fork and vfork system calls are special on sparc[64]:
- * they return the "other process" pid in %o0 and the
- * "is child" flag in %o1
- *
- * Common system-call stub; %g1 already set to syscall number
- */
-
-       .globl  __syscall_forkish
-       .type   __syscall_forkish,#function
-               .align  4
-__syscall_forkish:
-       t       0x10
-       sub     %o1, 1, %o1
-       bcc,a   1f
-         and   %o0, %o1, %o0
-       sethi   %hi(errno), %g4
-       or      %g4, %lo(errno), %g4
-       st      %o0,[%g4]
-       mov     -1, %o0
-1:
-               retl
-         nop
diff --git a/klibc/klibc/arch/sparc/sysstub.ph b/klibc/klibc/arch/sparc/sysstub.ph
deleted file mode 100644 (file)
index d8cedb5..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- perl -*-
-#
-# arch/sparc32/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    $stype = $stype || 'common';
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.type ${fname},\@function\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-    print OUT "\tb __syscall_${stype}\n";
-    print OUT "\t  mov\t__NR_${sname}, %g1\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/sparc/umul.S b/klibc/klibc/arch/sparc/umul.S
deleted file mode 100644 (file)
index 6a7193d..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/*     $NetBSD: umul.S,v 1.3 1997/07/16 14:37:44 christos Exp $        */
-
-/*
- * Copyright (c) 1992, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This software was developed by the Computer Systems Engineering group
- * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
- * contributed to Berkeley.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: Header: umul.s,v 1.4 92/06/25 13:24:05 torek Exp
- */
-
-#include <machine/asm.h>
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-       .asciz "@(#)umul.s      8.1 (Berkeley) 6/4/93"
-#else
-       RCSID("$NetBSD: umul.S,v 1.3 1997/07/16 14:37:44 christos Exp $")
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Unsigned multiply.  Returns %o0 * %o1 in %o1%o0 (i.e., %o1 holds the
- * upper 32 bits of the 64-bit product).
- *
- * This code optimizes short (less than 13-bit) multiplies.  Short
- * multiplies require 25 instruction cycles, and long ones require
- * 45 instruction cycles.
- *
- * On return, overflow has occurred (%o1 is not zero) if and only if
- * the Z condition code is clear, allowing, e.g., the following:
- *
- *     call    .umul
- *     nop
- *     bnz     overflow        (or tnz)
- */
-
-FUNC(.umul)
-       or      %o0, %o1, %o4
-       mov     %o0, %y         ! multiplier -> Y
-       andncc  %o4, 0xfff, %g0 ! test bits 12..31 of *both* args
-       be      Lmul_shortway   ! if zero, can do it the short way
-       andcc   %g0, %g0, %o4   ! zero the partial product and clear N and V
-
-       /*
-        * Long multiply.  32 steps, followed by a final shift step.
-        */
-       mulscc  %o4, %o1, %o4   ! 1
-       mulscc  %o4, %o1, %o4   ! 2
-       mulscc  %o4, %o1, %o4   ! 3
-       mulscc  %o4, %o1, %o4   ! 4
-       mulscc  %o4, %o1, %o4   ! 5
-       mulscc  %o4, %o1, %o4   ! 6
-       mulscc  %o4, %o1, %o4   ! 7
-       mulscc  %o4, %o1, %o4   ! 8
-       mulscc  %o4, %o1, %o4   ! 9
-       mulscc  %o4, %o1, %o4   ! 10
-       mulscc  %o4, %o1, %o4   ! 11
-       mulscc  %o4, %o1, %o4   ! 12
-       mulscc  %o4, %o1, %o4   ! 13
-       mulscc  %o4, %o1, %o4   ! 14
-       mulscc  %o4, %o1, %o4   ! 15
-       mulscc  %o4, %o1, %o4   ! 16
-       mulscc  %o4, %o1, %o4   ! 17
-       mulscc  %o4, %o1, %o4   ! 18
-       mulscc  %o4, %o1, %o4   ! 19
-       mulscc  %o4, %o1, %o4   ! 20
-       mulscc  %o4, %o1, %o4   ! 21
-       mulscc  %o4, %o1, %o4   ! 22
-       mulscc  %o4, %o1, %o4   ! 23
-       mulscc  %o4, %o1, %o4   ! 24
-       mulscc  %o4, %o1, %o4   ! 25
-       mulscc  %o4, %o1, %o4   ! 26
-       mulscc  %o4, %o1, %o4   ! 27
-       mulscc  %o4, %o1, %o4   ! 28
-       mulscc  %o4, %o1, %o4   ! 29
-       mulscc  %o4, %o1, %o4   ! 30
-       mulscc  %o4, %o1, %o4   ! 31
-       mulscc  %o4, %o1, %o4   ! 32
-       mulscc  %o4, %g0, %o4   ! final shift
-
-
-       /*
-        * Normally, with the shift-and-add approach, if both numbers are
-        * positive you get the correct result.  WIth 32-bit two's-complement
-        * numbers, -x is represented as
-        *
-        *                x                 32
-        *      ( 2  -  ------ ) mod 2  *  2
-        *                 32
-        *                2
-        *
-        * (the `mod 2' subtracts 1 from 1.bbbb).  To avoid lots of 2^32s,
-        * we can treat this as if the radix point were just to the left
-        * of the sign bit (multiply by 2^32), and get
-        *
-        *      -x  =  (2 - x) mod 2
-        *
-        * Then, ignoring the `mod 2's for convenience:
-        *
-        *   x *  y     = xy
-        *  -x *  y     = 2y - xy
-        *   x * -y     = 2x - xy
-        *  -x * -y     = 4 - 2x - 2y + xy
-        *
-        * For signed multiplies, we subtract (x << 32) from the partial
-        * product to fix this problem for negative multipliers (see mul.s).
-        * Because of the way the shift into the partial product is calculated
-        * (N xor V), this term is automatically removed for the multiplicand,
-        * so we don't have to adjust.
-        *
-        * But for unsigned multiplies, the high order bit wasn't a sign bit,
-        * and the correction is wrong.  So for unsigned multiplies where the
-        * high order bit is one, we end up with xy - (y << 32).  To fix it
-        * we add y << 32.
-        */
-       tst     %o1
-       bl,a    1f              ! if %o1 < 0 (high order bit = 1),
-       add     %o4, %o0, %o4   ! %o4 += %o0 (add y to upper half)
-1:     rd      %y, %o0         ! get lower half of product
-       retl
-       addcc   %o4, %g0, %o1   ! put upper half in place and set Z for %o1==0
-
-Lmul_shortway:
-       /*
-        * Short multiply.  12 steps, followed by a final shift step.
-        * The resulting bits are off by 12 and (32-12) = 20 bit positions,
-        * but there is no problem with %o0 being negative (unlike above),
-        * and overflow is impossible (the answer is at most 24 bits long).
-        */
-       mulscc  %o4, %o1, %o4   ! 1
-       mulscc  %o4, %o1, %o4   ! 2
-       mulscc  %o4, %o1, %o4   ! 3
-       mulscc  %o4, %o1, %o4   ! 4
-       mulscc  %o4, %o1, %o4   ! 5
-       mulscc  %o4, %o1, %o4   ! 6
-       mulscc  %o4, %o1, %o4   ! 7
-       mulscc  %o4, %o1, %o4   ! 8
-       mulscc  %o4, %o1, %o4   ! 9
-       mulscc  %o4, %o1, %o4   ! 10
-       mulscc  %o4, %o1, %o4   ! 11
-       mulscc  %o4, %o1, %o4   ! 12
-       mulscc  %o4, %g0, %o4   ! final shift
-
-       /*
-        * %o4 has 20 of the bits that should be in the result; %y has
-        * the bottom 12 (as %y's top 12).  That is:
-        *
-        *        %o4               %y
-        * +----------------+----------------+
-        * | -12- |   -20-  | -12- |   -20-  |
-        * +------(---------+------)---------+
-        *         -----result-----
-        *
-        * The 12 bits of %o4 left of the `result' area are all zero;
-        * in fact, all top 20 bits of %o4 are zero.
-        */
-
-       rd      %y, %o5
-       sll     %o4, 12, %o0    ! shift middle bits left 12
-       srl     %o5, 20, %o5    ! shift low bits right 20
-       or      %o5, %o0, %o0
-       retl
-       addcc   %g0, %g0, %o1   ! %o1 = zero, and set Z
diff --git a/klibc/klibc/arch/sparc64/MCONFIG b/klibc/klibc/arch/sparc64/MCONFIG
deleted file mode 100644 (file)
index a8a7424..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# -*- makefile -*-
-#
-# arch/sparc64/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHREQFLAGS = -m64 -mptr64
-OPTFLAGS     = -Os
-BITSIZE      = 64
-
-LDFLAGS      = -m elf64_sparc
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# Normal binaries start at 1 MB; the linker wants 1 MB alignment,
-# and call instructions have a 30-bit signed offset, << 2.
-SHAREDFLAGS    = -Ttext 0x80000200
diff --git a/klibc/klibc/arch/sparc64/Makefile.inc b/klibc/klibc/arch/sparc64/Makefile.inc
deleted file mode 100644 (file)
index 06b7953..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-#
-# arch/sparc64/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       arch/$(ARCH)/sysfork.o
-
-archclean:
diff --git a/klibc/klibc/arch/sparc64/crt0.S b/klibc/klibc/arch/sparc64/crt0.S
deleted file mode 100644 (file)
index 5faee7c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TARGET_PTR_SIZE 64
-#include "../sparc/crt0i.S"
diff --git a/klibc/klibc/arch/sparc64/setjmp.S b/klibc/klibc/arch/sparc64/setjmp.S
deleted file mode 100644 (file)
index b04d47f..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-!
-! setjmp.S
-!
-! Basic setjmp/longjmp
-!
-! This code was based on the equivalent code in NetBSD
-!
-
-!
-! The jmp_buf contains the following entries:
-!   sp
-!   fp
-!   pc
-!
-       .text
-       .align  4
-       .global setjmp
-       .type   setjmp, @function
-setjmp:
-       stx     %sp,[%o0+0]     ! Callers stack pointer
-       stx     %o7,[%o0+8]     ! Return pc
-       stx     %fp,[%o0+16]    ! Frame pointer
-       retl                    ! Return
-        clr    %o0             !  ...0
-
-       .size   setjmp,.-setjmp
-
-
-               .globl  longjmp
-       .type   longjmp, @function      
-longjmp:
-       mov     %o1, %g4        ! save return value
-       mov     %o0, %g1        ! save target
-       ldx     [%g1+16],%g5    ! get callers frame
-1:
-       cmp     %fp, %g5        ! compare against desired frame
-       bl,a    1b              ! if below...
-        restore                ! pop frame and loop
-       be,a    2f              ! if there...
-                ldx    [%g1+0],%o2     ! fetch return %sp
-
-.Lbotch:
-       unimp   0               ! ... error ...
-       
-2:
-               cmp     %o2, %sp        ! %sp must not decrease
-       bl      .Lbotch
-        nop
-       mov     %o2, %sp        ! it is OK, put it in place
-
-       ldx     [%g1+8],%o3     ! fetch %pc
-       jmp     %o3 + 8         ! if sucess...
-        mov    %g4,%o0         !   return %g4
-
-       .size   longjmp,.-longjmp
diff --git a/klibc/klibc/arch/sparc64/syscall.S b/klibc/klibc/arch/sparc64/syscall.S
deleted file mode 100644 (file)
index 7ab9d95..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * arch/sparc64/syscall.S
- *
- * Common system-call stub; %g1 already set to syscall number
- */
-
-       .globl  __syscall_common
-       .type   __syscall_common,#function
-               .align  4
-__syscall_common:
-       t       0x6d
-       bcc     %xcc, 1f
-         sethi %hi(errno), %g4
-       or      %g4, %lo(errno), %g4
-       st      %o0,[%g4]
-1:
-               retl
-         movcs %xcc, -1, %o0
diff --git a/klibc/klibc/arch/sparc64/sysfork.S b/klibc/klibc/arch/sparc64/sysfork.S
deleted file mode 100644 (file)
index 739c35e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * arch/sparc64/sysfork.S
- *
- * The fork and vfork system calls are special on sparc[64]:
- * they return the "other process" pid in %o0 and the
- * "is child" flag in %o1
- *
- * Common system-call stub; %g1 already set to syscall number
- *
- * IS THIS CORRECT FOR SPARC64?
- */
-
-       .globl  __syscall_forkish
-       .type   __syscall_forkish,#function
-               .align  4
-__syscall_forkish:
-       t       0x6d
-       sub     %o1, 1, %o1
-       bcc,a   %xcc, 1f
-         and   %o0, %o1, %o0
-       sethi   %hi(errno), %g4
-       or      %g4, %lo(errno), %g4
-       st      %o0,[%g4]
-1:
-               retl
-         movcs %xcc, -1, %o0
diff --git a/klibc/klibc/arch/sparc64/sysstub.ph b/klibc/klibc/arch/sparc64/sysstub.ph
deleted file mode 100644 (file)
index deeb88c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- perl -*-
-#
-# arch/sparc64/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    $stype = $stype || 'common';
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.type ${fname},\@function\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-    print OUT "\tb __syscall_${stype}\n";
-    print OUT "\t  mov\t__NR_${sname}, %g1\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/arch/x86_64/MCONFIG b/klibc/klibc/arch/x86_64/MCONFIG
deleted file mode 100644 (file)
index c9b5da8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- makefile -*-
-#
-# arch/x86-64/MCONFIG
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-# Blatantly copied and modified from i386 version by Mats Petersson, AMD.
-#
-
-#
-# NOTE: -fno-asynchronous-unwind-tables produce significantly smaller
-# binaries (20% smaller), but makes the code completely useless for
-# debugging using gdb.
-#
-ARCHREQFLAGS = -m64
-ifeq ($(DEBUG),y)
-OPTFLAGS     = -Os -fomit-frame-pointer \
-               -falign-functions=0 -falign-jumps=0 -falign-loops=0
-else
-OPTFLAGS     = -Os -fno-asynchronous-unwind-tables -fomit-frame-pointer \
-               -falign-functions=0 -falign-jumps=0 -falign-loops=0
-endif
-BITSIZE      = 64
-LDFLAGS      = -m elf_x86_64
-
-# Extra linkflags when building the shared version of the library
-# This address needs to be reachable using normal inter-module
-# calls, and work on the memory models for this architecture
-# 2 MB - normal binaries start at 4 MB
-SHAREDFLAGS     = -Ttext 0x00200200
-
-# Additional asm- directories needed during installation
-ASMARCH = asm-i386
-
diff --git a/klibc/klibc/arch/x86_64/Makefile.inc b/klibc/klibc/arch/x86_64/Makefile.inc
deleted file mode 100644 (file)
index 26d880d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-#
-# arch/x86_64/Makefile.inc
-#
-# Special rules for this architecture.  Note that this is actually
-# included from the main Makefile, and that pathnames should be
-# accordingly.
-#
-
-ARCHOBJS = \
-       arch/$(ARCH)/exits.o \
-       arch/$(ARCH)/setjmp.o \
-       arch/$(ARCH)/syscall.o \
-       arch/$(ARCH)/sigreturn.o
-
-ARCHSOOBJS = $(patsubst %.o,%.lo,$(ARCHOBJS))
-
-archclean:
diff --git a/klibc/klibc/arch/x86_64/crt0.S b/klibc/klibc/arch/x86_64/crt0.S
deleted file mode 100644 (file)
index c562708..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# arch/x86_64/crt0.S
-#
-# Does arch-specific initialization and invokes __libc_init
-# with the appropriate arguments.
-#
-# See __static_init.c or __shared_init.c for the expected
-# arguments.
-#
-
-       .text
-       .align 4
-       .type _start,@function
-       .globl _start
-_start:
-       movq %rsp,%rdi                  # Offset of the ELF data structure
-       movq %rdx,%rsi                  # The atexit() pointer (if any)
-       call __libc_init
-       # We should never get here...
-       hlt
-               
-       .size _start,.-_start
diff --git a/klibc/klibc/arch/x86_64/exits.S b/klibc/klibc/arch/x86_64/exits.S
deleted file mode 100644 (file)
index 618f4fb..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# exit and _exit get included in *every* program, and gcc generates
-# horrible code for them.  Yes, this only saves a few bytes, but
-# it does it in every program.
-#
-
-#include <asm/unistd.h>
-
-       .data
-       .align 8
-       .globl __exit_handler
-       .type __exit_handler,@object
-__exit_handler:
-       .quad _exit
-       .size __exit_handler,8
-
-       .text
-       .align 8
-       .globl exit
-       .type exit,@function
-exit:
-       jmp *(__exit_handler)
-       .size exit,.-exit
-
-       /* No need to save any registers... we're exiting! */
-       .text
-       .align 4
-       .globl _exit
-       .type _exit,@function
-_exit:
-       movl $__NR_exit,%eax
-       /* The argument is already in %rdi */
-       syscall
-       .size _exit,.-exit
-
diff --git a/klibc/klibc/arch/x86_64/setjmp.S b/klibc/klibc/arch/x86_64/setjmp.S
deleted file mode 100644 (file)
index 45f547b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# arch/x86_64/setjmp.S
-#
-# setjmp/longjmp for the x86-64 architecture
-#
-
-#
-# The jmp_buf is assumed to contain the following, in order:
-#      %rbx
-#      %rsp (post-return)
-#      %rbp
-#      %r12
-#      %r13
-#      %r14
-#      %r15
-#      <return address>
-#
-
-       .text
-       .align 4
-       .globl setjmp
-       .type setjmp, @function
-setjmp:
-       pop  %rsi                       # Return address, and adjust the stack
-       xorl %eax,%eax                  # Return value
-       movq %rbx,(%rdi)
-       movq %rsp,8(%rdi)               # Post-return %rsp!
-       push %rsi                       # Make the call/return stack happy
-       movq %rbp,16(%rdi)
-       movq %r12,24(%rdi)
-       movq %r13,32(%rdi)
-       movq %r14,40(%rdi)
-       movq %r15,48(%rdi)
-       movq %rsi,56(%rdi)              # Return address
-       ret
-
-       .size setjmp,.-setjmp
-
-       .text
-       .align 4
-       .globl longjmp
-       .type longjmp, @function
-longjmp:
-       movl %esi,%eax                  # Return value (int)
-       movq (%rdi),%rbx
-       movq 8(%rdi),%rsp
-       movq 16(%rdi),%rbp
-       movq 24(%rdi),%r12
-       movq 32(%rdi),%r13
-       movq 40(%rdi),%r14
-       movq 48(%rdi),%r15
-       jmp *56(%rdi)
-
-       .size longjmp,.-longjmp
diff --git a/klibc/klibc/arch/x86_64/sigreturn.S b/klibc/klibc/arch/x86_64/sigreturn.S
deleted file mode 100644 (file)
index 66e7152..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * arch/x86_64/sigreturn.S
- */
-
-#include <asm/unistd.h>
-       
-       .text
-       .align  4
-       .globl  __sigreturn
-       .type   __sigreturn,@function
-__sigreturn:
-       movl    $__NR_rt_sigreturn,%eax
-       syscall
-
-       .size   __sigreturn,.-__sigreturn
diff --git a/klibc/klibc/arch/x86_64/syscall.S b/klibc/klibc/arch/x86_64/syscall.S
deleted file mode 100644 (file)
index 1797797..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * arch/x86-64/syscall.S
- *
- * Common tail-handling code for system calls.
- *
- * The arguments are in the standard argument registers; the system
- * call number in %eax.
- */
-       .text
-       .align  4
-       .globl  __syscall_common
-       .type   __syscall_common,@function
-__syscall_common:
-       movq    %rcx,%r10               # The kernel uses %r10 istf %rcx
-       syscall
-
-       cmpq    $-4095,%rax
-       jnb     1f
-       ret
-
-       # Error return, must set errno
-1:
-       negl    %eax
-       movl    %eax,errno(%rip)        # errno is type int, so 32 bits
-       orq     $-1,%rax                # orq $-1 smaller than movq $-1
-       ret
-
-       .size   __syscall_common,.-__syscall_common
diff --git a/klibc/klibc/arch/x86_64/sysstub.ph b/klibc/klibc/arch/x86_64/sysstub.ph
deleted file mode 100644 (file)
index e2d797b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- perl -*-
-#
-# arch/x86_64/sysstub.ph
-#
-# Script to generate system call stubs
-#
-
-sub make_sysstub($$$$$@) {
-    my($outputdir, $fname, $type, $sname, $stype, @args) = @_;
-
-    open(OUT, '>', "${outputdir}/${fname}.S");
-    print OUT "#include <asm/unistd.h>\n";
-    print OUT "\n";
-    print OUT "\t.type ${fname},\@function\n";
-    print OUT "\t.globl ${fname}\n";
-    print OUT "${fname}:\n";
-    print OUT "\tmovl \$__NR_${sname},%eax\n"; # Zero-extends to 64 bits
-    print OUT "\tjmp __syscall_common\n";
-    print OUT "\t.size ${fname},.-${fname}\n";
-    close(OUT);
-}
-
-1;
diff --git a/klibc/klibc/asprintf.c b/klibc/klibc/asprintf.c
deleted file mode 100644 (file)
index 6002b57..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * asprintf.c
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-int asprintf(char **bufp, const char *format, ...)
-{
-  va_list ap, ap1;
-  int rv;
-  int bytes;
-  char *p;
-
-  va_start(ap, format);
-  va_copy(ap1, ap);
-
-  bytes = vsnprintf(NULL, 0, format, ap1) + 1;
-  va_end(ap1);
-
-  *bufp = p = malloc(bytes);
-  if ( !p )
-    return -1;
-  
-  rv = vsnprintf(p, bytes, format, ap);
-  va_end(ap);
-
-  return rv;
-}
diff --git a/klibc/klibc/assert.c b/klibc/klibc/assert.c
deleted file mode 100644 (file)
index 6d3ff23..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * assert.c
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <assert.h>
-
-void __assert_fail(const char *expr, const char *file, unsigned int line)
-{
-  printf("Assertion %s failed, file %s, line %u\n", expr, file, line);
-  abort();
-}
diff --git a/klibc/klibc/atexit.c b/klibc/klibc/atexit.c
deleted file mode 100644 (file)
index 078dd8b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * atexit.c
- */
-
-#include <stdlib.h>
-
-int atexit(void (*fctn)(void))
-{
-  return on_exit((void (*)(int, void *))fctn, NULL);
-}
diff --git a/klibc/klibc/atexit.h b/klibc/klibc/atexit.h
deleted file mode 100644 (file)
index 792141d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * atexit.h
- *
- * atexit()/on_exit() internal definitions
- */
-
-#ifndef ATEXIT_H
-#define ATEXIT_H
-
-struct atexit {
-  void (*fctn)(int, void *);
-  void *arg;                   /* on_exit() parameter */
-  struct atexit *next;
-};
-
-#endif /* ATEXIT_H */
-
diff --git a/klibc/klibc/atoi.c b/klibc/klibc/atoi.c
deleted file mode 100644 (file)
index a6ec0bf..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE int
-#define NAME atoi
-#include "atox.c"
diff --git a/klibc/klibc/atol.c b/klibc/klibc/atol.c
deleted file mode 100644 (file)
index e65484e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE long
-#define NAME atol
-#include "atox.c"
diff --git a/klibc/klibc/atoll.c b/klibc/klibc/atoll.c
deleted file mode 100644 (file)
index 25df79e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE long long
-#define NAME atoll
-#include "atox.c"
diff --git a/klibc/klibc/atox.c b/klibc/klibc/atox.c
deleted file mode 100644 (file)
index 56f8d93..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * atox.c
- *
- * atoi(), atol(), atoll()
- */
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-TYPE NAME (const char *nptr)
-{
-  return (TYPE) strntoumax(nptr, (char **)NULL, 10, ~(size_t)0);
-}
diff --git a/klibc/klibc/brk.c b/klibc/klibc/brk.c
deleted file mode 100644 (file)
index 0a08c4e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* brk.c - Change data segment size */
-
-/* Written 2000 by Werner Almesberger */
-
-
-#include <stddef.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-char *__current_brk;           /* Common with sbrk.c */
-
-/*
- * The Linux brk() isn't what most people expect, so we call the
- * system call __brk() and provide a wrapper.
- */
-int brk(void *end_data_segment)
-{
-  char *new_brk;
-  
-  new_brk = __brk(end_data_segment);
-  if (new_brk != end_data_segment) return -1;
-  __current_brk = new_brk;
-  return 0;
-}
diff --git a/klibc/klibc/bsd_signal.c b/klibc/klibc/bsd_signal.c
deleted file mode 100644 (file)
index 9acc867..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * bsd_signal.c
- */
-
-#include <signal.h>
-
-__sighandler_t bsd_signal(int signum, __sighandler_t handler)
-{
-  /* BSD signal() semantics */
-  return __signal(signum, handler, SA_RESTART);
-}
diff --git a/klibc/klibc/calloc.c b/klibc/klibc/calloc.c
deleted file mode 100644 (file)
index 228a1b7..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * calloc.c
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-/* FIXME: This should look for multiplication overflow */
-
-void *calloc(size_t nmemb, size_t size)
-{
-  void *ptr;
-
-  size *= nmemb;
-  ptr = malloc(size);
-  if ( ptr )
-    memset(ptr, 0, size);
-
-  return ptr;
-}
-
diff --git a/klibc/klibc/closelog.c b/klibc/klibc/closelog.c
deleted file mode 100644 (file)
index 2359d4f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * closelog.c
- */
-
-#include <syslog.h>
-#include <unistd.h>
-
-extern int __syslog_fd;
-
-void closelog(void)
-{
-  int logfd = __syslog_fd;
-
-  if ( logfd != -1 ) {
-    close(logfd);
-    __syslog_fd = -1;
-  }
-}
diff --git a/klibc/klibc/creat.c b/klibc/klibc/creat.c
deleted file mode 100644 (file)
index 9bd2217..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * creat.c
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-int creat(const char *pathname, mode_t mode)
-{
-  return open(pathname, O_CREAT|O_WRONLY|O_TRUNC, mode);
-}
diff --git a/klibc/klibc/ctypes.c b/klibc/klibc/ctypes.c
deleted file mode 100644 (file)
index acfa05a..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * ctypes.c
- *
- * This is the array that defines <ctype.h> classes.
- * This assumes ISO 8859-1.
- */
-
-#include <ctype.h>
-
-const unsigned char __ctypes[257] = {
-  0,                           /* EOF */
-
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl|__ctype_space, /* BS */
-  __ctype_cntrl|__ctype_space, /* TAB */
-  __ctype_cntrl|__ctype_space, /* LF */
-  __ctype_cntrl|__ctype_space, /* VT */
-  __ctype_cntrl|__ctype_space, /* FF */
-  __ctype_cntrl|__ctype_space, /* CR */
-  __ctype_cntrl,               /* control character */
-
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  __ctype_cntrl,               /* control character */
-  
-  __ctype_print|__ctype_space, /* space */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_digit|__ctype_xdigit, /* digit */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_upper|__ctype_xdigit, /* A-F */
-  __ctype_print|__ctype_upper|__ctype_xdigit, /* A-F */
-  __ctype_print|__ctype_upper|__ctype_xdigit, /* A-F */
-  __ctype_print|__ctype_upper|__ctype_xdigit, /* A-F */
-  __ctype_print|__ctype_upper|__ctype_xdigit, /* A-F */
-  __ctype_print|__ctype_upper|__ctype_xdigit, /* A-F */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_upper, /* G-Z */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_lower|__ctype_xdigit, /* a-f */
-  __ctype_print|__ctype_lower|__ctype_xdigit, /* a-f */
-  __ctype_print|__ctype_lower|__ctype_xdigit, /* a-f */
-  __ctype_print|__ctype_lower|__ctype_xdigit, /* a-f */
-  __ctype_print|__ctype_lower|__ctype_xdigit, /* a-f */
-  __ctype_print|__ctype_lower|__ctype_xdigit, /* a-f */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_lower, /* g-z */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_cntrl,                               /* control character */
-
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-  __ctype_cntrl,                               /* control character */
-
-  __ctype_print|__ctype_space, /* NBSP */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_punct, /* punctuation */
-
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_upper, /* upper accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_punct, /* punctuation */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-  __ctype_print|__ctype_lower, /* lower accented */
-};
diff --git a/klibc/klibc/daemon.c b/klibc/klibc/daemon.c
deleted file mode 100644 (file)
index 75d7146..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * daemon.c - "daemonize" a process
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-int daemon(int nochdir, int noclose)
-{
-  int nullfd;
-  pid_t f;
-
-  if ( !nochdir ) {
-    if ( chdir("/") )
-      return -1;
-  }
-
-  if ( !noclose ) {
-    if ( (nullfd = open("/dev/null", O_RDWR)) < 0 ||
-        dup2(nullfd, 0) < 0 ||
-        dup2(nullfd, 1) < 0 ||
-        dup2(nullfd, 2) < 0 )
-      return -1;
-    close(nullfd);
-  }
-  
-  f = fork();
-  if ( f < 0 )
-    return -1;
-  else if ( f > 0 )
-    _exit(0);
-
-
-  return setsid();
-}
-
-  
diff --git a/klibc/klibc/exec_l.c b/klibc/klibc/exec_l.c
deleted file mode 100644 (file)
index cdae11e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * exec_l.c
- *
- * Common implementation of execl() execle() execlp()
- */
-
-#include <stdarg.h>
-#include <alloca.h>
-#include <unistd.h>
-
-int NAME (const char *path, const char *arg0, ...)
-{
-  va_list ap, cap;
-  int argc = 1, rv;
-  const char **argv, **argp;
-  const char *arg;
-#if EXEC_E
-  char * const * envp;
-#else
-#define envp environ
-#endif
-
-  va_start(ap, arg0);
-  va_copy(cap, ap);
-
-  /* Count the number of arguments */
-  do {
-    arg = va_arg(cap, const char *);
-    argc++;
-  } while ( arg );
-
-  va_end(cap);
-  
-  /* Allocate memory for the pointer array */ 
-  argp = argv = alloca(argc*sizeof(const char *));
-  if ( !argv ) {
-    va_end(ap);
-    return -1;
-  }
-
-  /* Copy the list into an array */
-  *argp++ = arg0;
-  do {
-    *argp++ = arg = va_arg(ap, const char *);
-  } while ( arg );
-
-#if EXEC_E
-  /* execle() takes one more argument for the environment pointer */
-  envp = va_arg(ap, char * const *);
-#endif
-
-  rv = (EXEC_P ? execvpe : execve)(path, (char * const *)argv, envp);
-
-  va_end(ap);
-
-  return rv;
-}
diff --git a/klibc/klibc/execl.c b/klibc/klibc/execl.c
deleted file mode 100644 (file)
index 4581113..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * execl.c
- */
-
-#define NAME execl
-#define EXEC_P 0
-#define EXEC_E 0
-#include "exec_l.c"
diff --git a/klibc/klibc/execle.c b/klibc/klibc/execle.c
deleted file mode 100644 (file)
index b073988..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * execle.c
- */
-
-#define NAME execle
-#define EXEC_P 0
-#define EXEC_E 1
-#include "exec_l.c"
diff --git a/klibc/klibc/execlp.c b/klibc/klibc/execlp.c
deleted file mode 100644 (file)
index 65c9aa4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * execlp.c
- */
-
-#define NAME execlp
-#define EXEC_P 1
-#define EXEC_E 0
-#include "exec_l.c"
diff --git a/klibc/klibc/execlpe.c b/klibc/klibc/execlpe.c
deleted file mode 100644 (file)
index fef972f..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * execlpe.c
- */
-
-#define NAME execlpe
-#define EXEC_P 1
-#define EXEC_E 1
-#include "exec_l.c"
diff --git a/klibc/klibc/execv.c b/klibc/klibc/execv.c
deleted file mode 100644 (file)
index 9856b76..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * execv.c
- */
-
-#include <stdarg.h>
-#include <unistd.h>
-
-int execv(const char *path, char * const * argv)
-{
-  return execve(path, argv, environ);
-}
-
-
diff --git a/klibc/klibc/execvp.c b/klibc/klibc/execvp.c
deleted file mode 100644 (file)
index b1065ee..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * execvp.c
- */
-
-#include <stdarg.h>
-#include <unistd.h>
-
-int execvp(const char *path, char * const * argv)
-{
-  return execvpe(path, argv, environ);
-}
-
-
diff --git a/klibc/klibc/execvpe.c b/klibc/klibc/execvpe.c
deleted file mode 100644 (file)
index fcd5b6f..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * execvpe.c
- *
- * execvpe() function (from which we build execlp, execlpe, execvp).
- *
- * This version of execvpe() will *not* spawn /bin/sh if the command
- * return ENOEXEC.  That's what #! is for, folks!
- *
- * Since execlpe() and execvpe() aren't in POSIX, nor in glibc,
- * I have followed QNX precedent in the implementation of the PATH:
- * the PATH that is used is the one in the current environment, not
- * in the new environment.  Otherwise it would be impossible to pass
- * a different PATH to the new process than the one one would want to
- * use to search.
- */
-
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-
-#define DEFAULT_PATH   "/bin:/usr/bin:."
-
-int execvpe(const char *file, char * const *argv, char * const *envp)
-{
-  char path[PATH_MAX];
-  const char *searchpath, *esp;
-  size_t prefixlen, filelen, totallen;
-
-  if ( strchr(file, '/') )     /* Specific path */
-    return execve(file, argv, envp);
-
-  filelen = strlen(file);
-
-  searchpath = getenv("PATH");
-  if ( !searchpath )
-    searchpath = DEFAULT_PATH;
-  
-  errno = ENOENT; /* Default errno, if execve() doesn't change it */
-
-  do {
-    esp = strchr(searchpath, ':');
-    if ( esp )
-      prefixlen = esp-searchpath;
-    else
-      prefixlen = strlen(searchpath);
-    
-    if ( prefixlen == 0 || searchpath[prefixlen-1] == '/' ) {
-      totallen = prefixlen+filelen;
-      if ( totallen >= PATH_MAX )
-       continue;
-      memcpy(path, searchpath, prefixlen);
-      memcpy(path+prefixlen, file, filelen);
-    } else {
-      totallen = prefixlen+filelen+1;
-      if ( totallen >= PATH_MAX )
-       continue;
-      memcpy(path, searchpath, prefixlen);
-      path[prefixlen] = '/';
-      memcpy(path+prefixlen+1, file, filelen);
-    }
-    path[totallen] = '\0';
-    
-    execve(path, argv, envp);
-    if ( errno == E2BIG || errno == ENOEXEC ||
-        errno == ENOMEM || errno == ETXTBSY )
-      break;                   /* Report this as an error, no more search */
-    
-    searchpath = esp+1;
-  } while ( esp );
-
-  return -1;
-}
-
diff --git a/klibc/klibc/exitc.c b/klibc/klibc/exitc.c
deleted file mode 100644 (file)
index 8819737..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * exit.c
- *
- * Implement exit()
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/syscall.h>
-
-/* We have an assembly version for i386 and x86-64 */
-
-#if !defined(__i386__) && !defined(__x86_64__)
-
-/* This allows atexit/on_exit to install a hook */
-__noreturn (*__exit_handler)(int) = _exit;
-
-__noreturn exit(int rv)
-{
-  __exit_handler(rv);
-}
-
-#endif
diff --git a/klibc/klibc/fgetc.c b/klibc/klibc/fgetc.c
deleted file mode 100644 (file)
index 83eee16..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * fgetc.c
- *
- * Extremely slow fgetc implementation, using _fread().  If people
- * actually need character-oriented input to be fast, we may actually
- * have to implement buffering.  Sigh.
- */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-
-int fgetc(FILE *f)
-{
-  unsigned char ch;
-
-  return (_fread(&ch, 1, f) == 1) ? (int)ch : EOF;
-}
-
diff --git a/klibc/klibc/fgets.c b/klibc/klibc/fgets.c
deleted file mode 100644 (file)
index 72f8a13..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * fgets.c
- *
- * This will be very slow due to the implementation of getc(),
- * but we can't afford to drain characters we don't need from
- * the input.
- */
-
-#include <stdio.h>
-
-char *fgets(char *s, int n, FILE *f)
-{
-  int ch;
-  char *p = s;
-
-  while ( n > 1 ) {
-    ch = getc(f);
-    if ( ch == EOF ) {
-      *p = '\0';
-      return NULL;
-    }
-    *p++ = ch;
-    n--;
-    if ( ch == '\n' )
-      break;
-  }
-  if ( n )
-    *p = '\0';
-  
-  return s;
-}
-
-
-    
diff --git a/klibc/klibc/fopen.c b/klibc/klibc/fopen.c
deleted file mode 100644 (file)
index ee62c68..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * fopen.c
- */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-/* This depends on O_RDONLY == 0, O_WRONLY == 1, O_RDWR == 2 */
-
-
-FILE *fopen(const char *file, const char *mode)
-{
-  int flags = O_RDONLY;
-  int plus = 0;
-
-  while ( *mode ) {
-    switch ( *mode++ ) {
-    case 'r':
-      flags = O_RDONLY;
-      break;
-    case 'w':
-      flags = O_WRONLY|O_CREAT|O_TRUNC;
-      break;
-    case 'a':
-      flags = O_WRONLY|O_CREAT|O_APPEND;
-      break;
-    case '+':
-      plus = 1;
-      break;
-    }
-  }
-
-  if ( plus ) {
-    flags = (flags & ~(O_RDONLY|O_WRONLY)) | O_RDWR;
-  }
-
-  /* Note: __create_file(-1) == NULL, so this is safe */
-  return __create_file(open(file, flags, 0666));
-}
diff --git a/klibc/klibc/fork.c b/klibc/klibc/fork.c
deleted file mode 100644 (file)
index fcd73bd..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * fork.c
- *
- * This is normally just a syscall stub, but at least one system
- * doesn't have sys_fork, only sys_clone...
- */
-
-#include <sys/syscall.h>
-#include <signal.h>
-#include <unistd.h>
-#include <sched.h>
-
-#ifndef __NR_fork
-
-pid_t fork(void)
-{
-  return __clone(SIGCHLD, 0);
-}
-
-#endif /* __NR_fork */
diff --git a/klibc/klibc/fprintf.c b/klibc/klibc/fprintf.c
deleted file mode 100644 (file)
index df3823e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * fprintf.c
- */
-
-#include <stdio.h>
-#include <stdarg.h>
-
-#define BUFFER_SIZE    16384
-
-int fprintf(FILE *file, const char *format, ...)
-{
-  va_list ap;
-  int rv;
-
-  va_start(ap, format);
-  rv = vfprintf(file, format, ap);
-  va_end(ap);
-  return rv;
-}
diff --git a/klibc/klibc/fputc.c b/klibc/klibc/fputc.c
deleted file mode 100644 (file)
index 61aff16..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * fputc.c
- *
- * gcc "printf decompilation" expects this to exist...
- */
-
-#include <stdio.h>
-
-int fputc(int c, FILE *f)
-{
-  unsigned char ch = c;
-
-  return _fwrite(&ch, 1, f) == 1 ? ch : EOF;
-}
diff --git a/klibc/klibc/fputs.c b/klibc/klibc/fputs.c
deleted file mode 100644 (file)
index 4b68f96..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * fputs.c
- *
- * This isn't quite fputs() in the stdio sense, since we don't
- * have stdio, but it takes a file descriptor argument instead
- * of the FILE *.
- */
-
-#include <stdio.h>
-#include <string.h>
-
-int fputs(const char *s, FILE *file)
-{
-  return _fwrite(s, strlen(s), file);
-}
diff --git a/klibc/klibc/fread.c b/klibc/klibc/fread.c
deleted file mode 100644 (file)
index a49f0d8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * fread.c
- */
-
-#include <errno.h>
-#include <unistd.h>
-#include <stdio.h>
-
-size_t _fread(void *buf, size_t count, FILE *f)
-{
-  size_t bytes = 0;
-  ssize_t rv;
-  char *p = buf;
-
-  while ( count ) {
-    rv = read(fileno(f), p, count);
-    if ( rv == -1 ) {
-      if ( errno == EINTR ) {
-       errno = 0;
-       continue;
-      } else
-       break;
-    } else if ( rv == 0 ) {
-      break;
-    }
-
-    p += rv;
-    bytes += rv;
-    count -= rv;
-  }
-
-  return bytes;
-}
-
-    
-      
diff --git a/klibc/klibc/fread2.c b/klibc/klibc/fread2.c
deleted file mode 100644 (file)
index 9e5ac81..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * fread2.c
- *
- * The actual fread() function as a non-inline
- */
-
-#define __NO_FREAD_FWRITE_INLINES
-#include <stdio.h>
-
-size_t fread(void *ptr, size_t size, size_t nmemb, FILE *f)
-{
-  return _fread(ptr, size*nmemb, f)/size;
-}
diff --git a/klibc/klibc/fstatfs.c b/klibc/klibc/fstatfs.c
deleted file mode 100644 (file)
index 09e4674..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * fstatfs.c
- *
- * On architectures which do fstatfs64, wrap the system call
- */
-
-#include <sys/syscall.h>
-#include <sys/vfs.h>
-
-#ifdef __NR_fstatfs64
-
-extern int __fstatfs64(int, size_t, struct statfs *);
-
-int fstatfs(int fd, struct statfs *buf)
-{
-  return __fstatfs64(fd, sizeof *buf, buf);
-}
-
-#endif
diff --git a/klibc/klibc/fwrite.c b/klibc/klibc/fwrite.c
deleted file mode 100644 (file)
index ad61c86..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * fwrite.c
- */
-
-#include <errno.h>
-#include <unistd.h>
-#include <stdio.h>
-
-size_t _fwrite(const void *buf, size_t count, FILE *f)
-{
-  size_t bytes = 0;
-  ssize_t rv;
-  const char *p = buf;
-
-  while ( count ) {
-    rv = write(fileno(f), p, count);
-    if ( rv == -1 ) {
-      if ( errno == EINTR ) {
-       errno = 0;
-       continue; 
-      } else
-       break;
-    } else if ( rv == 0 ) {
-      break;
-    }
-
-    p += rv;
-    bytes += rv;
-    count -= rv;
-  }
-
-  return bytes;
-}
-
-    
-      
diff --git a/klibc/klibc/fwrite2.c b/klibc/klibc/fwrite2.c
deleted file mode 100644 (file)
index 82ec832..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * fwrite2.c
- *
- * The actual fwrite() function as a non-inline
- */
-
-#define __NO_FREAD_FWRITE_INLINES
-#include <stdio.h>
-
-size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *f)
-{
-  return _fwrite(ptr, size*nmemb, f)/size;
-}
diff --git a/klibc/klibc/getcwd.c b/klibc/klibc/getcwd.c
deleted file mode 100644 (file)
index 613ca05..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * getcwd.c
- *
- * The system call behaves differently than the library function.
- */
-
-#include <unistd.h>
-#include <sys/syscall.h>
-
-extern int __getcwd(char * buf, size_t size);
-
-char *getcwd(char *buf, size_t size)
-{
-  return ( __getcwd(buf, size) < 0 ) ? NULL : buf;
-}
-
diff --git a/klibc/klibc/getdomainname.c b/klibc/klibc/getdomainname.c
deleted file mode 100644 (file)
index 4cd68a3..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * getdomainname.c
- */
-
-#include <errno.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/utsname.h>
-
-int getdomainname(char *name, size_t len)
-{
-  struct utsname un;
-
-  if ( !uname(&un) )
-    return -1;
-
-  if ( len < strlen(un.domainname)+1 ) {
-    errno = EINVAL;
-    return -1;
-  }
-
-  strcpy(name, un.domainname);
-
-  return 0;
-}
diff --git a/klibc/klibc/getenv.c b/klibc/klibc/getenv.c
deleted file mode 100644 (file)
index 84fc94c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * getenv.c
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-char *getenv(const char *name)
-{
-  char **p, *q;
-  int len = strlen(name);
-
-  for ( p = environ ; (q = *p) ; p++ ) {
-    if ( !strncmp(name, q, len) && q[len] == '=' ) {
-      return q+(len+1);
-    }
-  }
-
-  return NULL;
-}
-
diff --git a/klibc/klibc/gethostname.c b/klibc/klibc/gethostname.c
deleted file mode 100644 (file)
index 6c5062e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * gethostname.c
- */
-
-#include <errno.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/utsname.h>
-
-int gethostname(char *name, size_t len)
-{
-  struct utsname un;
-
-  if ( !uname(&un) )
-    return -1;
-
-  if ( len < strlen(un.nodename)+1 ) {
-    errno = EINVAL;
-    return -1;
-  }
-
-  strcpy(name, un.nodename);
-
-  return 0;
-}
diff --git a/klibc/klibc/getopt.c b/klibc/klibc/getopt.c
deleted file mode 100644 (file)
index cd534bf..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * getopt.c
- *
- * Simple POSIX getopt(), no GNU extensions...
- */
-
-#include <stdint.h>
-#include <unistd.h>
-#include <string.h>
-
-char *optarg;
-int optind = 1;
-int opterr, optopt;
-static const char *__optptr;
-
-int getopt(int argc, char * const *argv, const char *optstring)
-{
-  const char *carg = argv[optind];
-  const char *osptr;
-  int opt;
-
-  /* We don't actually need argc */
-  (void)argc;
-
-  /* First, eliminate all non-option cases */
-  
-  if ( !carg || carg[0] != '-' || !carg[1] ) {
-    return -1;
-  }
-
-  if ( carg[1] == '-' && !carg[2] ) {
-    optind++;
-    return -1;
-  }
-
-  if ( (uintptr_t)(__optptr-carg) > (uintptr_t)strlen(carg) )
-    __optptr = carg+1; /* Someone frobbed optind, change to new opt. */
-
-  opt = *__optptr++;
-
-  if ( opt != ':' && (osptr = strchr(optstring, opt)) ) {
-    if ( osptr[1] == ':' ) {
-      if ( *__optptr ) {
-       /* Argument-taking option with attached argument */
-       optarg = (char *)__optptr;
-       optind++;
-      } else {
-       /* Argument-taking option with non-attached argument */
-       if ( argv[optind+1] ) {
-         optarg = (char *)argv[optind+1];
-         optind += 2;
-       } else {
-         /* Missing argument */
-         optind++;
-         return (optstring[0] == ':') ? ':' : '?';
-       }
-      }
-      return opt;
-    } else {
-      /* Non-argument-taking option */
-      /* __optptr will remember the exact position to resume at */
-      if ( ! *__optptr )
-       optind++;
-      return opt;
-    }
-  } else {
-    /* Unknown option */
-    optopt = opt;
-    if ( ! *__optptr )
-      optind++;
-    return '?';
-  }
-}
-
-       
diff --git a/klibc/klibc/getpgrp.c b/klibc/klibc/getpgrp.c
deleted file mode 100644 (file)
index c923698..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * getpgrp.c
- */
-
-#include <unistd.h>
-
-pid_t getpgrp(void) {
-  return getpgid(0);
-}
diff --git a/klibc/klibc/getpriority.c b/klibc/klibc/getpriority.c
deleted file mode 100644 (file)
index 4ea6304..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * getpriority.c
- *
- * Needs to do some post-syscall mangling to distinguish error returns...
- * but only on some platforms.  Sigh.
- */
-
-#include <unistd.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/syscall.h>
-
-#if !defined(__alpha__) && !defined(__ia64__)
-
-extern int __getpriority(int, int);
-
-int getpriority(int which, int who)
-{
-  int rv = __getpriority(which, who);
-  return ( rv < 0 ) ? rv : 20-rv;
-}
-
-#endif
diff --git a/klibc/klibc/getpt.c b/klibc/klibc/getpt.c
deleted file mode 100644 (file)
index a059030..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * getpt.c
- *
- * GNU extension to the standard Unix98 pty suite
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <termios.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-
-int getpt(void)
-{
-  return open("/dev/ptmx", O_RDWR|O_NOCTTY);
-}
diff --git a/klibc/klibc/globals.c b/klibc/klibc/globals.c
deleted file mode 100644 (file)
index 72ae91f..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * globals.c
- *
- * These have to be defined somewhere...
- */
-#include <errno.h>
-#include <unistd.h>
-
-int errno;
-char **environ;
diff --git a/klibc/klibc/inet/bindresvport.c b/klibc/klibc/inet/bindresvport.c
deleted file mode 100644 (file)
index 750bd70..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * inet/bindresvport.c
- */
-
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <string.h>
-#include <unistd.h>
-
-#define START_PORT     768
-#define END_PORT       IPPORT_RESERVED
-#define NUM_PORTS      (END_PORT - START_PORT)
-
-int bindresvport(int sd, struct sockaddr_in *sin)
-{
-       struct sockaddr_in me;
-       static short port;
-       int ret = 0;
-       int i;
-
-       if (sin == NULL) {
-               memset(&me, 0, sizeof(me));
-               sin = &me;
-               sin->sin_family = AF_INET;
-       } else if (sin->sin_family != AF_INET) {
-               errno = EPFNOSUPPORT;
-               return -1;
-       }
-       
-       if (port == 0) {
-               port = START_PORT + (getpid() % NUM_PORTS);
-       }
-       
-       for (i = 0; i < NUM_PORTS; i++, port++) {
-               if (port == END_PORT)
-                       port = START_PORT;
-               sin->sin_port = htons(port);
-               if ((ret = bind(sd, (struct sockaddr *)sin, sizeof(*sin))) != -1)
-                       break;
-       }
-
-       return ret;
-}
diff --git a/klibc/klibc/inet/inet_addr.c b/klibc/klibc/inet/inet_addr.c
deleted file mode 100644 (file)
index e04a4d0..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * inet/inet_addr.c
- */
-
-#include <arpa/inet.h>
-#include <stdio.h>
-
-uint32_t inet_addr(const char *str)
-{
-  struct in_addr a;
-  int rv = inet_aton(str, &a);
-
-  return rv ? INADDR_NONE : a.s_addr;
-}
diff --git a/klibc/klibc/inet/inet_aton.c b/klibc/klibc/inet/inet_aton.c
deleted file mode 100644 (file)
index e581b49..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * inet/inet_aton.c
- */
-
-#include <arpa/inet.h>
-#include <stdio.h>
-
-int inet_aton(const char *str, struct in_addr *addr)
-{
-  union {
-    uint8_t  b[4];
-    uint32_t l;
-  } a;
-
-  if ( sscanf(str, "%hhu.%hhu.%hhu.%hhu", &a.b[0], &a.b[1], &a.b[2], &a.b[3]) == 4 ) {
-    addr->s_addr = a.l;                /* Always in network byte order */
-    return 1;
-  } else {
-    return 0;
-  }
-}
-
-    
diff --git a/klibc/klibc/inet/inet_ntoa.c b/klibc/klibc/inet/inet_ntoa.c
deleted file mode 100644 (file)
index 5340aa6..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * inet/inet_ntoa.c
- */
-
-#include <arpa/inet.h>
-#include <stdio.h>
-
-char *inet_ntoa(struct in_addr addr)
-{
-  static char name[16];
-  union {
-    uint8_t  b[4];
-    uint32_t l;
-  } a;
-  a.l = addr.s_addr;
-
-  sprintf(name, "%u.%u.%u.%u", a.b[0], a.b[1], a.b[2], a.b[3]);
-  return name;
-}
diff --git a/klibc/klibc/inet/inet_ntop.c b/klibc/klibc/inet/inet_ntop.c
deleted file mode 100644 (file)
index 377bab7..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * inet/inet_ntop.c
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <arpa/inet.h>
-#include <netinet/in6.h>
-
-const char *inet_ntop(int af, const void *cp, char *buf, size_t len)
-{
-  size_t xlen;
-
-  switch ( af ) {
-  case AF_INET:
-    {
-      union {
-        uint8_t  b[4];
-        uint32_t l;
-      } a;
-      a.l = ((const struct in_addr *)cp)->s_addr;
-
-      xlen = snprintf(buf, len, "%u.%u.%u.%u", a.b[0], a.b[1], a.b[2], a.b[3]);
-    }
-    break;
-
-  case AF_INET6:
-    {
-      const struct in6_addr *s = (const struct in6_addr *)cp;
-      
-      xlen = snprintf(buf, len, "%x:%x:%x:%x:%x:%x:%x:%x",
-                     ntohs(s->s6_addr16[0]), ntohs(s->s6_addr16[1]),
-                     ntohs(s->s6_addr16[2]), ntohs(s->s6_addr16[3]),
-                     ntohs(s->s6_addr16[4]), ntohs(s->s6_addr16[5]),
-                     ntohs(s->s6_addr16[6]), ntohs(s->s6_addr16[7]));
-    }
-    break;
-
-  default:
-    errno = EAFNOSUPPORT;
-    return NULL;
-  }
-
-  if ( xlen > len ) {
-    errno = ENOSPC;
-    return NULL;
-  }
-
-  return buf;
-}
-
diff --git a/klibc/klibc/inet/inet_pton.c b/klibc/klibc/inet/inet_pton.c
deleted file mode 100644 (file)
index 6c14b3c..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * inet/inet_pton.c
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <errno.h>
-#include <ctype.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in6.h>
-
-static inline int hexval(int ch)
-{
-  if ( ch >= '0' && ch <= '9' ) {
-    return ch-'0';
-  } else if ( ch >= 'A' && ch <= 'F' ) {
-    return ch-'A'+10;
-  } else if ( ch >= 'a' && ch <= 'f' ) {
-    return ch-'a'+10;
-  } else {
-    return -1;
-  }
-}
-
-int inet_pton(int af, const char *src, void *dst)
-{
-  switch ( af ) {
-  case AF_INET:
-    return inet_aton(src, (struct in_addr *)dst);
-    
-  case AF_INET6:
-    {
-      struct in6_addr *d = (struct in6_addr *)dst;
-      int colons = 0, dcolons = 0;
-      int i;
-      const char *p;
-
-      /* A double colon will increment colons by 2, dcolons by 1 */
-      for ( p = dst ; *p ; p++ ) {
-       if ( p[0] == ':' ) {
-         colons++;
-         if ( p[1] == ':' )
-           dcolons++;
-       } else if ( !isxdigit(*p) )
-         return 0;             /* Not a valid address */
-      }
-
-      if ( colons > 7 || dcolons > 1 || (!dcolons && colons != 7) )
-       return 0;               /* Not a valid address */
-
-      memset(d, 0, sizeof(struct in6_addr));
-
-      i = 0;
-      for ( p = dst ; *p ; p++ ) {
-       if ( *p == ':' ) {
-         if ( p[1] == ':' ) {
-           i += (8-colons);
-         } else {
-           i++;
-         }
-       } else {
-         d->s6_addr16[i] = htons((ntohs(d->s6_addr16[i]) << 4) + hexval(*p));
-       }
-      }
-
-      return 1;
-    }
-
-  default:
-    errno = EAFNOSUPPORT;
-    return -1;
-  }
-}
diff --git a/klibc/klibc/interp.S b/klibc/klibc/interp.S
deleted file mode 100644 (file)
index b1a2701..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# This is a hack to generate the .intrp section, which then
-# ld turns into an PT_INTERP header.
-#
-# NOTE: The .interp section needs to be "a", or it doesnt work...
-#
-       
-        .section ".interp","a"
-        .ascii LIBDIR
-       .ascii "/klibc-"
-        .ascii SOHASH
-        .ascii ".so"
-        .byte 0
diff --git a/klibc/klibc/isatty.c b/klibc/klibc/isatty.c
deleted file mode 100644 (file)
index ff5e1ff..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * isatty.c
- */
-
-#include <unistd.h>
-#include <termios.h>
-#include <errno.h>
-
-int isatty(int fd)
-{
-  int old_errno = errno;
-  int istty;
-  pid_t dummy;
-
-  /* All ttys support TIOCGPGRP */
-  istty = !ioctl(fd, TIOCGPGRP, &dummy);
-  errno = old_errno;
-
-  return istty;
-}
-
diff --git a/klibc/klibc/jrand48.c b/klibc/klibc/jrand48.c
deleted file mode 100644 (file)
index 660a6e5..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * jrand48.c
- */
-
-#include <stdlib.h>
-#include <stdint.h>
-
-long jrand48(unsigned short xsubi[3])
-{
-  uint64_t x;
-
-  /* The xsubi[] array is littleendian by spec */
-  x = (uint64_t)(uint16_t)xsubi[0] +
-    ((uint64_t)(uint16_t)xsubi[1] << 16) +
-    ((uint64_t)(uint16_t)xsubi[2] << 32);
-
-  x = (0x5deece66dULL * x) + 0xb;
-  
-  xsubi[0] = (unsigned short)(uint16_t)x;
-  xsubi[1] = (unsigned short)(uint16_t)(x >> 16);
-  xsubi[2] = (unsigned short)(uint16_t)(x >> 32);
-
-  return (long)(int32_t)(x >> 16);
-}
diff --git a/klibc/klibc/libc_init.c b/klibc/klibc/libc_init.c
deleted file mode 100644 (file)
index e91edc4..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * libc_init.c
- *
- * This function takes the raw data block set up by the ELF loader
- * in the kernel and parses it.  It is invoked by crt0.S which makes
- * any necessary adjustments and passes calls this function using
- * the standard C calling convention.
- *
- * The arguments are:
- *  uintptr_t *elfdata  -- The ELF loader data block; usually from the stack.
- *                          Basically a pointer to argc.
- *  void (*onexit)(void) -- Function to install into onexit
- */
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <klibc/compiler.h>
-#include <elf.h>
-
-/* This file is included from __static_init.c or __shared_init.c */
-#ifndef SHARED
-# error "SHARED should be defined to 0 or 1"
-#endif
-
-char **environ;
-unsigned int __page_size, __page_shift;
-
-struct auxentry {
-  uintptr_t type;
-  uintptr_t v;
-};
-
-__noreturn __libc_init(uintptr_t *elfdata, void (*onexit)(void))
-{
-  int argc;
-  char **argv, **envp, **envend;
-  struct auxentry *auxentry;
-#if SHARED
-  typedef int (*main_t)(int, char **, char **);
-  main_t MAIN = NULL;
-#else
-  extern int main(int, char **, char **);
-#define MAIN main
-#endif
-  unsigned int page_size = 0, page_shift = 0;
-
-  (void)onexit;                        /* For now, we ignore this... */
-
-  argc = (int)*elfdata++;
-  argv = (char **)elfdata;
-  envp = argv+(argc+1);
-
-  /* The auxillary entry vector is after all the environment vars */
-  for ( envend = envp ; *envend ; envend++ );
-  auxentry = (struct auxentry *)(envend+1);
-
-  while ( auxentry->type ) {
-    switch ( auxentry->type ) {
-#if SHARED
-    case AT_ENTRY:
-      MAIN = (main_t)(auxentry->v);
-      break;
-#endif
-    case AT_PAGESZ:
-      page_size = (int)(auxentry->v);
-      break;
-    }
-    auxentry++;
-  }
-
-  __page_size = page_size;
-
-#if defined(__i386__) || defined(__x86_64__)
-  asm("bsrl %1,%0" : "=r" (page_shift) : "rm" (page_size));
-#else
-  while ( page_size > 1 ) {
-    page_shift++;
-    page_size >>= 1;
-  }
-#endif
-  __page_shift = page_shift;
-
-  environ = envp;
-  exit(MAIN(argc, argv, envp));
-}
diff --git a/klibc/klibc/libgcc/__divdi3.c b/klibc/klibc/libgcc/__divdi3.c
deleted file mode 100644 (file)
index be13cae..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/i386/libgcc/__divdi3.c
- */
-
-#include <stdint.h>
-#include <stddef.h>
-
-extern uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem);
-
-int64_t __divdi3(int64_t num, int64_t den)
-{
-  int minus = 0;
-  int64_t v;
-
-  if ( num < 0 ) {
-    num = -num;
-    minus = 1;
-  }
-  if ( den < 0 ) {
-    den = -den;
-    minus ^= 1;
-  }
-  
-  v = __udivmoddi4(num, den, NULL);
-  if ( minus )
-    v = -v;
-
-  return v;
-}
diff --git a/klibc/klibc/libgcc/__divsi3.c b/klibc/klibc/libgcc/__divsi3.c
deleted file mode 100644 (file)
index 24a7e04..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * libgcc/__divsi3.c
- */
-
-#include <stdint.h>
-#include <stddef.h>
-
-extern uint32_t __udivmodsi4(uint32_t num, uint32_t den, uint32_t *rem);
-
-int32_t __divsi3(int32_t num, int32_t den)
-{
-  int minus = 0;
-  int32_t v;
-
-  if ( num < 0 ) {
-    num = -num;
-    minus = 1;
-  }
-  if ( den < 0 ) {
-    den = -den;
-    minus ^= 1;
-  }
-  
-  v = __udivmodsi4(num, den, NULL);
-  if ( minus )
-    v = -v;
-
-  return v;
-}
diff --git a/klibc/klibc/libgcc/__moddi3.c b/klibc/klibc/libgcc/__moddi3.c
deleted file mode 100644 (file)
index 3e61365..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/i386/libgcc/__moddi3.c
- */
-
-#include <stdint.h>
-#include <stddef.h>
-
-extern uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem);
-
-int64_t __moddi3(int64_t num, int64_t den)
-{
-  int minus = 0;
-  int64_t v;
-
-  if ( num < 0 ) {
-    num = -num;
-    minus = 1;
-  }
-  if ( den < 0 ) {
-    den = -den;
-    minus ^= 1;
-  }
-  
-  (void) __udivmoddi4(num, den, &v);
-  if ( minus )
-    v = -v;
-
-  return v;
-}
diff --git a/klibc/klibc/libgcc/__modsi3.c b/klibc/klibc/libgcc/__modsi3.c
deleted file mode 100644 (file)
index cf62b8b..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * libgcc/__modsi3.c
- */
-
-#include <stdint.h>
-#include <stddef.h>
-
-extern uint32_t __udivmodsi4(uint32_t num, uint32_t den, uint32_t *rem);
-
-int32_t __modsi3(int32_t num, int32_t den)
-{
-  int minus = 0;
-  int32_t v;
-
-  if ( num < 0 ) {
-    num = -num;
-    minus = 1;
-  }
-  if ( den < 0 ) {
-    den = -den;
-    minus ^= 1;
-  }
-  
-  (void) __udivmodsi4(num, den, &v);
-  if ( minus )
-    v = -v;
-
-  return v;
-}
diff --git a/klibc/klibc/libgcc/__udivdi3.c b/klibc/klibc/libgcc/__udivdi3.c
deleted file mode 100644 (file)
index 901ce2a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * arch/i386/libgcc/__divdi3.c
- */
-
-#include <stdint.h>
-#include <stddef.h>
-
-extern uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem);
-
-uint64_t __udivdi3(uint64_t num, uint64_t den)
-{
-  return __udivmoddi4(num, den, NULL);
-}
diff --git a/klibc/klibc/libgcc/__udivmoddi4.c b/klibc/klibc/libgcc/__udivmoddi4.c
deleted file mode 100644 (file)
index 1c45654..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <klibc/diverr.h>
-#include <stdint.h>
-
-uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem_p)
-{
-  uint64_t quot = 0, qbit = 1;
-  
-  if ( den == 0 ) {
-    __divide_error();
-    return 0;                  /* If trap returns... */
-  }
-
-  /* Left-justify denominator and count shift */
-  while ( (int64_t)den >= 0 ) {
-    den <<= 1;
-    qbit <<= 1;
-  }
-
-  while ( qbit ) {
-    if ( den <= num ) {
-      num -= den;
-      quot += qbit;
-    }
-    den >>= 1;
-    qbit >>= 1;
-  }
-
-  if ( rem_p )
-    *rem_p = num;
-
-  return quot;
-}
diff --git a/klibc/klibc/libgcc/__udivmodsi4.c b/klibc/klibc/libgcc/__udivmodsi4.c
deleted file mode 100644 (file)
index 61f6bef..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <klibc/diverr.h>
-#include <stdint.h>
-
-uint32_t __udivmodsi4(uint32_t num, uint32_t den, uint32_t *rem_p)
-{
-  uint32_t quot = 0, qbit = 1;
-
-  if ( den == 0 ) {
-    __divide_error();
-    return 0;                   /* If trap returns... */
-  }
-
-  /* Left-justify denominator and count shift */
-  while ( (int32_t)den >= 0 ) {
-    den <<= 1;
-    qbit <<= 1;
-  }
-
-  while ( qbit ) {
-    if ( den <= num ) {
-      num -= den;
-      quot += qbit;
-    }
-    den >>= 1;
-    qbit >>= 1;
-  }
-
-  if ( rem_p )
-    *rem_p = num;
-
-  return quot;
-}
diff --git a/klibc/klibc/libgcc/__udivsi3.c b/klibc/klibc/libgcc/__udivsi3.c
deleted file mode 100644 (file)
index cba6f8f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * libgcc/__divsi3.c
- */
-
-#include <stdint.h>
-#include <stddef.h>
-
-extern uint32_t __udivmodsi4(uint32_t num, uint32_t den, uint32_t *rem);
-
-uint32_t __udivsi3(uint32_t num, uint32_t den)
-{
-  return __udivmodsi4(num, den, NULL);
-}
diff --git a/klibc/klibc/libgcc/__umoddi3.c b/klibc/klibc/libgcc/__umoddi3.c
deleted file mode 100644 (file)
index c007d48..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * arch/i386/libgcc/__umoddi3.c
- */
-
-#include <stdint.h>
-#include <stddef.h>
-
-extern uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem);
-
-uint64_t __umoddi3(uint64_t num, uint64_t den)
-{
-  uint64_t v;
-
-  (void) __udivmoddi4(num, den, &v);
-  return v;
-}
diff --git a/klibc/klibc/libgcc/__umodsi3.c b/klibc/klibc/libgcc/__umodsi3.c
deleted file mode 100644 (file)
index e3db972..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * libgcc/__umodsi3.c
- */
-
-#include <stdint.h>
-#include <stddef.h>
-
-extern uint32_t __udivmodsi4(uint32_t num, uint32_t den, uint32_t *rem);
-
-uint32_t __umodsi3(uint32_t num, uint32_t den)
-{
-  uint32_t v;
-
-  (void) __udivmodsi4(num, den, &v);
-  return v;
-}
diff --git a/klibc/klibc/llseek.c b/klibc/klibc/llseek.c
deleted file mode 100644 (file)
index 857490b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * llseek.c
- *
- * On 32-bit platforms, we need to use the _llseek() system call
- * rather than lseek(), to be able to handle large disks.  _llseek()
- * isn't just a normal syscall which takes a 64-bit argument; it needs
- * to return a 64-bit value and so takes an extra pointer.
- */
-
-#include <unistd.h>
-#include <sys/syscall.h>
-#include <bitsize.h>
-
-#if _BITSIZE == 32
-
-extern int __llseek(int fd, unsigned long hi, unsigned long lo, off_t *res, int whence);
-
-off_t lseek(int fd, off_t offset, int whence)
-{
-  off_t result;
-  int rv;
-
-  rv = __llseek(fd, (unsigned long)(offset >> 32), (unsigned long)offset,
-               &result, whence);
-  
-  return rv ? (off_t)-1 : result;
-}
-
-#endif
-
diff --git a/klibc/klibc/lrand48.c b/klibc/klibc/lrand48.c
deleted file mode 100644 (file)
index 8c0a3de..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * lrand48.c
- */
-
-#include <stdlib.h>
-#include <stdint.h>
-
-unsigned short __rand48_seed[3]; /* Common with mrand48.c, srand48.c */
-
-long lrand48(void)
-{
-  return (uint32_t)jrand48(__rand48_seed) >> 1;
-}
-
diff --git a/klibc/klibc/makeerrlist.pl b/klibc/klibc/makeerrlist.pl
deleted file mode 100644 (file)
index 14498d8..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/perl
-#
-# This creates sys_errlist from <asm/errno.h> through somewhat
-# heuristic matching.  It presumes the relevant entries are of the form
-# #define Exxxx <integer> /* comment */
-#
-
-use FileHandle;
-
-%errors  = ();
-%errmsg  = ();
-$maxerr  = -1;
-@includelist = ();             # Include directories
-
-sub parse_file($) {
-    my($file) = @_;
-    my($fh) = new FileHandle;
-    my($line, $error, $msg);
-    my($kernelonly) = 0;
-    my($root);
-
-    print STDERR "opening $file\n" unless ( $quiet );
-
-    $ok = 0;
-    foreach $root ( @includelist ) {
-       if ( $fh->open($root.'//'.$file, '<') ) {
-           $ok = 1;
-           last;
-       }
-    }
-
-    if ( ! $ok ) {
-       die "$0: Cannot find file $file\n";
-    }
-
-    while ( defined($line = <$fh>) ) {
-       if ( $kernelonly ) {
-           if ( $line =~ /^\#\s*endif/ ) {
-               $kernelonly--;
-           } elsif ( $line =~ /^\#\sif/ ) {
-               $kernelonly++;
-           }
-       } else {
-           if ( $line =~ /^\#\s*define\s+([A-Z0-9_]+)\s+([0-9]+)\s*\/\*\s*(.*\S)\s*\*\// ) {
-               $error = $1;
-               $errno = $2+0;
-               $msg   = $3;
-               print STDERR "$error ($errno) => \"$msg\"\n" unless ( $quiet );
-               $errors{$errno} = $error;
-               $errmsg{$errno} = $msg;
-               $maxerr = $errno if ( $errno > $maxerr );
-           } elsif ( $line =~ /^\#\s*include\s+[\<\"](.*)[\>\"]/ ) {
-               parse_file($1);
-           } elsif ( $line =~ /^\#\s*ifdef\s+__KERNEL__/ ) {
-               $kernelonly++;
-           }
-       }
-    }
-    close($fh);
-    print STDERR "closing $file\n" unless ( $quiet );
-}
-        
-$v = $ENV{'KBUILD_VERBOSE'};
-$quiet = defined($v) ? !$v : 0;
-
-foreach $arg ( @ARGV ) {
-    if ( $arg eq '-q' ) {
-       $quiet = 1;
-    } elsif ( $arg =~ /^-(errlist|errnos|maxerr)$/ ) {
-       $type = $arg;
-    } elsif ( $arg =~ '^\-I' ) {
-       push(@includelist, "$'");
-    } else {
-       die "$0: Unknown option: $arg\n";
-    }
-}
-
-parse_file('linux/errno.h');
-
-if ( $type eq '-errlist' ) {
-    print  "#include <errno.h>\n";
-    printf "const int sys_nerr = %d;\n", $maxerr+1;
-    printf "const char * const sys_errlist[%d] = {\n", $maxerr+1;
-    foreach $e ( sort(keys(%errors)) ) {
-       printf "  [%s] = \"%s\",\n", $errors{$e}, $errmsg{$e};
-    }
-    print "};\n";
-} elsif ( $type eq '-errnos' ) {
-    print  "#include <errno.h>\n";
-    printf "const int sys_nerr = %d;\n", $maxerr+1;
-    printf "const char * const sys_errlist[%d] = {\n", $maxerr+1;
-    foreach $e ( sort(keys(%errors)) ) {
-       printf "  [%s] = \"%s\",\n", $errors{$e}, $errors{$e};
-    }
-    print "};\n";
-} elsif ( $type eq '-maxerr' ) {
-    print $maxerr, "\n";
-}
-
-    
diff --git a/klibc/klibc/malloc.c b/klibc/klibc/malloc.c
deleted file mode 100644 (file)
index 976353c..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * malloc.c
- *
- * Very simple linked-list based malloc()/free().
- */
-
-#include <stdlib.h>
-#include <sys/mman.h>
-#include "malloc.h"
-
-struct free_arena_header __malloc_head =
-{
-  {
-    ARENA_TYPE_HEAD,
-    0,
-    &__malloc_head,
-    &__malloc_head,
-  },
-  &__malloc_head,
-  &__malloc_head
-};
-
-static void *__malloc_from_block(struct free_arena_header *fp, size_t size)
-{
-  size_t fsize;
-  struct free_arena_header *nfp, *na;
-
-  fsize = fp->a.size;
-  
-  /* We need the 2* to account for the larger requirements of a free block */
-  if ( fsize >= size+2*sizeof(struct arena_header) ) {
-    /* Bigger block than required -- split block */
-    nfp = (struct free_arena_header *)((char *)fp + size);
-    na = fp->a.next;
-
-    nfp->a.type = ARENA_TYPE_FREE;
-    nfp->a.size = fsize-size;
-    fp->a.type  = ARENA_TYPE_USED;
-    fp->a.size  = size;
-
-    /* Insert into all-block chain */
-    nfp->a.prev = fp;
-    nfp->a.next = na;
-    na->a.prev = nfp;
-    fp->a.next = nfp;
-    
-    /* Replace current block on free chain */
-    nfp->next_free = fp->next_free;
-    nfp->prev_free = fp->prev_free;
-    fp->next_free->prev_free = nfp;
-    fp->prev_free->next_free = nfp;
-  } else {
-    /* Allocate the whole block */
-    fp->a.type = ARENA_TYPE_USED;
-
-    /* Remove from free chain */
-    fp->next_free->prev_free = fp->prev_free;
-    fp->prev_free->next_free = fp->next_free;
-  }
-  
-  return (void *)(&fp->a + 1);
-}
-
-static struct free_arena_header *
-__free_block(struct free_arena_header *ah)
-{
-  struct free_arena_header *pah, *nah;
-
-  pah = ah->a.prev;
-  nah = ah->a.next;
-  if ( pah->a.type == ARENA_TYPE_FREE &&
-       (char *)pah+pah->a.size == (char *)ah ) {
-    /* Coalesce into the previous block */
-    pah->a.size += ah->a.size;
-    pah->a.next = nah;
-    nah->a.prev = pah;
-
-#ifdef DEBUG_MALLOC
-    ah->a.type = ARENA_TYPE_DEAD;
-#endif
-
-    ah = pah;
-    pah = ah->a.prev;
-  } else {
-    /* Need to add this block to the free chain */
-    ah->a.type = ARENA_TYPE_FREE;
-
-    ah->next_free = __malloc_head.next_free;
-    ah->prev_free = &__malloc_head;
-    __malloc_head.next_free = ah;
-    ah->next_free->prev_free = ah;
-  }
-
-  /* In either of the previous cases, we might be able to merge
-     with the subsequent block... */
-  if ( nah->a.type == ARENA_TYPE_FREE &&
-       (char *)ah+ah->a.size == (char *)nah ) {
-    ah->a.size += nah->a.size;
-
-    /* Remove the old block from the chains */
-    nah->next_free->prev_free = nah->prev_free;
-    nah->prev_free->next_free = nah->next_free;
-    ah->a.next = nah->a.next;
-    nah->a.next->a.prev = ah;
-
-#ifdef DEBUG_MALLOC
-    nah->a.type = ARENA_TYPE_DEAD;
-#endif
-  }
-
-  /* Return the block that contains the called block */
-  return ah;
-}
-
-void *malloc(size_t size)
-{
-  struct free_arena_header *fp;
-  struct free_arena_header *pah;
-  size_t fsize;
-
-  if ( size == 0 )
-    return NULL;
-
-  /* Add the obligatory arena header, and round up */
-  size = (size+2*sizeof(struct arena_header)-1) & ARENA_SIZE_MASK;
-
-  for ( fp = __malloc_head.next_free ; fp->a.type != ARENA_TYPE_HEAD ;
-       fp = fp->next_free ) {
-    if ( fp->a.size >= size ) {
-      /* Found fit -- allocate out of this block */
-      return __malloc_from_block(fp, size);
-    }
-  }
-
-  /* Nothing found... need to request a block from the kernel */
-  fsize = (size+MALLOC_CHUNK_MASK) & ~MALLOC_CHUNK_MASK;
-
-#ifdef MALLOC_USING_SBRK
-  fp = (struct free_arena_header *) sbrk(fsize);
-#else
-  fp = (struct free_arena_header *)
-    mmap(NULL, fsize, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0);
-#endif
-
-  if ( fp == (struct free_arena_header *)MAP_FAILED ) {
-    return NULL;               /* Failed to get a block */
-  }
-
-  /* Insert the block into the management chains.  We need to set
-     up the size and the main block list pointer, the rest of
-     the work is logically identical to free(). */
-  fp->a.type = ARENA_TYPE_FREE;
-  fp->a.size = fsize;
-
-  /* We need to insert this into the main block list in the proper
-     place -- this list is required to be sorted.  Since we most likely
-     get memory assignments in ascending order, search backwards for
-     the proper place. */
-  for ( pah = __malloc_head.a.prev ; pah->a.type != ARENA_TYPE_HEAD ;
-       pah = pah->a.prev ) {
-    if ( pah < fp )
-      break;
-  }
-
-  /* Now pah points to the node that should be the predecessor of
-     the new node */
-  fp->a.next = pah->a.next;
-  fp->a.prev = pah;
-  pah->a.next  = fp;
-  fp->a.next->a.prev = fp;
-
-
-  /* Insert into the free chain and coalesce with adjacent blocks */
-  fp = __free_block(fp);
-
-  /* Now we can allocate from this block */
-  return __malloc_from_block(fp, size);
-}
-
-void free(void *ptr)
-{
-  struct free_arena_header *ah;
-
-  if ( !ptr )
-    return;
-
-  ah = (struct free_arena_header *)
-    ((struct arena_header *)ptr - 1);
-
-#ifdef DEBUG_MALLOC
-  assert( ah->a.type == ARENA_TYPE_USED );
-#endif
-
-  __free_block(ah);
-
-  /* Here we could insert code to return memory to the system. */
-}
diff --git a/klibc/klibc/malloc.h b/klibc/klibc/malloc.h
deleted file mode 100644 (file)
index 4562950..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * malloc.h
- *
- * Internals for the memory allocator
- */
-
-#include <stdint.h>
-#include <stddef.h>
-#include <klibc/sysconfig.h>
-
-/*
- * This structure should be a power of two.  This becomes the
- * alignment unit.
- */
-struct free_arena_header;
-
-struct arena_header {
-  size_t type;
-  size_t size;                 /* Also gives the location of the next entry */
-  struct free_arena_header *next, *prev;
-};
-
-#ifdef DEBUG_MALLOC
-#define ARENA_TYPE_USED 0x64e69c70
-#define ARENA_TYPE_FREE 0x012d610a
-#define ARENA_TYPE_HEAD 0x971676b5
-#define ARENA_TYPE_DEAD 0xeeeeeeee
-#else
-#define ARENA_TYPE_USED 0
-#define ARENA_TYPE_FREE 1
-#define ARENA_TYPE_HEAD 2
-#endif
-
-#define ARENA_SIZE_MASK (~(sizeof(struct arena_header)-1))
-
-/*
- * This structure should be no more than twice the size of the
- * previous structure.
- */
-struct free_arena_header {
-  struct arena_header a;
-  struct free_arena_header *next_free, *prev_free;
-};
-
-extern struct free_arena_header __malloc_head;
diff --git a/klibc/klibc/memccpy.c b/klibc/klibc/memccpy.c
deleted file mode 100644 (file)
index 22f68de..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * memccpy.c
- *
- * memccpy()
- */
-
-#include <stddef.h>
-#include <string.h>
-
-void *memccpy(void *dst, const void *src, int c, size_t n)
-{
-  char *q = dst;
-  const char *p = src;
-  char ch;
-
-  while ( n-- ) {
-    *q++ = ch = *p++;
-    if ( ch == (char)c )
-      return q;
-  }
-
-  return NULL;                 /* No instance of "c" found */
-}
diff --git a/klibc/klibc/memchr.c b/klibc/klibc/memchr.c
deleted file mode 100644 (file)
index 2e5e4cc..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * memchr.c
- */
-
-#include <stddef.h>
-#include <string.h>
-
-void *memchr(const void *s, int c, size_t n)
-{
-  const unsigned char *sp = s;
-
-  while ( n-- ) {
-    if ( *sp == (unsigned char)c )
-      return (void *)sp;
-    sp++;
-  }
-
-  return NULL;
-}
diff --git a/klibc/klibc/memcmp.c b/klibc/klibc/memcmp.c
deleted file mode 100644 (file)
index f6bc172..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * memcmp.c
- */
-
-#include <string.h>
-
-int memcmp(const void *s1, const void *s2, size_t n)
-{
-  const unsigned char *c1 = s1, *c2 = s2;
-  int d = 0;
-
-  while ( n-- ) {
-    d = (int)*c1++ - (int)*c2++;
-    if ( d )
-      break;
-  }
-
-  return d;
-}
diff --git a/klibc/klibc/memcpy.c b/klibc/klibc/memcpy.c
deleted file mode 100644 (file)
index b9171c3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * memcpy.c
- */
-
-#include <string.h>
-#include <stdint.h>
-
-void *memcpy(void *dst, const void *src, size_t n)
-{
-  const char *p = src;
-  char *q = dst;
-#if defined(__i386__)
-  size_t nl = n >> 2;
-  asm volatile("cld ; rep ; movsl ; movl %3,%0 ; rep ; movsb"
-              : "+c" (nl), "+S" (p), "+D" (q)
-              : "r" (n & 3));
-#elif defined(__x86_64__)
-  size_t nq = n >> 3;
-  asm volatile("cld ; rep ; movsq ; movl %3,%%ecx ; rep ; movsb"
-              : "+c" (nq), "+S" (p), "+D" (q)
-              : "r" ((uint32_t)(n & 7)));
-#else
-  while ( n-- ) {
-    *q++ = *p++;
-  }
-#endif
-
-  return dst;
-}
diff --git a/klibc/klibc/memmem.c b/klibc/klibc/memmem.c
deleted file mode 100644 (file)
index 8b5faa0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * memmem.c
- *
- * Find a byte string inside a longer byte string
- *
- * This uses the "Not So Naive" algorithm, a very simple but
- * usually effective algorithm, see:
- *
- * http://www-igm.univ-mlv.fr/~lecroq/string/
- */
-
-#include <string.h>
-
-void *memmem(const void *haystack, size_t n, const void *needle, size_t m)
-{
-       const unsigned char *y = (const unsigned char *)haystack;
-       const unsigned char *x = (const unsigned char *)needle;
-
-       size_t j, k, l;
-
-       if (m > n || !m || !n)
-               return NULL;
-
-       if (1 != m) {
-               if (x[0] == x[1]) {
-                       k = 2;
-                       l = 1;
-               } else {
-                       k = 1;
-                       l = 2;
-               }
-
-               j = 0;
-               while (j <= n - m) {
-                       if (x[1] != y[j + 1]) {
-                               j += k;
-                       } else {
-                               if (!memcmp(x + 2, y + j + 2, m - 2)
-                                   && x[0] == y[j])
-                                       return (void *)&y[j];
-                               j += l;
-                       }
-               }
-       } else
-               do {
-                       if (*y == *x)
-                               return (void *)y;
-                       y++;
-               } while (--n);
-
-       return NULL;
-}
diff --git a/klibc/klibc/memmove.c b/klibc/klibc/memmove.c
deleted file mode 100644 (file)
index c1f042a..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * memmove.c
- */
-
-#include <string.h>
-
-void *memmove(void *dst, const void *src, size_t n)
-{
-  const char *p = src;
-  char *q = dst;
-#if defined(__i386__) || defined(__x86_64__)
-  if ( q < p ) {
-    asm volatile("cld ; rep ; movsb" : "+c" (n), "+S" (p), "+D" (q));
-  } else {
-    p += (n-1);
-    q += (n-1);
-    asm volatile("std ; rep ; movsb" : "+c" (n), "+S" (p), "+D" (q));
-  }
-#else
-  if ( q < p ) {
-    while ( n-- ) {
-      *q++ = *p++;
-    }
-  } else {
-    p += n;
-    q += n;
-    while ( n-- ) {
-      *--q = *--p;
-    }
-  }
-#endif
-
-  return dst;
-}
diff --git a/klibc/klibc/memrchr.c b/klibc/klibc/memrchr.c
deleted file mode 100644 (file)
index 10d9c29..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * memrchr.c
- */
-
-#include <stddef.h>
-#include <string.h>
-
-void *memrchr(const void *s, int c, size_t n)
-{
-  const unsigned char *sp =
-    (const unsigned char *)s + n - 1;
-
-  while ( n-- ) {
-    if ( *sp == (unsigned char)c )
-      return (void *)sp;
-    sp--;
-  }
-
-  return NULL;
-}
diff --git a/klibc/klibc/memset.c b/klibc/klibc/memset.c
deleted file mode 100644 (file)
index 522cc59..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * memset.c
- */
-
-#include <string.h>
-#include <stdint.h>
-
-void *memset(void *dst, int c, size_t n)
-{
-  char *q = dst;
-
-#if defined(__i386__)
-  size_t nl = n >> 2;
-  asm volatile("cld ; rep ; stosl ; movl %3,%0 ; rep ; stosb"
-              : "+c" (nl), "+D" (q)
-              : "a" ((unsigned char)c * 0x01010101U), "r" (n & 3));
-#elif defined(__x86_64__)
-  size_t nq = n >> 3;
-  asm volatile("cld ; rep ; stosq ; movl %3,%%ecx ; rep ; stosb"
-              : "+c" (nq), "+D" (q)
-              : "a" ((unsigned char)c * 0x0101010101010101U),
-              "r" ((uint32_t)n & 7));
-#else
-  while ( n-- ) {
-    *q++ = c;
-  }
-#endif
-
-  return dst;
-}
diff --git a/klibc/klibc/memswap.c b/klibc/klibc/memswap.c
deleted file mode 100644 (file)
index 10440e3..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * memswap()
- *
- * Swaps the contents of two nonoverlapping memory areas.
- * This really could be done faster...
- */
-
-#include <string.h>
-
-void memswap(void *m1, void *m2, size_t n)
-{
-  char *p = m1;
-  char *q = m2;
-  char tmp;
-
-  while ( n-- ) {
-    tmp = *p;
-    *p = *q;
-    *q = tmp;
-    
-    p++; q++;
-  }
-}
diff --git a/klibc/klibc/mmap.c b/klibc/klibc/mmap.c
deleted file mode 100644 (file)
index 11c540a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * mmap.c
- */
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/syscall.h>
-#include <sys/mman.h>
-#include <unistd.h>
-#include <asm/page.h>          /* For PAGE_SHIFT */
-#include <bitsize.h>
-
-/*
- * MMAP2_SHIFT is definitely *NOT* equal to getpageshift() for
- * many 32-bit architectures.  Supposedly this is fixed to 12
- * for all 32-bit architectures.  CHECK THIS!!!
- */
-# define MMAP2_SHIFT   12      /* Fixed by syscall definition */
-
-/*
- * Set in SYSCALLS whether or not we should use an unadorned mmap() system
- * call (typical on 64-bit architectures).
- */
-#if (_BITSIZE == 32 && defined(__NR_mmap2)) || (_BITSIZE == 64 && !defined(__NR_mmap))
-
-/* This architecture uses mmap2(). The Linux mmap2() system call takes
-   a page offset as the offset argument.  We need to make sure we have
-   the proper conversion in place. */
-
-extern void *__mmap2(void *, size_t, int, int, int, size_t);
-
-void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset)
-{
-  const int mmap2_shift = MMAP2_SHIFT;
-  const unsigned long mmap2_mask = (1UL << mmap2_shift) - 1;
-
-  if ( offset & mmap2_mask ) {
-    errno = EINVAL;
-    return MAP_FAILED;
-  }
-
-  return __mmap2(start, length, prot, flags, fd, (size_t)offset >> mmap2_shift);
-}
-
-#endif
-
-
-    
-  
diff --git a/klibc/klibc/mrand48.c b/klibc/klibc/mrand48.c
deleted file mode 100644 (file)
index 886ae9f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * mrand48.c
- */
-
-#include <stdlib.h>
-#include <stdint.h>
-
-unsigned short __rand48_seed[3]; /* Common with lrand48.c, srand48.c */
-
-long mrand48(void)
-{
-  return jrand48(__rand48_seed);
-}
diff --git a/klibc/klibc/nice.c b/klibc/klibc/nice.c
deleted file mode 100644 (file)
index 5a18de9..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * nice.c
- */
-
-#include <unistd.h>
-#include <sched.h>
-#include <sys/resource.h>
-#include <sys/syscall.h>
-
-#ifndef __NR_nice
-
-int nice(int inc)
-{
-  pid_t me = getpid();
-  return setpriority(me, PRIO_PROCESS, getpriority(me, PRIO_PROCESS)+inc);
-}
-
-#endif
diff --git a/klibc/klibc/nrand48.c b/klibc/klibc/nrand48.c
deleted file mode 100644 (file)
index fb7c577..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * nrand48.c
- */
-
-#include <stdlib.h>
-#include <stdint.h>
-
-long nrand48(unsigned short xsubi[3])
-{
-  return (long)((uint32_t)jrand48(xsubi) >> 1);
-}
diff --git a/klibc/klibc/onexit.c b/klibc/klibc/onexit.c
deleted file mode 100644 (file)
index 70a9c01..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * onexit.c
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include "atexit.h"
-
-extern __noreturn (*__exit_handler)(int);
-static struct atexit *__atexit_list;
-
-static __noreturn on_exit_exit(int rv)
-{
-  struct atexit *ap;
-  
-  for ( ap = __atexit_list ; ap ; ap = ap->next ) {
-    ap->fctn(rv, ap->arg);     /* This assumes extra args are harmless */
-  }
-  
-  _exit(rv);
-}
-
-int on_exit(void (*fctn)(int, void *), void *arg)
-{
-  struct atexit *as = malloc(sizeof(struct atexit));
-
-  if ( !as )
-    return -1;
-
-  as->fctn = fctn;
-  as->arg  = arg;
-
-  as->next = __atexit_list;
-  __atexit_list = as;
-
-  __exit_handler = on_exit_exit;
-
-  return 0;
-}
diff --git a/klibc/klibc/open.c b/klibc/klibc/open.c
deleted file mode 100644 (file)
index cb1f519..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * open.c
- *
- * On 32-bit platforms we need to pass O_LARGEFILE to the open()
- * system call, to indicate that we're 64-bit safe.
- */
-
-#define _KLIBC_IN_OPEN_C
-#include <unistd.h>
-#include <fcntl.h>
-#include <bitsize.h>
-
-#if _BITSIZE == 32 && !defined(__i386__)
-
-extern int __open(const char *, int, mode_t);
-
-int open(const char *pathname, int flags, mode_t mode)
-{
-  return __open(pathname, flags|O_LARGEFILE, mode);
-}
-
-#endif
diff --git a/klibc/klibc/pause.c b/klibc/klibc/pause.c
deleted file mode 100644 (file)
index 1f7b934..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * pause.c
- */
-
-#include <stddef.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <sys/syscall.h>
-
-#ifndef __NR_pause
-
-int pause(void)
-{
-  return select(0,NULL,NULL,NULL,NULL);
-}
-
-#endif
diff --git a/klibc/klibc/perror.c b/klibc/klibc/perror.c
deleted file mode 100644 (file)
index 26f8ce8..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * perror.c
- */
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-void perror(const char *s)
-{
-  int e = errno;
-  fprintf(stderr, "%s: %s\n", s, strerror(e));
-}
diff --git a/klibc/klibc/printf.c b/klibc/klibc/printf.c
deleted file mode 100644 (file)
index 3423759..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * printf.c
- */
-
-#include <stdio.h>
-#include <stdarg.h>
-
-#define BUFFER_SIZE    16384
-
-int printf(const char *format, ...)
-{
-  va_list ap;
-  int rv;
-
-  va_start(ap, format);
-  rv = vfprintf(stdout, format, ap);
-  va_end(ap);
-  return rv;
-}
diff --git a/klibc/klibc/pty.c b/klibc/klibc/pty.c
deleted file mode 100644 (file)
index 2fe01ab..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * pty.c
- *
- * Basic Unix98 PTY functionality; assumes devpts mounted on /dev/pts
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-
-char *ptsname(int fd)
-{
-  static char buffer[32];      /* Big enough to hold even a 64-bit pts no */
-  unsigned int ptyno;
-
-  if ( ioctl(fd, TIOCGPTN, &ptyno) )
-    return NULL;
-  
-  snprintf(buffer, sizeof buffer, "/dev/pts/%u", ptyno);
-  
-  return buffer;
-}
-
-int unlockpt(int fd)
-{
-  int unlock = 0;
-
-  return ioctl(fd, TIOCSPTLCK, &unlock);
-}
diff --git a/klibc/klibc/putchar.c b/klibc/klibc/putchar.c
deleted file mode 100644 (file)
index 0e35add..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * putchar.c
- *
- * - gcc wants this
- */
-
-#include <stdio.h>
-
-#undef putchar                 /* Defined as a macro */
-int putchar(int);
-
-int putchar(int c)
-{
-  return fputc(c, stdout);
-}
diff --git a/klibc/klibc/putenv.c b/klibc/klibc/putenv.c
deleted file mode 100644 (file)
index 8138c65..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * putenv.c
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-/* str should be a duplicated version of the input string;
-   len is the length of the key including the = sign */
-int __put_env(char *str, size_t len, int overwrite);
-
-int putenv(const char *str)
-{
-  char *s;
-  const char *e, *z;
-
-  if ( !str ) {
-    errno = EINVAL;
-    return -1;
-  }
-
-  e = NULL;
-  for ( z = str ; *z ; z++ ) {
-    if ( *z == '=' )
-      e = z;
-  }
-
-  if ( !e ) {
-    errno = EINVAL;
-    return -1;
-  }
-
-  s = strdup(str);
-  if ( !s )
-    return -1;
-
-  return __put_env(s, e-str, 1);
-}
diff --git a/klibc/klibc/puts.c b/klibc/klibc/puts.c
deleted file mode 100644 (file)
index ecebf27..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * puts.c
- */
-
-#include <stdio.h>
-
-int puts(const char *s)
-{
-  if ( fputs(s, stdout) < 0 )
-    return -1;
-
-  return _fwrite("\n", 1, stdout);
-}
diff --git a/klibc/klibc/qsort.c b/klibc/klibc/qsort.c
deleted file mode 100644 (file)
index 185f4da..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * qsort.c
- *
- * This is actually combsort.  It's an O(n log n) algorithm with
- * simplicity/small code size being its main virtue.
- */
-
-#include <stddef.h>
-#include <string.h>
-
-static inline size_t newgap(size_t gap)
-{
-  gap = (gap*10)/13;
-  if ( gap == 9 || gap == 10 )
-    gap = 11;
-
-  if ( gap < 1 )
-    gap = 1;
-  return gap;
-}
-
-void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *))
-{
-  size_t gap = nmemb;
-  size_t i, j;
-  char *p1, *p2;
-  int swapped;
-
-  do {
-    gap = newgap(gap);
-    swapped = 0;
-    
-    for ( i = 0, p1 = base ; i < nmemb-gap ; i++, p1 += size ) {
-      j = i+gap;
-      if ( compar(p1, p2 = (char *)base+j*size) > 0 ) {
-       memswap(p1, p2, size);
-       swapped = 1;
-      }
-    }
-  } while ( gap > 1 || swapped );
-}
-
diff --git a/klibc/klibc/raise.c b/klibc/klibc/raise.c
deleted file mode 100644 (file)
index dcbb9c9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * raise.c
- */
-
-#include <unistd.h>
-#include <signal.h>
-
-int raise(int signal)
-{
-  return kill(getpid(), signal);
-}
diff --git a/klibc/klibc/readdir.c b/klibc/klibc/readdir.c
deleted file mode 100644 (file)
index acfe588..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * readdir.c: opendir/readdir/closedir
- */
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-
-#define __KLIBC_DIRENT_INTERNALS
-#include <dirent.h>
-
-DIR *opendir(const char *name)
-{
-  DIR *dp = malloc(sizeof(DIR));
-
-  if ( !dp )
-    return NULL;
-
-  dp->__fd = open(name, O_DIRECTORY|O_RDONLY);
-
-  if ( dp->__fd < 0 ) {
-    free(dp);
-    return NULL;
-  }
-
-  dp->bytes_left = 0;
-
-  return dp;
-}
-
-struct dirent *readdir(DIR *dir)
-{
-  struct dirent *dent;
-  int rv;
-  
-  if ( !dir->bytes_left ) {
-    rv = getdents(dir->__fd, dir->buffer, sizeof(dir->buffer));
-    if ( rv <= 0 )
-      return NULL;
-    dir->bytes_left = rv;
-    dir->next = dir->buffer;
-  }
-
-  dent = dir->next;
-  dir->next = (struct dirent *)((char *)dir->next + dent->d_reclen);
-  dir->bytes_left -= dent->d_reclen;
-  
-  return dent;
-}
-
-int closedir(DIR *dir)
-{
-  int rv;
-  rv = close(dir->__fd);
-  free(dir);
-  return rv;
-}
diff --git a/klibc/klibc/realloc.c b/klibc/klibc/realloc.c
deleted file mode 100644 (file)
index 577c200..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * realloc.c
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "malloc.h"
-
-/* FIXME: This is cheesy, it should be fixed later */
-
-void *realloc(void *ptr, size_t size)
-{
-  struct free_arena_header *ah;
-  void *newptr;
-  size_t oldsize;
-
-  if ( !ptr )
-    return malloc(size);
-
-  if ( size == 0 ) {
-    free(ptr);
-    return NULL;
-  }
-
-  /* Add the obligatory arena header, and round up */
-  size = (size+2*sizeof(struct arena_header)-1) & ARENA_SIZE_MASK;
-
-  ah = (struct free_arena_header *)
-    ((struct arena_header *)ptr - 1);
-
-  if ( ah->a.size >= size && size >= (ah->a.size >> 2) ) {
-    /* This field is a good size already. */
-    return ptr;
-  } else {
-    /* Make me a new block.  This is kind of bogus; we should
-       be checking the adjacent blocks to see if we can do an
-       in-place adjustment... fix that later. */
-    
-    oldsize = ah->a.size - sizeof(struct arena_header);
-
-    newptr = malloc(size);
-    memcpy(newptr, ptr, (size < oldsize) ? size : oldsize);
-    free(ptr);
-
-    return newptr;
-  }
-}
-  
diff --git a/klibc/klibc/reboot.c b/klibc/klibc/reboot.c
deleted file mode 100644 (file)
index 772c859..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * reboot.c
- */
-
-#include <unistd.h>
-#include <sys/reboot.h>
-#include <sys/syscall.h>
-
-/* This provides the one-argument glibc-ish version of reboot.
-   The full four-argument system call is available as __reboot(). */
-
-int reboot(int flag)
-{
-  return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, flag, NULL);
-}
diff --git a/klibc/klibc/recv.c b/klibc/klibc/recv.c
deleted file mode 100644 (file)
index 4d30610..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * recv.c
- */
-
-#include <stddef.h>
-#include <sys/socket.h>
-
-int recv(int s, void *buf, size_t len, unsigned int flags)
-{
-  return recvfrom(s, buf, len, flags, NULL, 0);
-}
diff --git a/klibc/klibc/sbrk.c b/klibc/klibc/sbrk.c
deleted file mode 100644 (file)
index cb0efb2..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* sbrk.c - Change data segment size */
-
-/* Written 2000 by Werner Almesberger */
-/* Modified 2003-2004 for klibc by H. Peter Anvin */
-
-#include <stddef.h>
-#include <unistd.h>
-#include <inttypes.h>
-#include <errno.h>
-#include "malloc.h"
-
-char *__current_brk;           /* Common with brk.c */
-
-/* p is an address,  a is alignment; must be a power of 2 */
-static inline void *align_up(void *p, uintptr_t a)
-{
-  return (void *) (((uintptr_t)p + a-1) & ~(a-1));
-}
-
-void *sbrk(ptrdiff_t increment)
-{
-  char *start, *end, *new_brk;
-  
-  if (!__current_brk)
-    __current_brk = __brk(NULL);
-
-  start = align_up(__current_brk, SBRK_ALIGNMENT);
-  end   = start + increment;
-
-  new_brk = __brk(end);
-
-  if (new_brk == (void *)-1)
-    return (void *)-1;
-  else if (new_brk < end) {
-    errno = ENOMEM;
-    return (void *) -1;
-  }
-
-  __current_brk = new_brk;
-  return start;
-}
diff --git a/klibc/klibc/seed48.c b/klibc/klibc/seed48.c
deleted file mode 100644 (file)
index ac916d6..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * seed48.c
- */
-
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-
-unsigned short __rand48_seed[3];
-
-unsigned short *seed48(const unsigned short xsubi[3])
-{
-  static unsigned short oldseed[3];
-  memcpy(oldseed, __rand48_seed, sizeof __rand48_seed);
-  memcpy(__rand48_seed, xsubi, sizeof __rand48_seed);
-  
-  return oldseed;
-}
-
diff --git a/klibc/klibc/send.c b/klibc/klibc/send.c
deleted file mode 100644 (file)
index 8c53d0f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * send.c
- */
-
-#include <stddef.h>
-#include <sys/socket.h>
-
-int send(int s, const void *buf, size_t len, unsigned int flags)
-{
-  return sendto(s, buf, len, flags, NULL, 0);
-}
diff --git a/klibc/klibc/setegid.c b/klibc/klibc/setegid.c
deleted file mode 100644 (file)
index 09f2416..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * setegid.c
- */
-
-#include <unistd.h>
-
-int setegid(gid_t egid)
-{
-  return setregid(-1, egid);
-}
diff --git a/klibc/klibc/setenv.c b/klibc/klibc/setenv.c
deleted file mode 100644 (file)
index d4ada53..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * setenv.c
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-/* str should be a duplicated version of the input string;
-   len is the length of the key including the = sign */
-int __put_env(char *str, size_t len, int overwrite);
-
-int setenv(const char *name, const char *val, int overwrite)
-{
-  const char *z;
-  char *s;
-  size_t l1, l2;
-
-  if ( !name || !name[0] ) {
-    errno = EINVAL;
-    return -1;
-  }
-
-  l1 = 0;
-  for ( z = name ; *z ; z++ ) {
-    l1++;
-    if ( *z == '=' ) {
-      errno = EINVAL;
-      return -1;
-    }
-  }
-
-  l2 = strlen(val);
-
-  s = malloc(l1+l2+2);
-  if ( !s )
-    return -1;
-
-  memcpy(s, name, l1);
-  s[l1] = '=';
-  memcpy(s+l1+1, val, l2+1);
-
-  return __put_env(s, l1+1, overwrite);
-}
diff --git a/klibc/klibc/seteuid.c b/klibc/klibc/seteuid.c
deleted file mode 100644 (file)
index 6d1ac39..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * seteuid.c
- */
-
-#include <unistd.h>
-
-int seteuid(uid_t euid)
-{
-  return setreuid(-1, euid);
-}
diff --git a/klibc/klibc/setpgrp.c b/klibc/klibc/setpgrp.c
deleted file mode 100644 (file)
index 001dd04..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * setpgrp.c
- */
-
-#include <unistd.h>
-
-int setpgrp(void)
-{
-  return setpgid(0,0);
-}
diff --git a/klibc/klibc/sha1hash.c b/klibc/klibc/sha1hash.c
deleted file mode 100644 (file)
index 28e3399..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
-SHA-1 in C
-By Steve Reid <sreid@sea-to-sky.net>
-100% Public Domain
-
------------------
-Modified 7/98 
-By James H. Brown <jbrown@burgoyne.com>
-Still 100% Public Domain
-
-Corrected a problem which generated improper hash values on 16 bit machines
-Routine SHA1Update changed from
-       void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned int
-len)
-to
-       void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned
-long len)
-
-The 'len' parameter was declared an int which works fine on 32 bit machines.
-However, on 16 bit machines an int is too small for the shifts being done
-against
-it.  This caused the hash function to generate incorrect values if len was
-greater than 8191 (8K - 1) due to the 'len << 3' on line 3 of SHA1Update().
-
-Since the file IO in main() reads 16K at a time, any file 8K or larger would
-be guaranteed to generate the wrong hash (e.g. Test Vector #3, a million
-"a"s).
-
-I also changed the declaration of variables i & j in SHA1Update to 
-unsigned long from unsigned int for the same reason.
-
-These changes should make no difference to any 32 bit implementations since
-an
-int and a long are the same size in those environments.
-
---
-I also corrected a few compiler warnings generated by Borland C.
-1. Added #include <process.h> for exit() prototype
-2. Removed unused variable 'j' in SHA1Final
-3. Changed exit(0) to return(0) at end of main.
-
-ALL changes I made can be located by searching for comments containing 'JHB'
------------------
-Modified 8/98
-By Steve Reid <sreid@sea-to-sky.net>
-Still 100% public domain
-
-1- Removed #include <process.h> and used return() instead of exit()
-2- Fixed overwriting of finalcount in SHA1Final() (discovered by Chris Hall)
-3- Changed email address from steve@edmweb.com to sreid@sea-to-sky.net
-
------------------
-Modified 4/01
-By Saul Kravitz <Saul.Kravitz@celera.com>
-Still 100% PD
-Modified to run on Compaq Alpha hardware.  
-
------------------
-Modified 2/03
-By H. Peter Anvin <hpa@zytor.com>
-Still 100% PD
-Modified to run on any hardware with <inttypes.h> and <netinet/in.h>
-Changed the driver program
-
-*/
-
-/*
-Test Vectors (from FIPS PUB 180-1)
-"abc"
-  A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
-  84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
-A million repetitions of "a"
-  34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
-*/
-
-/* #define SHA1HANDSOFF  */
-
-#include <stdio.h>
-#include <string.h>
-#include <inttypes.h>
-#include <netinet/in.h>                /* For htonl/ntohl/htons/ntohs */
-
-/* #include <process.h> */     /* prototype for exit() - JHB */
-/* Using return() instead of exit() - SWR */
-
-typedef struct {
-    uint32_t state[5];
-    uint32_t count[2];
-    unsigned char buffer[64];
-} SHA1_CTX;
-
-void SHA1Transform(uint32_t state[5], unsigned char buffer[64]);
-void SHA1Init(SHA1_CTX* context);
-void SHA1Update(SHA1_CTX* context, unsigned char* data, uint32_t len); /*
-JHB */
-void SHA1Final(unsigned char digest[20], SHA1_CTX* context);
-
-#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
-
-/* blk0() and blk() perform the initial expand. */
-/* I got the idea of expanding during the round function from SSLeay */
-#define blk0(i) (block->l[i] = ntohl(block->l[i]))
-#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
-    ^block->l[(i+2)&15]^block->l[i&15],1))
-
-/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
-#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
-#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
-#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
-
-
-#ifdef VERBOSE  /* SAK */
-void SHAPrintContext(SHA1_CTX *context, char *msg){
-  printf("%s (%d,%d) %x %x %x %x %x\n",
-        msg,
-        context->count[0], context->count[1], 
-        context->state[0],
-        context->state[1],
-        context->state[2],
-        context->state[3],
-        context->state[4]);
-}
-#endif
-
-/* Hash a single 512-bit block. This is the core of the algorithm. */
-
-void SHA1Transform(uint32_t state[5], unsigned char buffer[64])
-{
-uint32_t a, b, c, d, e;
-typedef union {
-    unsigned char c[64];
-    uint32_t l[16];
-} CHAR64LONG16;
-CHAR64LONG16* block;
-#ifdef SHA1HANDSOFF
-static unsigned char workspace[64];
-    block = (CHAR64LONG16*)workspace;
-    memcpy(block, buffer, 64);
-#else
-    block = (CHAR64LONG16*)buffer;
-#endif
-    /* Copy context->state[] to working vars */
-    a = state[0];
-    b = state[1];
-    c = state[2];
-    d = state[3];
-    e = state[4];
-    /* 4 rounds of 20 operations each. Loop unrolled. */
-    R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
-    R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
-    R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11);
-    R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
-    R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
-    R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
-    R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
-    R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
-    R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
-    R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
-    R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
-    R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
-    R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
-    R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
-    R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
-    R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
-    R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
-    R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
-    R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
-    R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
-    /* Add the working vars back into context.state[] */
-    state[0] += a;
-    state[1] += b;
-    state[2] += c;
-    state[3] += d;
-    state[4] += e;
-    /* Wipe variables */
-    a = b = c = d = e = 0;
-}
-
-
-/* SHA1Init - Initialize new context */
-
-void SHA1Init(SHA1_CTX* context)
-{
-    /* SHA1 initialization constants */
-    context->state[0] = 0x67452301;
-    context->state[1] = 0xEFCDAB89;
-    context->state[2] = 0x98BADCFE;
-    context->state[3] = 0x10325476;
-    context->state[4] = 0xC3D2E1F0;
-    context->count[0] = context->count[1] = 0;
-}
-
-
-/* Run your data through this. */
-
-void SHA1Update(SHA1_CTX* context, unsigned char* data, uint32_t len)  /*
-JHB */
-{
-uint32_t i, j; /* JHB */
-
-#ifdef VERBOSE
-    SHAPrintContext(context, "before");
-#endif
-    j = (context->count[0] >> 3) & 63;
-    if ((context->count[0] += len << 3) < (len << 3)) context->count[1]++;
-    context->count[1] += (len >> 29);
-    if ((j + len) > 63) {
-        memcpy(&context->buffer[j], data, (i = 64-j));
-        SHA1Transform(context->state, context->buffer);
-        for ( ; i + 63 < len; i += 64) {
-            SHA1Transform(context->state, &data[i]);
-        }
-        j = 0;
-    }
-    else i = 0;
-    memcpy(&context->buffer[j], &data[i], len - i);
-#ifdef VERBOSE
-    SHAPrintContext(context, "after ");
-#endif
-}
-
-
-/* Add padding and return the message digest. */
-
-void SHA1Final(unsigned char digest[20], SHA1_CTX* context)
-{
-uint32_t i;    /* JHB */
-unsigned char finalcount[8];
-
-    for (i = 0; i < 8; i++) {
-        finalcount[i] = (unsigned char)((context->count[(i >= 4 ? 0 : 1)]
-         >> ((3-(i & 3)) * 8) ) & 255);  /* Endian independent */
-    }
-    SHA1Update(context, (unsigned char *)"\200", 1);
-    while ((context->count[0] & 504) != 448) {
-        SHA1Update(context, (unsigned char *)"\0", 1);
-    }
-    SHA1Update(context, finalcount, 8);  /* Should cause a SHA1Transform()
-*/
-    for (i = 0; i < 20; i++) {
-        digest[i] = (unsigned char)
-         ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
-    }
-    /* Wipe variables */
-    i = 0;     /* JHB */
-    memset(context->buffer, 0, 64);
-    memset(context->state, 0, 20);
-    memset(context->count, 0, 8);
-    memset(finalcount, 0, 8);  /* SWR */
-#ifdef SHA1HANDSOFF  /* make SHA1Transform overwrite it's own static vars */
-    SHA1Transform(context->state, context->buffer);
-#endif
-}
-  
-/*************************************************************/
-
-/* This is not quite the MIME base64 algorithm: it uses _ instead of /,
-   and instead of padding the output with = characters we just make the
-   output shorter. */
-char *mybase64(uint8_t digest[20])
-{
-  static const char charz[] =
-    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
-  uint8_t input[21];
-  static char output[28];
-  int i, j;
-  uint8_t *p;
-  char *q;
-  uint32_t bv;
-
-  memcpy(input, digest, 20);
-  input[20] = 0;               /* Pad to multiple of 3 bytes */
-
-  p = input;  q = output;
-  for ( i = 0 ; i < 7 ; i++ ) {
-    bv = (p[0] << 16) | (p[1] << 8) | p[2];
-    p += 3;
-    for ( j = 0 ; j < 4 ; j++ ) {
-      *q++ = charz[(bv >> 18) & 0x3f];
-      bv <<= 6;
-    }
-  }
-  *--q = '\0';                 /* The last character is not significant */
-  return output;
-}
-
-int main(int argc, char** argv)
-{
-  int i;
-  SHA1_CTX context;
-  uint8_t digest[20], buffer[16384];
-  FILE* file;
-
-  if (argc < 2) {
-    file = stdin;
-  }
-  else {
-    if (!(file = fopen(argv[1], "rb"))) {
-      fputs("Unable to open file.", stderr);
-      return(-1);
-    }
-  } 
-  SHA1Init(&context);
-  while (!feof(file)) {  /* note: what if ferror(file) */
-    i = fread(buffer, 1, 16384, file);
-    SHA1Update(&context, buffer, i);
-  }
-  SHA1Final(digest, &context);
-  fclose(file);
-
-  puts(mybase64(digest));
-
-  return 0;
-}
diff --git a/klibc/klibc/sigaction.c b/klibc/klibc/sigaction.c
deleted file mode 100644 (file)
index 85f42a2..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * sigaction.c
- */
-
-#include <signal.h>
-#include <sys/syscall.h>
-
-__extern void __sigreturn(void);
-__extern int __sigaction(int, const struct sigaction *, struct sigaction *);
-__extern int __rt_sigaction(int, const struct sigaction *, struct sigaction *, size_t);
-
-int sigaction(int sig, const struct sigaction *act, struct sigaction *oact)
-{
-  int rv;
-
-#if defined(__i386__) || defined(__x86_64__)
-  /* x86-64, and the Fedora i386 kernel, are broken without SA_RESTORER */
-  struct sigaction sa;
-
-  if ( act && !(act->sa_flags & SA_RESTORER) ) {
-    sa = *act;
-    act = &sa;
-
-    /* The kernel can't be trusted to have a valid default restorer */
-    sa.sa_flags |= SA_RESTORER;
-    sa.sa_restorer = &__sigreturn;
-  }
-#endif
-
-#ifdef __NR_sigaction
-  rv = __sigaction(sig, act, oact);
-#else
-  rv = __rt_sigaction(sig, act, oact, sizeof(sigset_t));
-#endif
-
-
-#if defined(__i386__) || defined(__x86_64__)
-  if ( oact && (oact->sa_restorer == &__sigreturn) ) {
-    oact->sa_flags &= ~SA_RESTORER;
-  }
-#endif
-
-  return rv;
-}
diff --git a/klibc/klibc/siglist.c b/klibc/klibc/siglist.c
deleted file mode 100644 (file)
index dce7355..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * siglist.h
- *
- * Construct the signal list
- */
-
-#include <signal.h>
-#include <unistd.h>
-
-const char * const sys_siglist[NSIG] = {
-#ifdef SIGABRT
-  [SIGABRT] = "Aborted",
-#endif
-#ifdef SIGALRM
-  [SIGALRM] = "Alarm clock",
-#endif
-#ifdef SIGBUS
-  [SIGBUS] = "Bus error",
-#endif
-#ifdef SIGCHLD
-  [SIGCHLD] = "Child exited",
-#endif
-#if defined(SIGCLD) && (SIGCHLD != SIGCLD)
-  [SIGCLD] = "Child exited",
-#endif
-#ifdef SIGEMT
-  [SIGEMT] = "Emulation trap",
-#endif
-#ifdef SIGFPE
-  [SIGFPE] = "Floating point exception",
-#endif
-#ifdef SIGHUP
-  [SIGHUP] = "Hangup",
-#endif
-#ifdef SIGILL
-  [SIGILL] = "Illegal instruction",
-#endif
-  /* SIGINFO == SIGPWR */
-#ifdef SIGINT
-  [SIGINT] = "Interrupt",
-#endif
-#ifdef SIGIO
-  [SIGIO] = "I/O possible",
-#endif
-#if defined(SIGIOT) && (SIGIOT != SIGABRT)
-  [SIGIOT] = "I/O trap",
-#endif
-#ifdef SIGKILL
-  [SIGKILL] = "Killed",
-#endif
-#if defined(SIGLOST) && (SIGLOST != SIGIO) && (SIGLOST != SIGPWR)
-  [SIGLOST] = "Lock lost",
-#endif
-#ifdef SIGPIPE
-  [SIGPIPE] = "Broken pipe",
-#endif
-#if defined(SIGPOLL) && (SIGPOLL != SIGIO)
-  [SIGPOLL] = "Pollable event",
-#endif
-#ifdef SIGPROF
-  [SIGPROF] = "Profiling timer expired",
-#endif
-#ifdef SIGPWR
-  [SIGPWR] = "Power failure",
-#endif
-#ifdef SIGQUIT
-  [SIGQUIT] = "Quit",
-#endif
-  /* SIGRESERVE == SIGUNUSED */
-#ifdef SIGSEGV
-  [SIGSEGV] = "Segment violation",
-#endif
-#ifdef SIGSTKFLT
-  [SIGSTKFLT] = "Stack fault",
-#endif
-#ifdef SIGSTOP
-  [SIGSTOP] = "Stopped (signal)",
-#endif
-#ifdef SIGSYS
-  [SIGSYS] = "Bad system call",
-#endif
-#ifdef SIGTERM
-  [SIGTERM] = "Terminated",
-#endif
-#ifdef SIGTSTP
-  [SIGTSTP] = "Stopped",
-#endif
-#ifdef SIGTTIN
-  [SIGTTIN] = "Stopped (tty input)",
-#endif
-#ifdef SIGTTOU
-  [SIGTTOU] = "Stopped (tty output)",
-#endif
-#ifdef SIGURG
-  [SIGURG] = "Urgent I/O condition",
-#endif
-#ifdef SIGUSR1
-  [SIGUSR1] = "User signal 1",
-#endif
-#ifdef SIGUSR2
-  [SIGUSR2] = "User signal 2",
-#endif
-#ifdef SIGVTALRM
-  [SIGVTALRM] = "Virtual timer expired",
-#endif
-#ifdef SIGWINCH
-  [SIGWINCH] = "Window size changed",
-#endif
-#ifdef SIGXCPU
-  [SIGXCPU] = "CPU time limit exceeded",
-#endif
-#ifdef SIGXFSZ
-  [SIGXFSZ] = "File size limit exceeded",
-#endif
-};
diff --git a/klibc/klibc/siglongjmp.c b/klibc/klibc/siglongjmp.c
deleted file mode 100644 (file)
index 2ba1239..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * siglongjmp.c
- *
- * sigsetjmp() is a macro, by necessity (it's either that or write
- * it in assembly), but siglongjmp() is a normal function.
- */
-
-#include <setjmp.h>
-#include <signal.h>
-
-__noreturn siglongjmp(sigjmp_buf buf, int retval)
-{
-  sigprocmask(SIG_SETMASK, &buf->__sigs, NULL);
-  longjmp(buf->__jmpbuf, retval);
-}
-
diff --git a/klibc/klibc/sigpending.c b/klibc/klibc/sigpending.c
deleted file mode 100644 (file)
index decfe32..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * sigpending.c
- */
-
-#include <signal.h>
-#include <sys/syscall.h>
-
-#ifndef __NR_sigpending
-
-__extern __rt_sigpending(sigset_t *, size_t);
-
-int sigpending(sigset_t *set)
-{
-  return __rt_sigpending(set, sizeof(sigset_t));
-}
-
-#endif
diff --git a/klibc/klibc/sigprocmask.c b/klibc/klibc/sigprocmask.c
deleted file mode 100644 (file)
index 372e0fd..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * sigprocmask.c
- */
-
-#include <signal.h>
-#include <sys/syscall.h>
-
-#ifndef __NR_sigprocmask
-
-__extern __rt_sigprocmask(int, const sigset_t *, sigset_t *, size_t);
-
-int sigprocmask(int how, const sigset_t *set, sigset_t *oset)
-{
-  return __rt_sigprocmask(how, set, oset, sizeof(sigset_t));
-}
-
-#endif
diff --git a/klibc/klibc/sigsuspend.c b/klibc/klibc/sigsuspend.c
deleted file mode 100644 (file)
index 22f9a46..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * sigsuspend.c
- */
-
-#include <signal.h>
-#include <sys/syscall.h>
-
-#ifndef __NR_sigsuspend
-
-__extern int __rt_sigsuspend(const sigset_t *, size_t);
-
-int sigsuspend(const sigset_t *mask)
-{
-  return __rt_sigsuspend(mask, sizeof *mask);
-}
-
-#endif
diff --git a/klibc/klibc/sleep.c b/klibc/klibc/sleep.c
deleted file mode 100644 (file)
index eb3777e..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * sleep.c
- */
-
-#include <errno.h>
-#include <time.h>
-
-unsigned int sleep(unsigned int seconds)
-{
-  struct timespec ts;
-
-  ts.tv_sec = seconds;
-  ts.tv_nsec = 0;
-  if ( !nanosleep(&ts,&ts) )
-    return 0;
-  else if ( errno == EINTR )
-    return ts.tv_sec;
-  else
-    return -1;
-}
diff --git a/klibc/klibc/snprintf.c b/klibc/klibc/snprintf.c
deleted file mode 100644 (file)
index c642851..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * snprintf.c
- */
-
-#include <stdio.h>
-
-int snprintf(char *buffer, size_t n, const char *format, ...)
-{
-  va_list ap;
-  int rv;
-
-  va_start(ap, format);
-  rv = vsnprintf(buffer, n, format, ap);
-  va_end(ap);
-  return rv;
-}
diff --git a/klibc/klibc/socketcalls.pl b/klibc/klibc/socketcalls.pl
deleted file mode 100644 (file)
index 68f0fa1..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/perl
-
-$v = $ENV{'KBUILD_VERBOSE'};
-$quiet = defined($v) ? !$v : 0;
-
-@args = ();
-for $arg ( @ARGV ) {
-    if ( $arg =~ /^-/ ) {
-       if ( $arg eq '-q' ) {
-           $quiet = 1;
-       } else {
-           die "$0: Unknown option: $arg\n";
-       }
-    } else {
-       push(@args, $arg);
-    }
-}
-($file, $arch, $outputdir) = @args;
-
-if (!open(FILE, "< $file")) {
-    die "$file: $!\n";
-}
-
-print "socketcall-objs := ";
-while ( defined($line = <FILE>) ) {
-    chomp $line;
-    $line =~ s/\s*[\#\;].*$//; # Strip comments and trailing blanks
-    next unless $line;
-
-    if ( $line =~ /^\s*\<\?\>\s*(.*)\s+([_a-zA-Z][_a-zA-Z0-9]+)\s*\((.*)\)$/ ) {
-       $type = $1;
-       $name = $2;
-       $argv = $3;
-
-       @args = split(/\s*\,\s*/, $argv);
-       @cargs = ();
-
-       $i = 0;
-       for $arg ( @args ) {
-           push(@cargs, "$arg a".$i++);
-       }
-       $nargs = $i;
-       print " \\\n\t${name}.o";
-
-       if ( $arch eq 'i386' ) {
-           open(OUT, '>', "${outputdir}/${name}.S")
-               or die "$0: Cannot open ${outputdir}/${name}.S\n";
-
-           print OUT "#include <sys/socketcalls.h>\n";
-           print OUT "\n";
-           print OUT "\t.text\n";
-           print OUT "\t.align 4\n";
-           print OUT "\t.globl ${name}\n";
-           print OUT "\t.type ${name},\@function\n";
-           print OUT "${name}:\n";
-           print OUT "\tmovb \$SYS_\U${name}\E,%al\n";
-           print OUT "\tjmp __socketcall_common\n";
-           print OUT "\t.size ${name},.-${name}\n";
-           close(OUT);
-       } else {
-           open(OUT, '>', "${outputdir}/${name}.c")
-               or die "$0: Cannot open ${outputdir}/${name}.c\n";
-
-           print OUT "#include \"../socketcommon.h\"\n";
-           print OUT "\n";
-           print OUT "#ifndef __NR_${name}\n\n";
-
-           print OUT "extern long __socketcall(int, const unsigned long *);\n\n";
-
-           print OUT "$type $name (", join(', ', @cargs), ")\n";
-           print OUT "{\n";
-           print OUT "    unsigned long args[$nargs];\n";
-           for ( $i = 0 ; $i < $nargs ; $i++ ) {
-               print OUT "    args[$i] = (unsigned long)a$i;\n";
-           }
-           print OUT "    return ($type) __socketcall(SYS_\U${name}\E, args);\n";
-           print OUT "}\n\n";
-
-           print OUT "#endif\n";
-
-           close(OUT);
-       }
-    } else {
-       die "$file:$.: Could not parse input\n";
-    }
-}
-
-print "\n";
diff --git a/klibc/klibc/socketcommon.h b/klibc/klibc/socketcommon.h
deleted file mode 100644 (file)
index 9c4b11f..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * socketcommon.h
- *
- * Common header file for socketcall stubs
- */
-
-#define __IN_SYS_COMMON
-#include <errno.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <linux/net.h>
-#include <sys/socketcalls.h>
diff --git a/klibc/klibc/sprintf.c b/klibc/klibc/sprintf.c
deleted file mode 100644 (file)
index 31f28af..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * sprintf.c
- */
-
-#include <stdio.h>
-#include <unistd.h>
-
-int sprintf(char *buffer, const char *format, ...)
-{
-  va_list ap;
-  int rv;
-
-  va_start(ap, format);
-  rv = vsnprintf(buffer, ~(size_t)0, format, ap);
-  va_end(ap);
-
-  return rv;
-}
diff --git a/klibc/klibc/srand48.c b/klibc/klibc/srand48.c
deleted file mode 100644 (file)
index 5f201d2..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * srand48.c
- */
-
-#include <stdlib.h>
-#include <stdint.h>
-
-unsigned short __rand48_seed[3]; /* Common with mrand48.c, lrand48.c */
-
-void srand48(long seedval)
-{
-  __rand48_seed[0] = 0x330e;
-  __rand48_seed[1] = (unsigned short)seedval;
-  __rand48_seed[2] = (unsigned short)((uint32_t)seedval >> 16);
-}
diff --git a/klibc/klibc/sscanf.c b/klibc/klibc/sscanf.c
deleted file mode 100644 (file)
index 81aab9e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * sscanf()
- */
-
-#include <stdio.h>
-
-int sscanf(const char *str, const char *format, ...)
-{
-  va_list ap;
-  int rv;
-
-  va_start(ap, format);
-  rv = vsscanf(str, format, ap);
-  va_end(ap);
-
-  return rv;
-}
diff --git a/klibc/klibc/statfs.c b/klibc/klibc/statfs.c
deleted file mode 100644 (file)
index 60e9188..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * statfs.c
- *
- * On architectures which do statfs64, wrap the system call
- */
-
-#include <sys/syscall.h>
-#include <sys/vfs.h>
-
-#ifdef __NR_statfs64
-
-extern int __statfs64(const char *, size_t, struct statfs *);
-
-int statfs(const char *path, struct statfs *buf)
-{
-  return __statfs64(path, sizeof *buf, buf);
-}
-
-#endif
diff --git a/klibc/klibc/strcasecmp.c b/klibc/klibc/strcasecmp.c
deleted file mode 100644 (file)
index 12aef40..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * strcasecmp.c
- */
-
-#include <string.h>
-#include <ctype.h>
-
-int strcasecmp(const char *s1, const char *s2)
-{
-  const unsigned char *c1 = s1, *c2 = s2;
-  unsigned char ch;
-  int d = 0;
-
-  while ( 1 ) {
-    /* toupper() expects an unsigned char (implicitly cast to int)
-       as input, and returns an int, which is exactly what we want. */
-    d = toupper(ch = *c1++) - toupper(*c2++);
-    if ( d || !ch )
-      break;
-  }
-
-  return d;
-}
diff --git a/klibc/klibc/strcat.c b/klibc/klibc/strcat.c
deleted file mode 100644 (file)
index a5f9477..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * strcat.c
- */
-
-#include <string.h>
-
-char *strcat(char *dst, const char *src)
-{
-  strcpy(strchr(dst, '\0'), src);
-  return dst;
-}
diff --git a/klibc/klibc/strchr.c b/klibc/klibc/strchr.c
deleted file mode 100644 (file)
index f657095..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * strchr.c
- */
-
-#include <string.h>
-#include <klibc/compiler.h>
-
-char *strchr(const char *s, int c)
-{
-  while ( *s != (char)c ) {
-    if ( ! *s )
-      return NULL;
-    s++;
-  }
-
-  return (char *)s;
-}
-
-__ALIAS(char *, index, (const char *, int), strchr)
diff --git a/klibc/klibc/strcmp.c b/klibc/klibc/strcmp.c
deleted file mode 100644 (file)
index f44774f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * strcmp.c
- */
-
-#include <string.h>
-
-int strcmp(const char *s1, const char *s2)
-{
-  const unsigned char *c1 = s1, *c2 = s2;
-  unsigned char ch;
-  int d = 0;
-
-  while ( 1 ) {
-    d = (int)(ch = *c1++) - (int)*c2++;
-    if ( d || !ch )
-      break;
-  }
-
-  return d;
-}
diff --git a/klibc/klibc/strcpy.c b/klibc/klibc/strcpy.c
deleted file mode 100644 (file)
index 8372eba..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * strcpy.c
- *
- * strcpy()
- */
-
-#include <string.h>
-
-char *strcpy(char *dst, const char *src)
-{
-  char *q = dst;
-  const char *p = src;
-  char ch;
-
-  do {
-    *q++ = ch = *p++;
-  } while ( ch );
-
-  return dst;
-}
diff --git a/klibc/klibc/strcspn.c b/klibc/klibc/strcspn.c
deleted file mode 100644 (file)
index 87d6445..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * strcspn
- */
-
-#include "strxspn.h"
-
-size_t
-strcspn(const char *s, const char *reject)
-{
-  return __strxspn(s, reject, 1);
-}
diff --git a/klibc/klibc/strdup.c b/klibc/klibc/strdup.c
deleted file mode 100644 (file)
index eb170c2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * strdup.c
- */
-
-#include <string.h>
-#include <stdlib.h>
-
-char *strdup(const char *s)
-{
-  int l = strlen(s)+1;
-  char *d = malloc(l);
-
-  if ( d )
-    memcpy(d, s, l);
-
-  return d;
-}
diff --git a/klibc/klibc/strerror.c b/klibc/klibc/strerror.c
deleted file mode 100644 (file)
index c8e3eac..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * strerror.c
- */
-
-#include <string.h>
-
-char *strerror(int errnum)
-{
-  static char message[32] = "error "; /* enough for error 2^63-1 */
-  char numbuf[32];
-  char *p;
-  unsigned int e = (unsigned int)errnum;
-
-#ifdef WITH_ERRLIST
-  extern const int sys_nerr;
-  extern const char * const sys_errlist[];
-
-  if ( e < (unsigned int)sys_nerr && sys_errlist[e] )
-    return (char *)sys_errlist[e];
-#endif
-
-  p = numbuf+sizeof numbuf;
-  *--p = '\0';
-
-  do {
-    *--p = (e % 10) + '0';
-    e /= 10;
-  } while ( e );
-
-  memcpy(message+6, p, (numbuf+sizeof numbuf)-p);
-
-  return message;
-}
-
diff --git a/klibc/klibc/strlcat.c b/klibc/klibc/strlcat.c
deleted file mode 100644 (file)
index f397857..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * strlcat.c
- */
-
-#include <string.h>
-#include <klibc/compiler.h>
-
-size_t strlcat(char *dst, const char *src, size_t size)
-{
-  size_t bytes = 0;
-  char *q = dst;
-  const char *p = src;
-  char ch;
-
-  while ( bytes < size && *q ) {
-    q++;
-    bytes++;
-  }
-  if (bytes == size)
-    return (bytes + strlen(src));
-
-  while ( (ch = *p++) ) {
-    if ( bytes+1 < size )
-      *q++ = ch;
-
-    bytes++;
-  }
-
-  *q = '\0';
-  return bytes;
-}
-
-
diff --git a/klibc/klibc/strlcpy.c b/klibc/klibc/strlcpy.c
deleted file mode 100644 (file)
index e693744..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * strlcpy.c
- */
-
-#include <string.h>
-#include <klibc/compiler.h>
-
-size_t strlcpy(char *dst, const char *src, size_t size)
-{
-  size_t bytes = 0;
-  char *q = dst;
-  const char *p = src;
-  char ch;
-
-  while ( (ch = *p++) ) {
-    if ( bytes+1 < size )
-      *q++ = ch;
-
-    bytes++;
-  }
-
-  /* If size == 0 there is no space for a final null... */
-  if ( size )
-    *q = '\0';
-
-  return bytes;
-}
-
-
diff --git a/klibc/klibc/strlen.c b/klibc/klibc/strlen.c
deleted file mode 100644 (file)
index 4d773f9..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * strlen()
- */
-
-#include <string.h>
-
-size_t strlen(const char *s)
-{
-  const char *ss = s;
-  while ( *ss )
-    ss++;
-  return ss-s;
-}
-
diff --git a/klibc/klibc/strncasecmp.c b/klibc/klibc/strncasecmp.c
deleted file mode 100644 (file)
index 3309d1a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * strncasecmp.c
- */
-
-#include <string.h>
-#include <ctype.h>
-
-int strncasecmp(const char *s1, const char *s2, size_t n)
-{
-  const unsigned char *c1 = s1, *c2 = s2;
-  unsigned char ch;
-  int d = 0;
-
-  while ( n-- ) {
-    /* toupper() expects an unsigned char (implicitly cast to int)
-       as input, and returns an int, which is exactly what we want. */
-    d = toupper(ch = *c1++) - toupper(*c2++);
-    if ( d || !ch )
-      break;
-  }
-
-  return d;
-}
diff --git a/klibc/klibc/strncat.c b/klibc/klibc/strncat.c
deleted file mode 100644 (file)
index 7822315..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * strncat.c
- */
-
-#include <string.h>
-#include <klibc/compiler.h>
-
-char *strncat(char *dst, const char *src, size_t n)
-{
-  char *q = strchr(dst, '\0');
-  const char *p = src;
-  char ch;
-
-  while (n--) {
-    *q++ = ch = *p++;
-    if ( !ch )
-      return dst;
-  }
-  *q = '\0';
-
-  return dst;
-}
diff --git a/klibc/klibc/strncmp.c b/klibc/klibc/strncmp.c
deleted file mode 100644 (file)
index 4dbde13..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * strncmp.c
- */
-
-#include <string.h>
-
-int strncmp(const char *s1, const char *s2, size_t n)
-{
-  const unsigned char *c1 = s1, *c2 = s2;
-  unsigned char ch;
-  int d = 0;
-
-  while ( n-- ) {
-    d = (int)(ch = *c1++) - (int)*c2++;
-    if ( d || !ch )
-      break;
-  }
-
-  return d;
-}
diff --git a/klibc/klibc/strncpy.c b/klibc/klibc/strncpy.c
deleted file mode 100644 (file)
index 06964f3..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * strncpy.c
- */
-
-#include <string.h>
-
-char *strncpy(char *dst, const char *src, size_t n)
-{
-  char *q = dst;
-  const char *p = src;
-  char ch;
-
-  while (n) {
-    n--;
-    *q++ = ch = *p++;
-    if ( !ch )
-      break;
-  }
-
-  /* The specs say strncpy() fills the entire buffer with NUL.  Sigh. */
-  memset(q, 0, n);
-
-  return dst;
-}
diff --git a/klibc/klibc/strndup.c b/klibc/klibc/strndup.c
deleted file mode 100644 (file)
index 1b44e6f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * strndup.c
- */
-
-#include <string.h>
-#include <stdlib.h>
-
-char *strndup(const char *s, size_t n)
-{
-       int l = n > strlen(s) ? strlen(s)+1 : n+1;
-       char *d = malloc(l);
-
-       if (d)
-               memcpy(d, s, l);
-       d[n] = '\0';
-       return d;
-}
diff --git a/klibc/klibc/strnlen.c b/klibc/klibc/strnlen.c
deleted file mode 100644 (file)
index 06b54c3..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * strnlen()
- */
-
-#include <string.h>
-
-size_t strnlen(const char *s, size_t maxlen)
-{
-  const char *ss = s;
-
-  /* Important: the maxlen test must precede the reference through ss;
-     since the byte beyond the maximum may segfault */
-  while ((maxlen > 0) && *ss) {
-       ss++;
-       maxlen--;
-  }
-  return ss-s;
-}
-
diff --git a/klibc/klibc/strntoimax.c b/klibc/klibc/strntoimax.c
deleted file mode 100644 (file)
index f53a266..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * strntoimax.c
- *
- * strntoimax()
- */
-
-#include <stddef.h>
-#include <inttypes.h>
-
-intmax_t strntoimax(const char *nptr, char **endptr, int base, size_t n)
-{
-  return (intmax_t) strntoumax(nptr, endptr, base, n);
-}
diff --git a/klibc/klibc/strntoumax.c b/klibc/klibc/strntoumax.c
deleted file mode 100644 (file)
index 4c47fe8..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * strntoumax.c
- *
- * The strntoumax() function and associated
- */
-
-#include <stddef.h>
-#include <stdint.h>
-#include <ctype.h>
-
-static inline int digitval(int ch)
-{
-  if ( ch >= '0' && ch <= '9' ) {
-    return ch-'0';
-  } else if ( ch >= 'A' && ch <= 'Z' ) {
-    return ch-'A'+10;
-  } else if ( ch >= 'a' && ch <= 'z' ) {
-    return ch-'a'+10;
-  } else {
-    return -1;
-  }
-}
-
-uintmax_t strntoumax(const char *nptr, char **endptr, int base, size_t n)
-{
-  int minus = 0;
-  uintmax_t v = 0;
-  int d;
-
-  while ( n && isspace((unsigned char)*nptr) ) {
-    nptr++;
-    n--;
-  }
-
-  /* Single optional + or - */
-  if ( n ) {
-    char c = *nptr;
-    if ( c == '-' || c == '+' ) {
-      minus = (c == '-');
-      nptr++;
-      n--;
-    }
-  }
-
-  if ( base == 0 ) {
-    if ( n >= 2 && nptr[0] == '0' &&
-        (nptr[1] == 'x' || nptr[1] == 'X') ) {
-      n -= 2;
-      nptr += 2;
-      base = 16;
-    } else if ( n >= 1 && nptr[0] == '0' ) {
-      n--;
-      nptr++;
-      base = 8;
-    } else {
-      base = 10;
-    }
-  } else if ( base == 16 ) {
-    if ( n >= 2 && nptr[0] == '0' &&
-        (nptr[1] == 'x' || nptr[1] == 'X') ) {
-      n -= 2;
-      nptr += 2;
-    }
-  }
-
-  while ( n && (d = digitval(*nptr)) >= 0 && d < base ) {
-    v = v*base + d;
-    n--;
-    nptr++;
-  }
-
-  if ( endptr )
-    *endptr = (char *)nptr;
-
-  return minus ? -v : v;
-}
diff --git a/klibc/klibc/strpbrk.c b/klibc/klibc/strpbrk.c
deleted file mode 100644 (file)
index 86ea236..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * strpbrk
- */
-
-#include "strxspn.h"
-
-char *
-strpbrk(const char *s, const char *accept)
-{
-  const char *ss = s+__strxspn(s, accept, 1);
-  
-  return *ss ? (char *)ss : NULL;
-}
-
diff --git a/klibc/klibc/strrchr.c b/klibc/klibc/strrchr.c
deleted file mode 100644 (file)
index 5a0cbe3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * strrchr.c
- */
-
-#include <string.h>
-#include <klibc/compiler.h>
-
-char *strrchr(const char *s, int c)
-{
-  const char *found = NULL;
-  
-  while ( *s ) {
-    if ( *s == (char) c )
-      found = s;
-    s++;
-  }
-
-  return (char *)found;
-}
-
-__ALIAS(char *, rindex, (const char *, int), strrchr)
diff --git a/klibc/klibc/strsep.c b/klibc/klibc/strsep.c
deleted file mode 100644 (file)
index 58a7a07..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * strsep.c
- */
-
-#include <string.h>
-
-char *strsep(char **stringp, const char *delim)
-{
-  char *s = *stringp;
-  char *e;
-
-  if ( !s )
-    return NULL;
-
-  e = strpbrk(s, delim);
-  if (e)
-    *e++ = '\0';
-
-  *stringp = e;
-  return s;
-}
diff --git a/klibc/klibc/strspn.c b/klibc/klibc/strspn.c
deleted file mode 100644 (file)
index 10b1dfc..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * strspn
- */
-
-#include "strxspn.h"
-
-size_t
-strspn(const char *s, const char *accept)
-{
-  return __strxspn(s, accept, 0);
-}
diff --git a/klibc/klibc/strstr.c b/klibc/klibc/strstr.c
deleted file mode 100644 (file)
index 10222df..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * strstr.c
- */
-
-#include <string.h>
-
-char *strstr(const char *haystack, const char *needle)
-{
-  return (char *)memmem(haystack, strlen(haystack), needle, strlen(needle));
-}
diff --git a/klibc/klibc/strtoimax.c b/klibc/klibc/strtoimax.c
deleted file mode 100644 (file)
index 0cdd088..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE intmax_t
-#define NAME strtoimax
-#include "strtox.c"
diff --git a/klibc/klibc/strtok.c b/klibc/klibc/strtok.c
deleted file mode 100644 (file)
index 6e84f1d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * strtok.c
- */
-
-#include <string.h>
-
-char *strtok(char *s, const char *delim)
-{
-  static char *holder;
-
-  if ( s )
-    holder = s;
-
-  return strsep(&holder, delim);
-}
-
diff --git a/klibc/klibc/strtol.c b/klibc/klibc/strtol.c
deleted file mode 100644 (file)
index 9efc8b9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE signed long
-#define NAME strtol
-#include "strtox.c"
diff --git a/klibc/klibc/strtoll.c b/klibc/klibc/strtoll.c
deleted file mode 100644 (file)
index a9428c7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE signed long long
-#define NAME strtoll
-#include "strtox.c"
diff --git a/klibc/klibc/strtotimespec.c b/klibc/klibc/strtotimespec.c
deleted file mode 100644 (file)
index b426bf8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#define NAME    strtotimespec
-#define TIMEX   struct timespec
-#define FSEC    tv_nsec
-#define DECIMALS 9
-#include "strtotimex.c"
diff --git a/klibc/klibc/strtotimeval.c b/klibc/klibc/strtotimeval.c
deleted file mode 100644 (file)
index 280d4bc..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#define NAME    strtotimeval
-#define TIMEX   struct timeval
-#define FSEC    tv_usec
-#define DECIMALS 6
-#include "strtotimex.c"
diff --git a/klibc/klibc/strtotimex.c b/klibc/klibc/strtotimex.c
deleted file mode 100644 (file)
index 0f6c2f9..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * strtotimex.c
- *
- * Nonstandard function which takes a string and converts it to a
- * struct timespec/timeval.  Returns a pointer to the first non-numeric
- * character in the string.
- *
- */
-
-#include <ctype.h>
-#include <inttypes.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-char * NAME (const char *str, TIMEX *ts)
-{
-  int n;
-  char *s, *s0;
-  __typeof__(ts->FSEC) fs;     /* Fractional seconds */
-
-  ts->tv_sec = strntoumax(str, &s, 10, ~(size_t)0);
-  fs = 0;
-
-  if ( *s == '.' ) {
-    s0 = s+1;
-
-    fs = strntoumax(s0, &s, 10, DECIMALS);
-    n = s-s0;
-    
-    while ( isdigit(*s) )
-      s++;
-    
-    for ( ; n < DECIMALS ; n++ )
-      fs *= 10;
-  }
-
-  ts->FSEC = fs;
-  return s;
-}
diff --git a/klibc/klibc/strtoul.c b/klibc/klibc/strtoul.c
deleted file mode 100644 (file)
index 3189aaa..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE unsigned long
-#define NAME strtoul
-#include "strtox.c"
diff --git a/klibc/klibc/strtoull.c b/klibc/klibc/strtoull.c
deleted file mode 100644 (file)
index 83c14e9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE unsigned long long
-#define NAME strtoull
-#include "strtox.c"
diff --git a/klibc/klibc/strtoumax.c b/klibc/klibc/strtoumax.c
deleted file mode 100644 (file)
index a379710..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define TYPE uintmax_t
-#define NAME strtoumax
-#include "strtox.c"
diff --git a/klibc/klibc/strtox.c b/klibc/klibc/strtox.c
deleted file mode 100644 (file)
index 7c228b6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * strtox.c
- *
- * strto...() functions, by macro definition
- */
-
-#include <stddef.h>
-#include <inttypes.h>
-
-TYPE NAME (const char *nptr, char **endptr, int base)
-{
-  return (TYPE) strntoumax(nptr, endptr, base, ~(size_t)0);
-}
diff --git a/klibc/klibc/strxspn.c b/klibc/klibc/strxspn.c
deleted file mode 100644 (file)
index 618c0bc..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * strpbrk
- */
-
-#include <string.h>
-#include <stddef.h>
-#include <inttypes.h>
-#include <limits.h>
-#include "strxspn.h"
-
-size_t
-__strxspn(const char *s, const char *map, int parity)
-{
-  char matchmap[UCHAR_MAX+1];
-  size_t n = 0;
-
-  /* Create bitmap */
-  memset(matchmap, 0, sizeof matchmap);
-  while ( *map )
-    matchmap[(unsigned char) *map++] = 1;
-  
-  /* Make sure the null character never matches */
-  matchmap[0] = parity;
-
-  /* Calculate span length */
-  while ( matchmap[(unsigned char) *s++] ^ parity )
-    n++;
-
-  return n;
-}
diff --git a/klibc/klibc/strxspn.h b/klibc/klibc/strxspn.h
deleted file mode 100644 (file)
index 5e1a219..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * strxspn.h
- */
-
-#ifndef STRXSPN_H
-#define STRXSPN_H
-
-#include <stddef.h>
-
-extern size_t
-__strxspn(const char *s, const char *map, int parity);
-
-#endif
diff --git a/klibc/klibc/syscalls.pl b/klibc/klibc/syscalls.pl
deleted file mode 100644 (file)
index 0575fa6..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/perl
-#
-# Script to parse the SYSCALLS file and generate appropriate
-# stubs.
-
-$v = $ENV{'KBUILD_VERBOSE'};
-$quiet = defined($v) ? !$v : 0;
-
-@args = ();
-for $arg ( @ARGV ) {
-    if ( $arg =~ /^-/ ) {
-       if ( $arg eq '-q' ) {
-           $quiet = 1;
-       } else {
-           die "$0: Unknown option: $arg\n";
-       }
-    } else {
-       push(@args, $arg);
-    }
-}
-($file, $sysstub, $arch, $bits, $unistd, $outputdir, $havesyscall) = @args;
-
-require "$sysstub";
-
-if (!open(UNISTD, '<', $unistd)) {
-    die "$0: $unistd: $!\n";
-}
-
-while ( defined($line = <UNISTD>) ) {
-    chomp $line;
-
-    if ( $line =~ /^\#\s*define\s+__NR_([A-Za-z0-9_]+)\s+(.*\S)\s*$/ ) {
-       $syscalls{$1} = $2;
-       print STDERR "SYSCALL FOUND: $1\n" unless ( $quiet );
-    }
-}
-close(UNISTD);
-
-if (!open(HAVESYS, '>', $havesyscall)) {
-    die "$0: $havesyscall: $!\n";
-}
-
-print HAVESYS "#ifndef _KLIBC_HAVESYSCALL_H\n";
-print HAVESYS "#define _KLIBC_HAVESYSCALL_H 1\n\n";
-
-if (!open(FILE, '<', $file)) {
-    die "$0: $file: $!\n";
-}
-
-print "syscall-objs := ";
-
-while ( defined($line = <FILE>) ) {
-    chomp $line;
-    $line =~ s/\s*(|[\#;].*)$//; # Strip comments and trailing blanks
-    next unless $line;
-
-    if ( $line =~ /^\s*(\<[^\>]+\>\s+|)([A-Za-z0-9_\*\s]+)\s+([A-Za-z0-9_,]+)(|\@[A-Za-z0-9_]+)(|\:\:[A-Za-z0-9_]+)\s*\(([^\:\)]*)\)\s*$/ ) {
-       $archs  = $1;
-       $type   = $2;
-       $snames = $3;
-       $stype  = $4;
-       $fname  = $5;
-       $argv   = $6;
-
-       $doit  = 1;
-       $maybe = 0;
-       if ( $archs ne '' ) {
-           die "$file:$.: Invalid architecture spec: <$archs>\n"
-               unless ( $archs =~ /^\<(|\?)(|\!)([^\>\!\?]*)\>/ );
-           $maybe = $1 ne '';
-           $not = $2 ne '';
-           $list = $3;
-
-           $doit = $not || ($list eq '');
-
-           @list = split(/,/, $list);
-           foreach  $a ( @list ) {
-               if ( $a eq $arch || $a eq $bits ) {
-                   $doit = !$not;
-                   last;
-               }
-           }
-       }
-       next if ( ! $doit );
-
-       undef $sname;
-       foreach $sn ( split(/,/, $snames) ) {
-           if ( defined $syscalls{$sn} ) {
-               $sname = $sn;
-               last;
-           }
-       }
-       if ( !defined($sname) ) {
-           next if ( $maybe );
-           die "$file:$.: Undefined system call: $snames\n";
-       }
-
-       $type  =~ s/\s*$//;
-       $stype =~ s/^\@//;
-
-       if ( $fname eq '' ) {
-           $fname = $sname;
-       } else {
-           $fname =~ s/^\:\://;
-       }
-
-       @args = split(/\s*\,\s*/, $argv);
-
-       print HAVESYS "#define _KLIBC_HAVE_SYSCALL_${fname} ${sname}\n";
-       print " \\\n\t${fname}.o";
-       make_sysstub($outputdir, $fname, $type, $sname, $stype, @args);
-    } else {
-       die "$file:$.: Could not parse input: \"$line\"\n";
-    }
-}
-
-print "\n";
-
-print HAVESYS "\n#endif\n";
-close(HAVESYS);
diff --git a/klibc/klibc/syscommon.h b/klibc/klibc/syscommon.h
deleted file mode 100644 (file)
index 4290252..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * syscommon.h
- *
- * Common header file for system call stubs
- */
-
-#define __IN_SYS_COMMON
-#include <errno.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-
-#include <poll.h>
-#include <sched.h>
-#include <sys/dirent.h>
-#include <sys/klog.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
-#include <sys/select.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/times.h>
-#include <sys/uio.h>
-#include <sys/utime.h>
-#include <sys/utsname.h>
-#include <sys/vfs.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-#ifdef __i386__
-# include <sys/vm86.h>
-#endif
diff --git a/klibc/klibc/syslog.c b/klibc/klibc/syslog.c
deleted file mode 100644 (file)
index 0cd296a..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * syslog.c
- *
- * Issue syslog messages via the kernel printk queue.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdarg.h>
-#include <syslog.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-/* Maximum size for a kernel message */
-#define BUFLEN 1024
-
-/* Logging node */
-#define LOGDEV "/dev/kmsg"
-
-/* Max length of ID string */
-#define MAXID 31               /* MAXID+5 must be < BUFLEN */
-
-int __syslog_fd = -1;
-static char id[MAXID+1];
-static int syslog_flags = 0;
-
-void openlog(const char *ident, int option, int facility)
-{
-  int fd;
-
-  (void)option; (void)facility;        /* Unused */
-  
-  if ( __syslog_fd == -1 ) {
-    __syslog_fd = fd = open(LOGDEV, O_WRONLY);
-    if ( fd == -1 )
-      return;
-    fcntl(fd, F_SETFD, (long)FD_CLOEXEC);
-  }
-  
-  syslog_flags = option;
-
-  strncpy(id, ident?ident:"", MAXID);
-}
-
-void vsyslog(int prio, const char *format, va_list ap)
-{
-  char buf[BUFLEN];
-  int len;
-  int fd;
-
-  if ( __syslog_fd == -1 )
-    openlog(NULL, 0, 0);
-
-  buf[0] = '<';
-  buf[1] = LOG_PRI(prio)+'0';
-  buf[2] = '>';
-  len = 3;
-
-  if ( syslog_flags & LOG_PID )
-    len += sprintf(buf+3, "%s[%u]: ", id, getpid());
-  else if ( *id )
-    len += sprintf(buf+3, "%s: ", id);
-
-  len += vsnprintf(buf+len, BUFLEN-len, format, ap);
-
-  if ( len > BUFLEN-1 ) len = BUFLEN-1;
-  if (buf[len-1] != '\n')
-    buf[len++] = '\n';
-
-  fd = __syslog_fd;
-  if ( fd == -1 )
-    fd = 2;                    /* Failed to open log, write to stderr */
-
-  write(fd, buf, len);
-
-  if ( syslog_flags & LOG_PERROR )
-    _fwrite(buf+3, len-3, stderr);
-}
-
-void syslog(int prio, const char *format, ...)
-{
-  va_list ap;
-
-  va_start(ap, format);
-  vsyslog(prio, format, ap);
-  va_end(ap);
-}
diff --git a/klibc/klibc/system.c b/klibc/klibc/system.c
deleted file mode 100644 (file)
index 643bf5e..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * system.c
- *
- * The system() function.  If this turns out to actually be *used*,
- * we may want to try to detect the very simple cases (no shell magic)
- * and handle them internally, instead of requiring that /bin/sh be
- * present.
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
-#include <sys/wait.h>
-
-int system(const char *string)
-{
-  pid_t pid;
-  struct sigaction ignore, old_int, old_quit;
-  sigset_t masked, oldmask;
-  static const char *argv[] = { "/bin/sh", "-c", NULL, NULL };
-  int status;
-
-  /* Block SIGCHLD and ignore SIGINT and SIGQUIT */
-  /* Do this before the fork() to avoid races */
-
-  ignore.sa_handler = SIG_IGN;
-  sigemptyset(&ignore.sa_mask);
-  ignore.sa_flags = 0;
-  sigaction(SIGINT,  &ignore, &old_int);
-  sigaction(SIGQUIT, &ignore, &old_quit);
-
-  sigemptyset(&masked);
-  sigaddset(&masked, SIGCHLD);
-  sigprocmask(SIG_BLOCK, &masked, &oldmask);
-
-  pid = fork();
-
-  if ( pid < 0 )
-    return -1;
-  else if ( pid == 0 ) {
-    sigaction(SIGINT,  &old_int, NULL);
-    sigaction(SIGQUIT, &old_quit, NULL);
-    sigprocmask(SIG_SETMASK, &oldmask, NULL);
-
-    argv[2] = string;
-
-    execve(argv[0], (char * const *)argv, (char * const *)environ);
-    _exit(127);
-  }
-
-  /* else... */
-
-  waitpid(pid, &status, 0);
-
-  sigaction(SIGINT,  &old_int, NULL);
-  sigaction(SIGQUIT, &old_quit, NULL);
-  sigprocmask(SIG_SETMASK, &oldmask, NULL);
-
-  return status;
-}
diff --git a/klibc/klibc/sysv_signal.c b/klibc/klibc/sysv_signal.c
deleted file mode 100644 (file)
index 3e55a02..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * sysv_signal.c
- */
-
-#include <signal.h>
-
-__sighandler_t sysv_signal(int signum, __sighandler_t handler)
-{
-  /* Linux/SysV signal() semantics */
-  return __signal(signum, handler, SA_RESETHAND);
-}
diff --git a/klibc/klibc/time.c b/klibc/klibc/time.c
deleted file mode 100644 (file)
index 92f82cc..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * time.c
- */
-
-#include <time.h>
-#include <sys/time.h>
-#include <sys/syscall.h>
-
-#ifndef __NR_time
-
-time_t time(time_t *t)
-{
-  struct timeval tv;
-
-  gettimeofday(&tv, NULL);
-  
-  if ( t )
-    *t = (time_t)tv.tv_sec;
-
-  return (time_t)tv.tv_sec;
-}
-
-#endif
diff --git a/klibc/klibc/umount.c b/klibc/klibc/umount.c
deleted file mode 100644 (file)
index 9a8e62a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * umount.c
- *
- * Single-argument form of umount
- */
-
-#include <sys/mount.h>
-
-int umount(const char *dir)
-{
-  return umount2(dir, 0);
-}
diff --git a/klibc/klibc/unsetenv.c b/klibc/klibc/unsetenv.c
deleted file mode 100644 (file)
index 5f39f3d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * unsetenv.c
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-int unsetenv(const char *name)
-{
-  size_t len;
-  char **p, *q;
-  const char *z;
-
-  if ( !name || !name[0] ) {
-    errno = EINVAL;
-    return -1;
-  }
-
-  len = 0;
-  for ( z = name ; *z ; z++ ) {
-    len++;
-    if ( *z == '=' ) {
-      errno = EINVAL;
-      return -1;
-    }
-  }
-
-  for ( p = environ ; (q = *p) ; p++ ) {
-    if ( !strncmp(name,q,len) && q[len] == '=' )
-      break;
-  }
-
-  for ( ; (q = *p) ; p++ ) {
-    p[0] = p[1];
-  }
-
-  return 0;
-}
diff --git a/klibc/klibc/usleep.c b/klibc/klibc/usleep.c
deleted file mode 100644 (file)
index b63352e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * usleep.c
- */
-
-#include <errno.h>
-#include <time.h>
-
-void usleep(unsigned long usec)
-{
-  struct timespec ts;
-
-  ts.tv_sec  = usec/1000000UL;
-  ts.tv_nsec = (usec%1000000UL) * 1000;
-  while ( nanosleep(&ts,&ts) == -1 && errno == EINTR );
-}
diff --git a/klibc/klibc/utime.c b/klibc/klibc/utime.c
deleted file mode 100644 (file)
index 2c86077..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * utime.c
- */
-
-#include <utime.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-
-#ifndef __NR_utime
-
-int utime(const char *filename, const struct utimbuf *buf)
-{
-  struct timeval tvp[2];
-
-  tvp[0].tv_sec  = buf->actime;
-  tvp[0].tv_usec = 0;
-  tvp[1].tv_sec  = buf->modtime;
-  tvp[1].tv_usec = 0;
-
-  return utimes(filename, tvp);
-}
-
-#endif
diff --git a/klibc/klibc/vasprintf.c b/klibc/klibc/vasprintf.c
deleted file mode 100644 (file)
index 657bfdc..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * vasprintf.c
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-int vasprintf(char **bufp, const char *format, va_list ap)
-{
-  va_list ap1;
-  int bytes;
-  char *p;
-
-  va_copy(ap1, ap);
-
-  bytes = vsnprintf(NULL, 0, format, ap1) + 1;
-  va_end(ap1);
-
-  *bufp = p = malloc(bytes);
-  if ( !p )
-    return -1;
-  
-  return vsnprintf(p, bytes, format, ap);
-}
diff --git a/klibc/klibc/vfprintf.c b/klibc/klibc/vfprintf.c
deleted file mode 100644 (file)
index 39cf983..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * vfprintf.c
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdarg.h>
-#include <unistd.h>
-
-#define BUFFER_SIZE    32768
-
-int vfprintf(FILE *file, const char *format, va_list ap)
-{
-  int rv;
-  char buffer[BUFFER_SIZE];
-
-  rv = vsnprintf(buffer, BUFFER_SIZE, format, ap);
-
-  if ( rv < 0 )
-    return rv;
-
-  if ( rv > BUFFER_SIZE-1 )
-    rv = BUFFER_SIZE-1;
-
-  return _fwrite(buffer, rv, file);
-}
diff --git a/klibc/klibc/vprintf.c b/klibc/klibc/vprintf.c
deleted file mode 100644 (file)
index 7d60665..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * vprintf.c
- */
-
-#include <stdio.h>
-#include <stdarg.h>
-
-int vprintf(const char *format, va_list ap)
-{
-  return vfprintf(stdout, format, ap);
-}
diff --git a/klibc/klibc/vsnprintf.c b/klibc/klibc/vsnprintf.c
deleted file mode 100644 (file)
index 5cb9331..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * vsnprintf.c
- *
- * vsnprintf(), from which the rest of the printf()
- * family is built
- */
-
-#include <stdarg.h>
-#include <stddef.h>
-#include <inttypes.h>
-#include <string.h>
-#include <limits.h>
-#include <stdio.h>
-
-enum flags {
-  FL_ZERO   = 0x01,            /* Zero modifier */
-  FL_MINUS  = 0x02,            /* Minus modifier */
-  FL_PLUS   = 0x04,            /* Plus modifier */
-  FL_TICK   = 0x08,            /* ' modifier */
-  FL_SPACE  = 0x10,            /* Space modifier */
-  FL_HASH   = 0x20,            /* # modifier */
-  FL_SIGNED = 0x40,            /* Number is signed */
-  FL_UPPER  = 0x80             /* Upper case digits */
-};
-
-/* These may have to be adjusted on certain implementations */
-enum ranks {
-  rank_char    = -2,
-  rank_short   = -1,
-  rank_int     = 0,
-  rank_long    = 1,
-  rank_longlong        = 2
-};
-
-#define MIN_RANK       rank_char
-#define MAX_RANK       rank_longlong
-
-#define INTMAX_RANK    rank_longlong
-#define SIZE_T_RANK    rank_long
-#define PTRDIFF_T_RANK rank_long
-
-#define EMIT(x) ({ if (o<n){*q++ = (x);} o++; })
-
-static size_t
-format_int(char *q, size_t n, uintmax_t val, enum flags flags,
-          int base, int width, int prec)
-{
-  char *qq;
-  size_t o = 0, oo;
-  static const char lcdigits[] = "0123456789abcdef";
-  static const char ucdigits[] = "0123456789ABCDEF";
-  const char *digits;
-  uintmax_t tmpval;
-  int minus = 0;
-  int ndigits = 0, nchars;
-  int tickskip, b4tick;
-
-  /* Select type of digits */
-  digits = (flags & FL_UPPER) ? ucdigits : lcdigits;
-
-  /* If signed, separate out the minus */
-  if ( flags & FL_SIGNED && (intmax_t)val < 0 ) {
-    minus = 1;
-    val = (uintmax_t)(-(intmax_t)val);
-  }
-
-  /* Count the number of digits needed.  This returns zero for 0. */
-  tmpval = val;
-  while ( tmpval ) {
-    tmpval /= base;
-    ndigits++;
-  }
-
-  /* Adjust ndigits for size of output */
-
-  if ( flags & FL_HASH && base == 8 ) {
-    if ( prec < ndigits+1 )
-      prec = ndigits+1;
-  }
-
-  if ( ndigits < prec ) {
-    ndigits = prec;            /* Mandatory number padding */
-  } else if ( val == 0 ) {
-    ndigits = 1;               /* Zero still requires space */
-  }
-
-  /* For ', figure out what the skip should be */
-  if ( flags & FL_TICK ) {
-    tickskip = (base == 16) ? 4 : 3;
-  } else {
-    tickskip = ndigits;                /* No tick marks */
-  }
-
-  /* Tick marks aren't digits, but generated by the number converter */
-  ndigits += (ndigits-1)/tickskip;
-
-  /* Now compute the number of nondigits */
-  nchars = ndigits;
-
-  if ( minus || (flags & (FL_PLUS|FL_SPACE)) )
-    nchars++;                  /* Need space for sign */
-  if ( (flags & FL_HASH) && base == 16 ) {
-    nchars += 2;               /* Add 0x for hex */
-  }
-
-  /* Emit early space padding */
-  if ( !(flags & (FL_MINUS|FL_ZERO)) && width > nchars ) {
-    while ( width > nchars ) {
-      EMIT(' ');
-      width--;
-    }
-  }
-
-  /* Emit nondigits */
-  if ( minus )
-    EMIT('-');
-  else if ( flags & FL_PLUS )
-    EMIT('+');
-  else if ( flags & FL_SPACE )
-    EMIT(' ');
-
-  if ( (flags & FL_HASH) && base == 16 ) {
-    EMIT('0');
-    EMIT((flags & FL_UPPER) ? 'X' : 'x');
-  }
-
-  /* Emit zero padding */
-  if ( (flags & (FL_MINUS|FL_ZERO)) == FL_ZERO && width > ndigits ) {
-    while ( width > nchars ) {
-      EMIT('0');
-      width--;
-    }
-  }
-
-  /* Generate the number.  This is done from right to left. */
-  q += ndigits;                        /* Advance the pointer to end of number */
-  o += ndigits;
-  qq = q; oo = o;              /* Temporary values */
-
-  b4tick = tickskip;
-  while ( ndigits > 0 ) {
-    if ( !b4tick-- ) {
-      qq--; oo--; ndigits--;
-      if ( oo < n ) *qq = '_';
-      b4tick = tickskip-1;
-    }
-    qq--; oo--; ndigits--;
-    if ( oo < n ) *qq = digits[val%base];
-    val /= base;
-  }
-
-  /* Emit late space padding */
-  while ( (flags & FL_MINUS) && width > nchars ) {
-    EMIT(' ');
-    width--;
-  }
-
-  return o;
-}
-
-
-int vsnprintf(char *buffer, size_t n, const char *format, va_list ap)
-{
-  const char *p = format;
-  char ch;
-  char *q = buffer;
-  size_t o = 0;                        /* Number of characters output */
-  uintmax_t val = 0;
-  int rank = rank_int;         /* Default rank */
-  int width = 0;
-  int prec  = -1;
-  int base;
-  size_t sz;
-  enum flags flags = 0;
-  enum {
-    st_normal,                 /* Ground state */
-    st_flags,                  /* Special flags */
-    st_width,                  /* Field width */
-    st_prec,                   /* Field precision */
-    st_modifiers               /* Length or conversion modifiers */
-  } state = st_normal;
-  const char *sarg;            /* %s string argument */
-  char carg;                   /* %c char argument */
-  int slen;                    /* String length */
-
-  while ( (ch = *p++) ) {
-    switch ( state ) {
-    case st_normal:
-      if ( ch == '%' ) {
-       state = st_flags;
-       flags = 0; rank = rank_int; width = 0; prec = -1;
-      } else {
-       EMIT(ch);
-      }
-      break;
-
-    case st_flags:
-      switch ( ch ) {
-      case '-':
-       flags |= FL_MINUS;
-       break;
-      case '+':
-       flags |= FL_PLUS;
-       break;
-      case '\'':
-       flags |= FL_TICK;
-       break;
-      case ' ':
-       flags |= FL_SPACE;
-       break;
-      case '#':
-       flags |= FL_HASH;
-       break;
-      case '0':
-       flags |= FL_ZERO;
-       break;
-      default:
-       state = st_width;
-       p--;                    /* Process this character again */
-       break;
-      }
-      break;
-
-    case st_width:
-      if ( ch >= '0' && ch <= '9' ) {
-       width = width*10+(ch-'0');
-      } else if ( ch == '*' ) {
-       width = va_arg(ap, int);
-       if ( width < 0 ) {
-         width = -width;
-         flags |= FL_MINUS;
-       }
-      } else if ( ch == '.' ) {
-       prec = 0;               /* Precision given */
-       state = st_prec;
-      } else {
-       state = st_modifiers;
-       p--;                    /* Process this character again */
-      }
-      break;
-
-    case st_prec:
-      if ( ch >= '0' && ch <= '9' ) {
-       prec = prec*10+(ch-'0');
-      } else if ( ch == '*' ) {
-       prec = va_arg(ap, int);
-       if ( prec < 0 )
-         prec = -1;
-      } else {
-       state = st_modifiers;
-       p--;                    /* Process this character again */
-      }
-      break;
-
-    case st_modifiers:
-      switch ( ch ) {
-       /* Length modifiers - nonterminal sequences */
-      case 'h':
-       rank--;                 /* Shorter rank */
-       break;
-      case 'l':
-       rank++;                 /* Longer rank */
-       break;
-      case 'j':
-       rank = INTMAX_RANK;
-       break;
-      case 'z':
-       rank = SIZE_T_RANK;
-       break;
-      case 't':
-       rank = PTRDIFF_T_RANK;
-       break;
-      case 'L':
-      case 'q':
-       rank += 2;
-       break;
-      default:
-       /* Output modifiers - terminal sequences */
-       state = st_normal;      /* Next state will be normal */
-       if ( rank < MIN_RANK )  /* Canonicalize rank */
-         rank = MIN_RANK;
-       else if ( rank > MAX_RANK )
-         rank = MAX_RANK;
-
-       switch ( ch ) {
-       case 'P':               /* Upper case pointer */
-         flags |= FL_UPPER;
-         /* fall through */
-       case 'p':               /* Pointer */
-         base = 16;
-         prec = (CHAR_BIT*sizeof(void *)+3)/4;
-         flags |= FL_HASH;
-         val = (uintmax_t)(uintptr_t)va_arg(ap, void *);
-         goto is_integer;
-
-       case 'd':               /* Signed decimal output */
-       case 'i':
-         base = 10;
-         flags |= FL_SIGNED;
-         switch (rank) {
-         case rank_char:
-           /* Yes, all these casts are needed... */
-           val = (uintmax_t)(intmax_t)(signed char)va_arg(ap, signed int);
-           break;
-         case rank_short:
-           val = (uintmax_t)(intmax_t)(signed short)va_arg(ap, signed int);
-           break;
-         case rank_int:
-           val = (uintmax_t)(intmax_t)va_arg(ap, signed int);
-           break;
-         case rank_long:
-           val = (uintmax_t)(intmax_t)va_arg(ap, signed long);
-           break;
-         case rank_longlong:
-           val = (uintmax_t)(intmax_t)va_arg(ap, signed long long);
-           break;
-         }
-         goto is_integer;
-       case 'o':               /* Octal */
-         base = 8;
-         goto is_unsigned;
-       case 'u':               /* Unsigned decimal */
-         base = 10;
-         goto is_unsigned;
-       case 'X':               /* Upper case hexadecimal */
-         flags |= FL_UPPER;
-         /* fall through */
-       case 'x':               /* Hexadecimal */
-         base = 16;
-         goto is_unsigned;
-
-       is_unsigned:
-         switch (rank) {
-         case rank_char:
-           val = (uintmax_t)(unsigned char)va_arg(ap, unsigned int);
-           break;
-         case rank_short:
-           val = (uintmax_t)(unsigned short)va_arg(ap, unsigned int);
-           break;
-         case rank_int:
-           val = (uintmax_t)va_arg(ap, unsigned int);
-           break;
-         case rank_long:
-           val = (uintmax_t)va_arg(ap, unsigned long);
-           break;
-         case rank_longlong:
-           val = (uintmax_t)va_arg(ap, unsigned long long);
-           break;
-         }
-         /* fall through */
-
-       is_integer:
-         sz = format_int(q, (o<n) ? n-o : 0, val, flags, base, width, prec);
-         q += sz; o += sz;
-         break;
-
-       case 'c':               /* Character */
-         carg = (char)va_arg(ap, int);
-         sarg = &carg;
-         slen = 1;
-         goto is_string;
-       case 's':               /* String */
-         sarg = va_arg(ap, const char *);
-         sarg = sarg ? sarg : "(null)";
-         slen = strlen(sarg);
-         goto is_string;
-
-       is_string:
-         {
-           char sch;
-           int i;
-           
-           if ( prec != -1 && slen > prec )
-             slen = prec;
-           
-           if ( width > slen && !(flags & FL_MINUS) ) {
-             char pad = (flags & FL_ZERO) ? '0' : ' ';
-             while ( width > slen ) {
-               EMIT(pad);
-               width--;
-             }
-           }
-           for ( i = slen ; i ; i-- ) {
-             sch = *sarg++;
-             EMIT(sch);
-           }
-           if ( width > slen && (flags & FL_MINUS) ) {
-             while ( width > slen ) {
-               EMIT(' ');
-               width--;
-             }
-           }
-         }
-         break;
-
-       case 'n':               /* Output the number of characters written */
-         {
-           switch (rank) {
-           case rank_char:
-             *va_arg(ap, signed char *) = o;
-             break;
-           case rank_short:
-             *va_arg(ap, signed short *) = o;
-             break;
-           case rank_int:
-             *va_arg(ap, signed int *) = o;
-             break;
-           case rank_long:
-             *va_arg(ap, signed long *) = o;
-             break;
-           case rank_longlong:
-             *va_arg(ap, signed long long *) = o;
-             break;
-           }
-         }
-         break;
-         
-       default:                /* Anything else, including % */
-         EMIT(ch);
-         break;
-       }
-      }
-    }
-  }
-
-  /* Null-terminate the string */
-  if ( o<n )
-    *q = '\0';                 /* No overflow */
-  else if ( n>0 )
-    buffer[n-1] = '\0';                /* Overflow - terminate at end of buffer */
-
-  return o;
-}
diff --git a/klibc/klibc/vsprintf.c b/klibc/klibc/vsprintf.c
deleted file mode 100644 (file)
index 4a6100e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * vsprintf.c
- */
-
-#include <stdio.h>
-#include <unistd.h>
-
-int vsprintf(char *buffer, const char *format, va_list ap)
-{
-  return vsnprintf(buffer, ~(size_t)0, format, ap);
-}
diff --git a/klibc/klibc/vsscanf.c b/klibc/klibc/vsscanf.c
deleted file mode 100644 (file)
index 12a82b2..0000000
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- * vsscanf.c
- *
- * vsscanf(), from which the rest of the scanf()
- * family is built
- */
-
-#include <ctype.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <inttypes.h>
-#include <string.h>
-#include <limits.h>
-#include <stdio.h>
-
-#ifndef LONG_BIT
-#define LONG_BIT (CHAR_BIT*sizeof(long))
-#endif
-
-enum flags {
-  FL_SPLAT  = 0x01,            /* Drop the value, do not assign */
-  FL_INV    = 0x02,            /* Character-set with inverse */
-  FL_WIDTH  = 0x04,            /* Field width specified */
-  FL_MINUS  = 0x08,            /* Negative number */
-};
-
-enum ranks {
-  rank_char    = -2,
-  rank_short   = -1,
-  rank_int     = 0,
-  rank_long    = 1,
-  rank_longlong        = 2,
-  rank_ptr      = INT_MAX      /* Special value used for pointers */
-};
-
-#define MIN_RANK       rank_char
-#define MAX_RANK       rank_longlong
-
-#define INTMAX_RANK    rank_longlong
-#define SIZE_T_RANK    rank_long
-#define PTRDIFF_T_RANK rank_long
-
-enum bail {
-  bail_none = 0,               /* No error condition */
-  bail_eof,                    /* Hit EOF */
-  bail_err                     /* Conversion mismatch */
-};
-
-static inline const char *
-skipspace(const char *p)
-{
-  while ( isspace((unsigned char)*p) ) p++;
-  return p;
-}
-
-#undef set_bit
-static inline void
-set_bit(unsigned long *bitmap, unsigned int bit)
-{
-  bitmap[bit/LONG_BIT] |= 1UL << (bit%LONG_BIT);
-}
-
-#undef test_bit
-static inline int
-test_bit(unsigned long *bitmap, unsigned int bit)
-{
-  return (int)(bitmap[bit/LONG_BIT] >> (bit%LONG_BIT)) & 1;
-}
-
-int vsscanf(const char *buffer, const char *format, va_list ap)
-{
-  const char *p = format;
-  char ch;
-  const char *q = buffer;
-  const char *qq;
-  uintmax_t val = 0;
-  int rank = rank_int;         /* Default rank */
-  unsigned int width = UINT_MAX;
-  int base;
-  enum flags flags = 0;
-  enum {
-    st_normal,                 /* Ground state */
-    st_flags,                  /* Special flags */
-    st_width,                  /* Field width */
-    st_modifiers,              /* Length or conversion modifiers */
-    st_match_init,             /* Initial state of %[ sequence */
-    st_match,                  /* Main state of %[ sequence */
-    st_match_range,            /* After - in a %[ sequence */
-  } state = st_normal;
-  char *sarg = NULL;           /* %s %c or %[ string argument */
-  enum bail bail = bail_none;
-  int sign;
-  int converted = 0;           /* Successful conversions */
-  unsigned long matchmap[((1 << CHAR_BIT)+(LONG_BIT-1))/LONG_BIT];
-  int matchinv = 0;            /* Is match map inverted? */
-  unsigned char range_start = 0;
-
-  while ( (ch = *p++) && !bail ) {
-    switch ( state ) {
-    case st_normal:
-      if ( ch == '%' ) {
-       state = st_flags;
-       flags = 0; rank = rank_int; width = UINT_MAX;
-      } else if ( isspace((unsigned char)ch) ) {
-       q = skipspace(q);
-      } else {
-       if ( *q == ch )
-         q++;
-       else
-         bail = bail_err;      /* Match failure */
-      }
-      break;
-
-    case st_flags:
-      switch ( ch ) {
-      case '*':
-       flags |= FL_SPLAT;
-       break;
-      case '0' ... '9':
-       width = (ch-'0');
-       state = st_width;
-       flags |= FL_WIDTH;
-       break;
-      default:
-       state = st_modifiers;
-       p--;                    /* Process this character again */
-       break;
-      }
-      break;
-
-    case st_width:
-      if ( ch >= '0' && ch <= '9' ) {
-       width = width*10+(ch-'0');
-      } else {
-       state = st_modifiers;
-       p--;                    /* Process this character again */
-      }
-      break;
-
-    case st_modifiers:
-      switch ( ch ) {
-       /* Length modifiers - nonterminal sequences */
-      case 'h':
-       rank--;                 /* Shorter rank */
-       break;
-      case 'l':
-       rank++;                 /* Longer rank */
-       break;
-      case 'j':
-       rank = INTMAX_RANK;
-       break;
-      case 'z':
-       rank = SIZE_T_RANK;
-       break;
-      case 't':
-       rank = PTRDIFF_T_RANK;
-       break;
-      case 'L':
-      case 'q':
-       rank = rank_longlong;   /* long double/long long */
-       break;
-
-      default:
-       /* Output modifiers - terminal sequences */
-       state = st_normal;      /* Next state will be normal */
-       if ( rank < MIN_RANK )  /* Canonicalize rank */
-         rank = MIN_RANK;
-       else if ( rank > MAX_RANK )
-         rank = MAX_RANK;
-
-       switch ( ch ) {
-       case 'P':               /* Upper case pointer */
-       case 'p':               /* Pointer */
-#if 0  /* Enable this to allow null pointers by name */
-         q = skipspace(q);
-         if ( !isdigit((unsigned char)*q) ) {
-           static const char * const nullnames[] =
-           { "null", "nul", "nil", "(null)", "(nul)", "(nil)", 0 };
-           const char * const *np;
-
-           /* Check to see if it's a null pointer by name */
-           for ( np = nullnames ; *np ; np++ ) {
-             if ( !strncasecmp(q, *np, strlen(*np)) ) {
-               val = (uintmax_t)((void *)NULL);
-               goto set_integer;
-             }
-           }
-           /* Failure */
-           bail = bail_err;
-           break;
-         }
-         /* else */
-#endif
-         rank = rank_ptr;
-         base = 0; sign = 0;
-         goto scan_int;
-
-       case 'i':               /* Base-independent integer */
-         base = 0; sign = 1;
-         goto scan_int;
-
-       case 'd':               /* Decimal integer */
-         base = 10; sign = 1;
-         goto scan_int;
-
-       case 'o':               /* Octal integer */
-         base = 8; sign = 0;
-         goto scan_int;
-
-       case 'u':               /* Unsigned decimal integer */
-         base = 10; sign = 0;
-         goto scan_int;
-         
-       case 'x':               /* Hexadecimal integer */
-       case 'X':
-         base = 16; sign = 0;
-         goto scan_int;
-
-       case 'n':               /* Number of characters consumed */
-         val = (q-buffer);
-         goto set_integer;
-
-       scan_int:
-         q = skipspace(q);
-         if ( !*q ) {
-           bail = bail_eof;
-           break;
-         }
-         val = strntoumax(q, (char **)&qq, base, width);
-         if ( qq == q ) {
-           bail = bail_err;
-           break;
-         }
-         q = qq;
-         converted++;
-         /* fall through */
-
-       set_integer:
-         if ( !(flags & FL_SPLAT) ) {
-           switch(rank) {
-           case rank_char:
-             *va_arg(ap, unsigned char *) = (unsigned char)val;
-             break;
-           case rank_short:
-             *va_arg(ap, unsigned short *) = (unsigned short)val;
-             break;
-           case rank_int:
-             *va_arg(ap, unsigned int *) = (unsigned int)val;
-             break;
-           case rank_long:
-             *va_arg(ap, unsigned long *) = (unsigned long)val;
-             break;
-           case rank_longlong:
-             *va_arg(ap, unsigned long long *) = (unsigned long long)val;
-             break;
-           case rank_ptr:
-             *va_arg(ap, void **) = (void *)(uintptr_t)val;
-             break;
-           }
-         }
-         break;
-         
-       case 'c':               /* Character */
-          width = (flags & FL_WIDTH) ? width : 1; /* Default width == 1 */
-          sarg = va_arg(ap, char *);
-          while ( width-- ) {
-            if ( !*q ) {
-              bail = bail_eof;
-              break;
-            }
-            *sarg++ = *q++;
-          }
-          if ( !bail )
-            converted++;
-          break;
-
-        case 's':               /* String */
-         {
-           char *sp;
-           sp = sarg = va_arg(ap, char *);
-           while ( width-- && *q && !isspace((unsigned char)*q) ) {
-             *sp++ = *q++;
-           }
-           if ( sarg != sp ) {
-             *sp = '\0';       /* Terminate output */
-             converted++;
-           } else {
-             bail = bail_eof;
-           }
-         }
-         break;
-         
-       case '[':               /* Character range */
-         sarg = va_arg(ap, char *);
-         state = st_match_init;
-         matchinv = 0;
-         memset(matchmap, 0, sizeof matchmap);
-         break;
-
-       case '%':               /* %% sequence */
-         if ( *q == '%' )
-           q++;
-         else
-           bail = bail_err;
-         break;
-
-       default:                /* Anything else */
-         bail = bail_err;      /* Unknown sequence */
-         break;
-       }
-      }
-      break;
-    
-    case st_match_init:                /* Initial state for %[ match */
-      if ( ch == '^' && !(flags & FL_INV) ) {
-       matchinv = 1;
-      } else {
-       set_bit(matchmap, (unsigned char)ch);
-       state = st_match;
-      }
-      break;
-      
-    case st_match:             /* Main state for %[ match */
-      if ( ch == ']' ) {
-       goto match_run;
-      } else if ( ch == '-' ) {
-       range_start = (unsigned char)ch;
-       state = st_match_range;
-      } else {
-       set_bit(matchmap, (unsigned char)ch);
-      }
-      break;
-      
-    case st_match_range:               /* %[ match after - */
-      if ( ch == ']' ) {
-       set_bit(matchmap, (unsigned char)'-'); /* - was last character */
-       goto match_run;
-      } else {
-       int i;
-       for ( i = range_start ; i < (unsigned char)ch ; i++ )
-         set_bit(matchmap, i);
-       state = st_match;
-      }
-      break;
-
-    match_run:                 /* Match expression finished */
-      qq = q;
-      while ( width && *q && test_bit(matchmap, (unsigned char)*q)^matchinv ) {
-       *sarg++ = *q++;
-      }
-      if ( q != qq ) {
-       *sarg = '\0';
-       converted++;
-      } else {
-       bail = *q ? bail_err : bail_eof;
-      }
-      break;
-    }
-  }
-
-  if ( bail == bail_eof && !converted )
-    converted = -1;            /* Return EOF (-1) */
-
-  return converted;
-}
diff --git a/klibc/klibc/wait.c b/klibc/klibc/wait.c
deleted file mode 100644 (file)
index 5e0bbe2..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * wait.c
- */
-
-#include <stdlib.h>
-#include <sys/wait.h>
-#include <sys/types.h>
-
-pid_t wait(int *status)
-{
-  return wait4((pid_t)-1, status, 0, NULL);
-}
diff --git a/klibc/klibc/wait3.c b/klibc/klibc/wait3.c
deleted file mode 100644 (file)
index 48840ad..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * wait3.c
- */
-
-#include <sys/types.h>
-#include <sys/resource.h>
-#include <sys/wait.h>
-
-pid_t wait3(int *status, int options, struct rusage *rusage)
-{
-  return wait4((pid_t)-1, status, options, rusage);
-}
diff --git a/klibc/klibc/waitpid.c b/klibc/klibc/waitpid.c
deleted file mode 100644 (file)
index f7c5cbf..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * waitpid.c
- */
-
-#include <sys/types.h>
-#include <sys/resource.h>
-#include <sys/wait.h>
-
-pid_t waitpid(pid_t pid, int *status, int options)
-{
-  return wait4(pid, status, options, NULL);
-}
diff --git a/klibc/klibc/zlib/FAQ b/klibc/klibc/zlib/FAQ
deleted file mode 100644 (file)
index 7115ec3..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-
-                Frequently Asked Questions about zlib
-
-
-If your question is not there, please check the zlib home page
-http://www.zlib.org which may have more recent information.
-The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
-
-
- 1. Is zlib Y2K-compliant?
-
-    Yes. zlib doesn't handle dates.
-
- 2. Where can I get a Windows DLL version?
-
-    The zlib sources can be compiled without change to produce a DLL.
-    See the file win32/DLL_FAQ.txt in the zlib distribution.
-    Pointers to the precompiled DLL are found in the zlib web site at
-    http://www.zlib.org.
-
- 3. Where can I get a Visual Basic interface to zlib?
-
-    See
-        * http://www.winimage.com/zLibDll/
-        * http://www.dogma.net/markn/articles/zlibtool/zlibtool.htm
-        * contrib/visual-basic.txt in the zlib distribution
-
- 4. compress() returns Z_BUF_ERROR
-
-    Make sure that before the call of compress, the length of the compressed
-    buffer is equal to the total size of the compressed buffer and not
-    zero. For Visual Basic, check that this parameter is passed by reference
-    ("as any"), not by value ("as long").
-
- 5. deflate() or inflate() returns Z_BUF_ERROR
-
-    Before making the call, make sure that avail_in and avail_out are not
-    zero. When setting the parameter flush equal to Z_FINISH, also make sure
-    that avail_out is big enough to allow processing all pending input.
-    Note that a Z_BUF_ERROR is not fatal--another call to deflate() or
-    inflate() can be made with more input or output space. A Z_BUF_ERROR
-    may in fact be unavoidable depending on how the functions are used, since
-    it is not possible to tell whether or not there is more output pending
-    when strm.avail_out returns with zero.
-
- 6. Where's the zlib documentation (man pages, etc.)?
-
-    It's in zlib.h for the moment, and Francis S. Lin has converted it to a
-    web page zlib.html. Volunteers to transform this to Unix-style man pages,
-    please contact Jean-loup Gailly (jloup@gzip.org). Examples of zlib usage
-    are in the files example.c and minigzip.c.
-
- 7. Why don't you use GNU autoconf or libtool or ...?
-
-    Because we would like to keep zlib as a very small and simple
-    package. zlib is rather portable and doesn't need much configuration.
-
- 8. I found a bug in zlib.
-
-    Most of the time, such problems are due to an incorrect usage of
-    zlib. Please try to reproduce the problem with a small program and send
-    the corresponding source to us at zlib@gzip.org . Do not send
-    multi-megabyte data files without prior agreement.
-
- 9. Why do I get "undefined reference to gzputc"?
-
-    If "make test" produces something like
-
-       example.o(.text+0x154): undefined reference to `gzputc'
-
-    check that you don't have old files libz.* in /usr/lib, /usr/local/lib or
-    /usr/X11R6/lib. Remove any old versions, then do "make install".
-
-10. I need a Delphi interface to zlib.
-
-    See the contrib/delphi directory in the zlib distribution.
-
-11. Can zlib handle .zip archives?
-
-    See the directory contrib/minizip in the zlib distribution.
-
-12. Can zlib handle .Z files?
-
-    No, sorry. You have to spawn an uncompress or gunzip subprocess, or adapt
-    the code of uncompress on your own.
-
-13. How can I make a Unix shared library?
-
-    make clean
-    ./configure -s
-    make
-
-14. How do I install a shared zlib library on Unix?
-
-    make install
-
-    However, many flavors of Unix come with a shared zlib already installed.
-    Before going to the trouble of compiling a shared version of zlib and
-    trying to install it, you may want to check if it's already there! If you
-    can #include <zlib.h>, it's there. The -lz option will probably link to it.
-
-15. I have a question about OttoPDF
-
-    We are not the authors of OttoPDF. The real author is on the OttoPDF web
-    site Joel Hainley jhainley@myndkryme.com.
-
-16. Why does gzip give an error on a file I make with compress/deflate?
-
-    The compress and deflate functions produce data in the zlib format, which
-    is different and incompatible with the gzip format. The gz* functions in
-    zlib on the other hand use the gzip format. Both the zlib and gzip
-    formats use the same compressed data format internally, but have different
-    headers and trailers around the compressed data.
-
-17. Ok, so why are there two different formats?
-
-    The gzip format was designed to retain the directory information about
-    a single file, such as the name and last modification date. The zlib
-    format on the other hand was designed for in-memory and communication
-    channel applications, and has a much more compact header and trailer and
-    uses a faster integrity check than gzip.
-
-18. Well that's nice, but how do I make a gzip file in memory?
-
-    You can request that deflate write the gzip format instead of the zlib
-    format using deflateInit2(). You can also request that inflate decode
-    the gzip format using inflateInit2(). Read zlib.h for more details.
-
-    Note that you cannot specify special gzip header contents (e.g. a file
-    name or modification date), nor will inflate tell you what was in the
-    gzip header. If you need to customize the header or see what's in it,
-    you can use the raw deflate and inflate operations and the crc32()
-    function and roll your own gzip encoding and decoding. Read the gzip
-    RFC 1952 for details of the header and trailer format.
-
-19. Is zlib thread-safe?
-
-    Yes. However any library routines that zlib uses and any application-
-    provided memory allocation routines must also be thread-safe. zlib's gz*
-    functions use stdio library routines, and most of zlib's functions use the
-    library memory allocation routines by default. zlib's Init functions allow
-    for the application to provide custom memory allocation routines.
-
-    Of course, you should only operate on any given zlib or gzip stream from a
-    single thread at a time.
-
-20. Can I use zlib in my commercial application?
-
-    Yes. Please read the license in zlib.h.
-
-21. Is zlib under the GNU license?
-
-    No. Please read the license in zlib.h.
-
-22. The license says that altered source versions must be "plainly marked". So
-    what exactly do I need to do to meet that requirement?
-
-    You need to change the ZLIB_VERSION and ZLIB_VERNUM #defines in zlib.h. In
-    particular, the final version number needs to be changed to "f", and an
-    identification string should be appended to ZLIB_VERSION. Version numbers
-    x.x.x.f are reserved for modifications to zlib by others than the zlib
-    maintainers. For example, if the version of the base zlib you are altering
-    is "1.2.3.4", then in zlib.h you should change ZLIB_VERNUM to 0x123f, and
-    ZLIB_VERSION to something like "1.2.3.f-zachary-mods-v3". You can also
-    update the version strings in deflate.c and inftrees.c.
-
-    For altered source distributions, you should also note the origin and
-    nature of the changes in zlib.h, as well as in ChangeLog and README, along
-    with the dates of the alterations. The origin should include at least your
-    name (or your company's name), and an email address to contact for help or
-    issues with the library.
-
-    Note that distributing a compiled zlib library along with zlib.h and
-    zconf.h is also a source distribution, and so you should change
-    ZLIB_VERSION and ZLIB_VERNUM and note the origin and nature of the changes
-    in zlib.h as you would for a full source distribution.
-
-23. Will zlib work on a big-endian or little-endian architecture, and can I
-    exchange compressed data between them?
-
-    Yes and yes.
-
-24. Will zlib work on a 64-bit machine?
-
-    It should. It has been tested on 64-bit machines, and has no dependence
-    on any data types being limited to 32-bits in length. If you have any
-    difficulties, please provide a complete problem report to zlib@gzip.org
-
-25. Will zlib decompress data from the PKWare Data Compression Library?
-
-    No. The PKWare DCL uses a completely different compressed data format
-    than does PKZIP and zlib. However, you can look in zlib's contrib/blast
-    directory for a possible solution to your problem.
-
-26. Can I access data randomly in a compressed stream?
-
-    No, not without some preparation. If when compressing you periodically
-    use Z_FULL_FLUSH, carefully write all the pending data at those points,
-    and keep an index of those locations, then you can start decompression
-    at those points. You have to be careful to not use Z_FULL_FLUSH too
-    often, since it can significantly degrade compression.
-
-27. Does zlib work on MVS, OS/390, CICS, etc.?
-
-    We don't know for sure. We have heard occasional reports of success on
-    these systems. If you do use it on one of these, please provide us with
-    a report, instructions, and patches that we can reference when we get
-    these questions. Thanks.
-
-28. Is there some simpler, easier to read version of inflate I can look at
-    to understand the deflate format?
-
-    First off, you should read RFC 1951. Second, yes. Look in zlib's
-    contrib/puff directory.
-
-29. Does zlib infringe on any patents?
-
-    As far as we know, no. In fact, that was originally the whole point behind
-    zlib. Look here for some more information:
-
-    http://www.gzip.org/#faq11
-
-30. Can zlib work with greater than 4 GB of data?
-
-    Yes. inflate() and deflate() will process any amount of data correctly.
-    Each call of inflate() or deflate() is limited to input and output chunks
-    of the maximum value that can be stored in the compiler's "unsigned int"
-    type, but there is no limit to the number of chunks. Note however that the
-    strm.total_in and strm_total_out counters may be limited to 4 GB. These
-    counters are provided as a convenience and are not used internally by
-    inflate() or deflate(). The application can easily set up its own counters
-    updated after each call of inflate() or deflate() to count beyond 4 GB.
-    compress() and uncompress() may be limited to 4 GB, since they operate in a
-    single call. gzseek() and gztell() may be limited to 4 GB depending on how
-    zlib is compiled. See the zlibCompileFlags() function in zlib.h.
-
-    The word "may" appears several times above since there is a 4 GB limit
-    only if the compiler's "long" type is 32 bits. If the compiler's "long"
-    type is 64 bits, then the limit is 16 exabytes.
-
-31. Does zlib have any security vulnerabilities?
-
-    The only one that we are aware of is potentially in gzprintf(). If zlib
-    is compiled to use sprintf() or vsprintf(), then there is no protection
-    against a buffer overflow of a 4K string space, other than the caller of
-    gzprintf() assuring that the output will not exceed 4K. On the other
-    hand, if zlib is compiled to use snprintf() or vsnprintf(), which should
-    normally be the case, then there is no vulnerability. The ./configure
-    script will display warnings if an insecure variation of sprintf() will
-    be used by gzprintf(). Also the zlibCompileFlags() function will return
-    information on what variant of sprintf() is used by gzprintf().
-
-    If you don't have snprintf() or vsnprintf() and would like one, you can
-    find a portable implementation here:
-
-        http://www.ijs.si/software/snprintf/
-
-    Note that you should be using the most recent version of zlib. Versions
-    1.1.3 and before were subject to a double-free vulnerability.
-
-32. Is there a Java version of zlib?
-
-    Probably what you want is to use zlib in Java. zlib is already included
-    as part of the Java SDK in the java.util.zip package. If you really want
-    a version of zlib written in the Java language, look on the zlib home
-    page for links: http://www.zlib.org/
-
-33. I get this or that compiler or source-code scanner warning when I crank it
-    up to maximally-pendantic. Can't you guys write proper code?
-
-    Many years ago, we gave up attempting to avoid warnings on every compiler
-    in the universe. It just got to be a waste of time, and some compilers
-    were downright silly. So now, we simply make sure that the code always
-    works.
-
-34. Will zlib read the (insert any ancient or arcane format here) compressed
-    data format?
-
-    Probably not. Look in the comp.compression FAQ for pointers to various
-    formats and associated software.
-
-35. How can I encrypt/decrypt zip files with zlib?
-
-    zlib doesn't support encryption. The original PKZIP encryption is very weak
-    and can be broken with freely available programs. To get strong encryption,
-    use gpg ( http://www.gnupg.org/ ) which already includes zlib compression.
-    For PKZIP compatible "encryption", look at http://www.info-zip.org/
-
-36. What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
-
-    "gzip" is the gzip format, and "deflate" is the zlib format. They should
-    probably have called the second one "zlib" instead to avoid confusion
-    with the raw deflate compressed data format. While the HTTP 1.1 RFC 2616
-    correctly points to the zlib specification in RFC 1950 for the "deflate"
-    transfer encoding, there have been reports of servers and browsers that
-    incorrectly produce or expect raw deflate data per the deflate
-    specficiation in RFC 1951, most notably Microsoft. So even though the
-    "deflate" transfer encoding using the zlib format would be the more
-    efficient approach (and in fact exactly what the zlib format was designed
-    for), using the "gzip" transfer encoding is probably more reliable due to
-    an unfortunate choice of name on the part of the HTTP 1.1 authors.
-
-    Bottom line: use the gzip format for HTTP 1.1 encoding.
-
-37. Does zlib support the new "Deflate64" format introduced by PKWare?
-
-    No. PKWare has apparently decided to keep that format proprietary, since
-    they have not documented it as they have previous compression formats.
-    In any case, the compression improvements are so modest compared to other
-    more modern approaches, that it's not worth the effort to implement.
-
-38. Can you please sign these lengthy legal documents and fax them back to us
-    so that we can use your software in our product?
-
-    No. Go away. Shoo.
diff --git a/klibc/klibc/zlib/INDEX b/klibc/klibc/zlib/INDEX
deleted file mode 100644 (file)
index a9de784..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-ChangeLog       history of changes
-FAQ             Frequently Asked Questions about zlib
-INDEX           this file
-Makefile        makefile for Unix (generated by configure)
-Makefile.in     makefile for Unix (template for configure)
-README          guess what
-algorithm.txt   description of the (de)compression algorithm
-configure       configure script for Unix
-zconf.in.h      template for zconf.h (used by configure)
-
-msdos/          makefiles for MSDOS
-old/            makefiles for various architectures and zlib documentation
-                files that have not yet been updated for zlib 1.2.x
-qnx/            makefiles for QNX
-win32/          makefiles for Windows
-
-                zlib public header files (must be kept):
-zconf.h
-zlib.h
-
-                private source files used to build the zlib library:
-adler32.c
-compress.c
-crc32.c
-crc32.h
-deflate.c
-deflate.h
-gzio.c
-infback.c
-inffast.c
-inffast.h
-inffixed.h
-inflate.c
-inflate.h
-inftrees.c
-inftrees.h
-trees.c
-trees.h
-uncompr.c
-zutil.c
-zutil.h
-
-                source files for sample programs:
-example.c
-minigzip.c
-
-                unsupported contribution by third parties
-See contrib/README.contrib
diff --git a/klibc/klibc/zlib/README b/klibc/klibc/zlib/README
deleted file mode 100644 (file)
index 0f12054..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-ZLIB DATA COMPRESSION LIBRARY
-
-zlib 1.2.1 is a general purpose data compression library.  All the code is
-thread safe.  The data format used by the zlib library is described by RFCs
-(Request for Comments) 1950 to 1952 in the files
-http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format)
-and rfc1952.txt (gzip format). These documents are also available in other
-formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html
-
-All functions of the compression library are documented in the file zlib.h
-(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example
-of the library is given in the file example.c which also tests that the library
-is working correctly. Another example is given in the file minigzip.c. The
-compression library itself is composed of all source files except example.c and
-minigzip.c.
-
-To compile all files and run the test program, follow the instructions given at
-the top of Makefile. In short "make test; make install" should work for most
-machines. For Unix: "./configure; make test; make install" For MSDOS, use one
-of the special makefiles such as Makefile.msc. For VMS, use Make_vms.com or
-descrip.mms.
-
-Questions about zlib should be sent to <zlib@gzip.org>, or to Gilles Vollant
-<info@winimage.com> for the Windows DLL version. The zlib home page is
-http://www.zlib.org or http://www.gzip.org/zlib/ Before reporting a problem,
-please check this site to verify that you have the latest version of zlib;
-otherwise get the latest version and check whether the problem still exists or
-not.
-
-PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html before asking
-for help.
-
-Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
-issue of  Dr. Dobb's Journal; a copy of the article is available in
-http://dogma.net/markn/articles/zlibtool/zlibtool.htm
-
-The changes made in version 1.2.1 are documented in the file ChangeLog.
-
-Unsupported third party contributions are provided in directory "contrib".
-
-A Java implementation of zlib is available in the Java Development Kit
-http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/package-summary.html
-See the zlib home page http://www.zlib.org for details.
-
-A Perl interface to zlib written by Paul Marquess <pmqs@cpan.org> is in the
-CPAN (Comprehensive Perl Archive Network) sites
-http://www.cpan.org/modules/by-module/Compress/
-
-A Python interface to zlib written by A.M. Kuchling <amk@magnet.com> is
-available in Python 1.5 and later versions, see
-http://www.python.org/doc/lib/module-zlib.html
-
-A zlib binding for TCL written by Andreas Kupries <a.kupries@westend.com> is
-availlable at http://www.oche.de/~akupries/soft/trf/trf_zip.html
-
-An experimental package to read and write files in .zip format, written on top
-of zlib by Gilles Vollant <info@winimage.com>, is available in the
-contrib/minizip directory of zlib.
-
-
-Notes for some targets:
-
-- For Windows DLL versions, please see win32/DLL_FAQ.txt
-
-- For 64-bit Irix, deflate.c must be compiled without any optimization. With
-  -O, one libpng test fails. The test works in 32 bit mode (with the -n32
-  compiler flag). The compiler bug has been reported to SGI.
-
-- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works
-  when compiled with cc.
-
-- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is
-  necessary to get gzprintf working correctly. This is done by configure.
-
-- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
-  other compilers. Use "make test" to check your compiler.
-
-- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers.
-
-- For PalmOs, see http://palmzlib.sourceforge.net/
-
-- When building a shared, i.e. dynamic library on Mac OS X, the library must be
-  installed before testing (do "make install" before "make test"), since the
-  library location is specified in the library.
-
-
-Acknowledgments:
-
-  The deflate format used by zlib was defined by Phil Katz. The deflate
-  and zlib specifications were written by L. Peter Deutsch. Thanks to all the
-  people who reported problems and suggested various improvements in zlib;
-  they are too numerous to cite here.
-
-Copyright notice:
-
- (C) 1995-2003 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-If you use the zlib library in a product, we would appreciate *not*
-receiving lengthy legal documents to sign. The sources are provided
-for free but without warranty of any kind.  The library has been
-entirely written by Jean-loup Gailly and Mark Adler; it does not
-include third-party code.
-
-If you redistribute modified sources, we would appreciate that you include
-in the file ChangeLog history information documenting your changes. Please
-read the FAQ for more information on the distribution of modified source
-versions.
diff --git a/klibc/klibc/zlib/adler32.c b/klibc/klibc/zlib/adler32.c
deleted file mode 100644 (file)
index 48c08f0..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: adler32.c,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#define ZLIB_INTERNAL
-#include "zlib.h"
-
-#define BASE 65521UL    /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf,i)  {s1 += buf[i]; s2 += s1;}
-#define DO2(buf,i)  DO1(buf,i); DO1(buf,i+1);
-#define DO4(buf,i)  DO2(buf,i); DO2(buf,i+2);
-#define DO8(buf,i)  DO4(buf,i); DO4(buf,i+4);
-#define DO16(buf)   DO8(buf,0); DO8(buf,8);
-
-#ifdef NO_DIVIDE
-#  define MOD(a) \
-    do { \
-        if (a >= (BASE << 16)) a -= (BASE << 16); \
-        if (a >= (BASE << 15)) a -= (BASE << 15); \
-        if (a >= (BASE << 14)) a -= (BASE << 14); \
-        if (a >= (BASE << 13)) a -= (BASE << 13); \
-        if (a >= (BASE << 12)) a -= (BASE << 12); \
-        if (a >= (BASE << 11)) a -= (BASE << 11); \
-        if (a >= (BASE << 10)) a -= (BASE << 10); \
-        if (a >= (BASE << 9)) a -= (BASE << 9); \
-        if (a >= (BASE << 8)) a -= (BASE << 8); \
-        if (a >= (BASE << 7)) a -= (BASE << 7); \
-        if (a >= (BASE << 6)) a -= (BASE << 6); \
-        if (a >= (BASE << 5)) a -= (BASE << 5); \
-        if (a >= (BASE << 4)) a -= (BASE << 4); \
-        if (a >= (BASE << 3)) a -= (BASE << 3); \
-        if (a >= (BASE << 2)) a -= (BASE << 2); \
-        if (a >= (BASE << 1)) a -= (BASE << 1); \
-        if (a >= BASE) a -= BASE; \
-    } while (0)
-#else
-#  define MOD(a) a %= BASE
-#endif
-
-/* ========================================================================= */
-uLong ZEXPORT adler32(adler, buf, len)
-    uLong adler;
-    const Bytef *buf;
-    uInt len;
-{
-    unsigned long s1 = adler & 0xffff;
-    unsigned long s2 = (adler >> 16) & 0xffff;
-    int k;
-
-    if (buf == Z_NULL) return 1L;
-
-    while (len > 0) {
-        k = len < NMAX ? (int)len : NMAX;
-        len -= k;
-        while (k >= 16) {
-            DO16(buf);
-            buf += 16;
-            k -= 16;
-        }
-        if (k != 0) do {
-            s1 += *buf++;
-            s2 += s1;
-        } while (--k);
-        MOD(s1);
-        MOD(s2);
-    }
-    return (s2 << 16) | s1;
-}
diff --git a/klibc/klibc/zlib/algorithm.txt b/klibc/klibc/zlib/algorithm.txt
deleted file mode 100644 (file)
index b022dde..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-1. Compression algorithm (deflate)
-
-The deflation algorithm used by gzip (also zip and zlib) is a variation of
-LZ77 (Lempel-Ziv 1977, see reference below). It finds duplicated strings in
-the input data.  The second occurrence of a string is replaced by a
-pointer to the previous string, in the form of a pair (distance,
-length).  Distances are limited to 32K bytes, and lengths are limited
-to 258 bytes. When a string does not occur anywhere in the previous
-32K bytes, it is emitted as a sequence of literal bytes.  (In this
-description, `string' must be taken as an arbitrary sequence of bytes,
-and is not restricted to printable characters.)
-
-Literals or match lengths are compressed with one Huffman tree, and
-match distances are compressed with another tree. The trees are stored
-in a compact form at the start of each block. The blocks can have any
-size (except that the compressed data for one block must fit in
-available memory). A block is terminated when deflate() determines that
-it would be useful to start another block with fresh trees. (This is
-somewhat similar to the behavior of LZW-based _compress_.)
-
-Duplicated strings are found using a hash table. All input strings of
-length 3 are inserted in the hash table. A hash index is computed for
-the next 3 bytes. If the hash chain for this index is not empty, all
-strings in the chain are compared with the current input string, and
-the longest match is selected.
-
-The hash chains are searched starting with the most recent strings, to
-favor small distances and thus take advantage of the Huffman encoding.
-The hash chains are singly linked. There are no deletions from the
-hash chains, the algorithm simply discards matches that are too old.
-
-To avoid a worst-case situation, very long hash chains are arbitrarily
-truncated at a certain length, determined by a runtime option (level
-parameter of deflateInit). So deflate() does not always find the longest
-possible match but generally finds a match which is long enough.
-
-deflate() also defers the selection of matches with a lazy evaluation
-mechanism. After a match of length N has been found, deflate() searches for
-a longer match at the next input byte. If a longer match is found, the
-previous match is truncated to a length of one (thus producing a single
-literal byte) and the process of lazy evaluation begins again. Otherwise,
-the original match is kept, and the next match search is attempted only N
-steps later.
-
-The lazy match evaluation is also subject to a runtime parameter. If
-the current match is long enough, deflate() reduces the search for a longer
-match, thus speeding up the whole process. If compression ratio is more
-important than speed, deflate() attempts a complete second search even if
-the first match is already long enough.
-
-The lazy match evaluation is not performed for the fastest compression
-modes (level parameter 1 to 3). For these fast modes, new strings
-are inserted in the hash table only when no match was found, or
-when the match is not too long. This degrades the compression ratio
-but saves time since there are both fewer insertions and fewer searches.
-
-
-2. Decompression algorithm (inflate)
-
-2.1 Introduction
-
-The key question is how to represent a Huffman code (or any prefix code) so
-that you can decode fast.  The most important characteristic is that shorter
-codes are much more common than longer codes, so pay attention to decoding the
-short codes fast, and let the long codes take longer to decode.
-
-inflate() sets up a first level table that covers some number of bits of
-input less than the length of longest code.  It gets that many bits from the
-stream, and looks it up in the table.  The table will tell if the next
-code is that many bits or less and how many, and if it is, it will tell
-the value, else it will point to the next level table for which inflate()
-grabs more bits and tries to decode a longer code.
-
-How many bits to make the first lookup is a tradeoff between the time it
-takes to decode and the time it takes to build the table.  If building the
-table took no time (and if you had infinite memory), then there would only
-be a first level table to cover all the way to the longest code.  However,
-building the table ends up taking a lot longer for more bits since short
-codes are replicated many times in such a table.  What inflate() does is
-simply to make the number of bits in the first table a variable, and  then
-to set that variable for the maximum speed.
-
-For inflate, which has 286 possible codes for the literal/length tree, the size
-of the first table is nine bits.  Also the distance trees have 30 possible
-values, and the size of the first table is six bits.  Note that for each of
-those cases, the table ended up one bit longer than the ``average'' code
-length, i.e. the code length of an approximately flat code which would be a
-little more than eight bits for 286 symbols and a little less than five bits
-for 30 symbols.
-
-
-2.2 More details on the inflate table lookup
-
-Ok, you want to know what this cleverly obfuscated inflate tree actually
-looks like.  You are correct that it's not a Huffman tree.  It is simply a
-lookup table for the first, let's say, nine bits of a Huffman symbol.  The
-symbol could be as short as one bit or as long as 15 bits.  If a particular
-symbol is shorter than nine bits, then that symbol's translation is duplicated
-in all those entries that start with that symbol's bits.  For example, if the
-symbol is four bits, then it's duplicated 32 times in a nine-bit table.  If a
-symbol is nine bits long, it appears in the table once.
-
-If the symbol is longer than nine bits, then that entry in the table points
-to another similar table for the remaining bits.  Again, there are duplicated
-entries as needed.  The idea is that most of the time the symbol will be short
-and there will only be one table look up.  (That's whole idea behind data
-compression in the first place.)  For the less frequent long symbols, there
-will be two lookups.  If you had a compression method with really long
-symbols, you could have as many levels of lookups as is efficient.  For
-inflate, two is enough.
-
-So a table entry either points to another table (in which case nine bits in
-the above example are gobbled), or it contains the translation for the symbol
-and the number of bits to gobble.  Then you start again with the next
-ungobbled bit.
-
-You may wonder: why not just have one lookup table for how ever many bits the
-longest symbol is?  The reason is that if you do that, you end up spending
-more time filling in duplicate symbol entries than you do actually decoding.
-At least for deflate's output that generates new trees every several 10's of
-kbytes.  You can imagine that filling in a 2^15 entry table for a 15-bit code
-would take too long if you're only decoding several thousand symbols.  At the
-other extreme, you could make a new table for every bit in the code.  In fact,
-that's essentially a Huffman tree.  But then you spend two much time
-traversing the tree while decoding, even for short symbols.
-
-So the number of bits for the first lookup table is a trade of the time to
-fill out the table vs. the time spent looking at the second level and above of
-the table.
-
-Here is an example, scaled down:
-
-The code being decoded, with 10 symbols, from 1 to 6 bits long:
-
-A: 0
-B: 10
-C: 1100
-D: 11010
-E: 11011
-F: 11100
-G: 11101
-H: 11110
-I: 111110
-J: 111111
-
-Let's make the first table three bits long (eight entries):
-
-000: A,1
-001: A,1
-010: A,1
-011: A,1
-100: B,2
-101: B,2
-110: -> table X (gobble 3 bits)
-111: -> table Y (gobble 3 bits)
-
-Each entry is what the bits decode as and how many bits that is, i.e. how
-many bits to gobble.  Or the entry points to another table, with the number of
-bits to gobble implicit in the size of the table.
-
-Table X is two bits long since the longest code starting with 110 is five bits
-long:
-
-00: C,1
-01: C,1
-10: D,2
-11: E,2
-
-Table Y is three bits long since the longest code starting with 111 is six
-bits long:
-
-000: F,2
-001: F,2
-010: G,2
-011: G,2
-100: H,2
-101: H,2
-110: I,3
-111: J,3
-
-So what we have here are three tables with a total of 20 entries that had to
-be constructed.  That's compared to 64 entries for a single table.  Or
-compared to 16 entries for a Huffman tree (six two entry tables and one four
-entry table).  Assuming that the code ideally represents the probability of
-the symbols, it takes on the average 1.25 lookups per symbol.  That's compared
-to one lookup for the single table, or 1.66 lookups per symbol for the
-Huffman tree.
-
-There, I think that gives you a picture of what's going on.  For inflate, the
-meaning of a particular symbol is often more than just a letter.  It can be a
-byte (a "literal"), or it can be either a length or a distance which
-indicates a base value and a number of bits to fetch after the code that is
-added to the base value.  Or it might be the special end-of-block code.  The
-data structures created in inftrees.c try to encode all that information
-compactly in the tables.
-
-
-Jean-loup Gailly        Mark Adler
-jloup@gzip.org          madler@alumni.caltech.edu
-
-
-References:
-
-[LZ77] Ziv J., Lempel A., ``A Universal Algorithm for Sequential Data
-Compression,'' IEEE Transactions on Information Theory, Vol. 23, No. 3,
-pp. 337-343.
-
-``DEFLATE Compressed Data Format Specification'' available in
-http://www.ietf.org/rfc/rfc1951.txt
diff --git a/klibc/klibc/zlib/compress.c b/klibc/klibc/zlib/compress.c
deleted file mode 100644 (file)
index 3f4b442..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: compress.c,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#define ZLIB_INTERNAL
-#include "zlib.h"
-
-/* ===========================================================================
-     Compresses the source buffer into the destination buffer. The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer. Upon entry, destLen is the total size of the
-   destination buffer, which must be at least 0.1% larger than sourceLen plus
-   12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
-    Bytef *dest;
-    uLongf *destLen;
-    const Bytef *source;
-    uLong sourceLen;
-    int level;
-{
-    z_stream stream;
-    int err;
-
-    stream.next_in = (Bytef*)source;
-    stream.avail_in = (uInt)sourceLen;
-#ifdef MAXSEG_64K
-    /* Check for source > 64K on 16-bit machine: */
-    if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-#endif
-    stream.next_out = dest;
-    stream.avail_out = (uInt)*destLen;
-    if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
-
-    stream.zalloc = (alloc_func)0;
-    stream.zfree = (free_func)0;
-    stream.opaque = (voidpf)0;
-
-    err = deflateInit(&stream, level);
-    if (err != Z_OK) return err;
-
-    err = deflate(&stream, Z_FINISH);
-    if (err != Z_STREAM_END) {
-        deflateEnd(&stream);
-        return err == Z_OK ? Z_BUF_ERROR : err;
-    }
-    *destLen = stream.total_out;
-
-    err = deflateEnd(&stream);
-    return err;
-}
-
-/* ===========================================================================
- */
-int ZEXPORT compress (dest, destLen, source, sourceLen)
-    Bytef *dest;
-    uLongf *destLen;
-    const Bytef *source;
-    uLong sourceLen;
-{
-    return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
-}
-
-/* ===========================================================================
-     If the default memLevel or windowBits for deflateInit() is changed, then
-   this function needs to be updated.
- */
-uLong ZEXPORT compressBound (sourceLen)
-    uLong sourceLen;
-{
-    return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + 11;
-}
diff --git a/klibc/klibc/zlib/crc32.c b/klibc/klibc/zlib/crc32.c
deleted file mode 100644 (file)
index 0bb9c49..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-/* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- *
- * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster
- * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing
- * tables for updating the shift register in one step with three exclusive-ors
- * instead of four steps with four exclusive-ors.  This results about a factor
- * of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3.
- */
-
-/* @(#) $Id: crc32.c,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#ifdef MAKECRCH
-#  include <stdio.h>
-#  ifndef DYNAMIC_CRC_TABLE
-#    define DYNAMIC_CRC_TABLE
-#  endif /* !DYNAMIC_CRC_TABLE */
-#endif /* MAKECRCH */
-
-#include "zutil.h"      /* for STDC and FAR definitions */
-
-#define local static
-
-/* Find a four-byte integer type for crc32_little() and crc32_big(). */
-#ifndef NOBYFOUR
-#  ifdef STDC           /* need ANSI C limits.h to determine sizes */
-#    include <limits.h>
-#    define BYFOUR
-#    if (UINT_MAX == 0xffffffffUL)
-       typedef unsigned int u4;
-#    else
-#      if (ULONG_MAX == 0xffffffffUL)
-         typedef unsigned long u4;
-#      else
-#        if (USHRT_MAX == 0xffffffffUL)
-           typedef unsigned short u4;
-#        else
-#          undef BYFOUR     /* can't find a four-byte integer type! */
-#        endif
-#      endif
-#    endif
-#  endif /* STDC */
-#endif /* !NOBYFOUR */
-
-/* Definitions for doing the crc four data bytes at a time. */
-#ifdef BYFOUR
-#  define REV(w) (((w)>>24)+(((w)>>8)&0xff00)+ \
-                (((w)&0xff00)<<8)+(((w)&0xff)<<24))
-   local unsigned long crc32_little OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
-   local unsigned long crc32_big OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
-#  define TBLS 8
-#else
-#  define TBLS 1
-#endif /* BYFOUR */
-
-#ifdef DYNAMIC_CRC_TABLE
-
-local int crc_table_empty = 1;
-local unsigned long FAR crc_table[TBLS][256];
-local void make_crc_table OF((void));
-#ifdef MAKECRCH
-   local void write_table OF((FILE *, const unsigned long FAR *));
-#endif /* MAKECRCH */
-
-/*
-  Generate tables for a byte-wise 32-bit CRC calculation on the polynomial:
-  x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
-
-  Polynomials over GF(2) are represented in binary, one bit per coefficient,
-  with the lowest powers in the most significant bit.  Then adding polynomials
-  is just exclusive-or, and multiplying a polynomial by x is a right shift by
-  one.  If we call the above polynomial p, and represent a byte as the
-  polynomial q, also with the lowest power in the most significant bit (so the
-  byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
-  where a mod b means the remainder after dividing a by b.
-
-  This calculation is done using the shift-register method of multiplying and
-  taking the remainder.  The register is initialized to zero, and for each
-  incoming bit, x^32 is added mod p to the register if the bit is a one (where
-  x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
-  x (which is shifting right by one and adding x^32 mod p if the bit shifted
-  out is a one).  We start with the highest power (least significant bit) of
-  q and repeat for all eight bits of q.
-
-  The first table is simply the CRC of all possible eight bit values.  This is
-  all the information needed to generate CRCs on data a byte at a time for all
-  combinations of CRC register values and incoming bytes.  The remaining tables
-  allow for word-at-a-time CRC calculation for both big-endian and little-
-  endian machines, where a word is four bytes.
-*/
-local void make_crc_table()
-{
-    unsigned long c;
-    int n, k;
-    unsigned long poly;            /* polynomial exclusive-or pattern */
-    /* terms of polynomial defining this crc (except x^32): */
-    static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26};
-
-    /* make exclusive-or pattern from polynomial (0xedb88320UL) */
-    poly = 0UL;
-    for (n = 0; n < sizeof(p)/sizeof(unsigned char); n++)
-        poly |= 1UL << (31 - p[n]);
-
-    /* generate a crc for every 8-bit value */
-    for (n = 0; n < 256; n++) {
-        c = (unsigned long)n;
-        for (k = 0; k < 8; k++)
-            c = c & 1 ? poly ^ (c >> 1) : c >> 1;
-        crc_table[0][n] = c;
-    }
-
-#ifdef BYFOUR
-    /* generate crc for each value followed by one, two, and three zeros, and
-       then the byte reversal of those as well as the first table */
-    for (n = 0; n < 256; n++) {
-        c = crc_table[0][n];
-        crc_table[4][n] = REV(c);
-        for (k = 1; k < 4; k++) {
-            c = crc_table[0][c & 0xff] ^ (c >> 8);
-            crc_table[k][n] = c;
-            crc_table[k + 4][n] = REV(c);
-        }
-    }
-#endif /* BYFOUR */
-
-  crc_table_empty = 0;
-
-#ifdef MAKECRCH
-    /* write out CRC tables to crc32.h */
-    {
-        FILE *out;
-
-        out = fopen("crc32.h", "w");
-        if (out == NULL) return;
-        fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n");
-        fprintf(out, " * Generated automatically by crc32.c\n */\n\n");
-        fprintf(out, "local const unsigned long FAR ");
-        fprintf(out, "crc_table[TBLS][256] =\n{\n  {\n");
-        write_table(out, crc_table[0]);
-#  ifdef BYFOUR
-        fprintf(out, "#ifdef BYFOUR\n");
-        for (k = 1; k < 8; k++) {
-            fprintf(out, "  },\n  {\n");
-            write_table(out, crc_table[k]);
-        }
-        fprintf(out, "#endif\n");
-#  endif /* BYFOUR */
-        fprintf(out, "  }\n};\n");
-        fclose(out);
-    }
-#endif /* MAKECRCH */
-}
-
-#ifdef MAKECRCH
-local void write_table(out, table)
-    FILE *out;
-    const unsigned long FAR *table;
-{
-    int n;
-
-    for (n = 0; n < 256; n++)
-        fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : "    ", table[n],
-                n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", "));
-}
-#endif /* MAKECRCH */
-
-#else /* !DYNAMIC_CRC_TABLE */
-/* ========================================================================
- * Tables of CRC-32s of all single-byte values, made by make_crc_table().
- */
-#include "crc32.h"
-#endif /* DYNAMIC_CRC_TABLE */
-
-/* =========================================================================
- * This function can be used by asm versions of crc32()
- */
-const unsigned long FAR * ZEXPORT get_crc_table()
-{
-#ifdef DYNAMIC_CRC_TABLE
-  if (crc_table_empty) make_crc_table();
-#endif /* DYNAMIC_CRC_TABLE */
-  return (const unsigned long FAR *)crc_table;
-}
-
-/* ========================================================================= */
-#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8)
-#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
-
-/* ========================================================================= */
-unsigned long ZEXPORT crc32(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    unsigned len;
-{
-    if (buf == Z_NULL) return 0UL;
-
-#ifdef DYNAMIC_CRC_TABLE
-    if (crc_table_empty)
-        make_crc_table();
-#endif /* DYNAMIC_CRC_TABLE */
-
-#ifdef BYFOUR
-    if (sizeof(void *) == sizeof(ptrdiff_t)) {
-        u4 endian;
-
-        endian = 1;
-        if (*((unsigned char *)(&endian)))
-            return crc32_little(crc, buf, len);
-        else
-            return crc32_big(crc, buf, len);
-    }
-#endif /* BYFOUR */
-    crc = crc ^ 0xffffffffUL;
-    while (len >= 8) {
-        DO8;
-        len -= 8;
-    }
-    if (len) do {
-        DO1;
-    } while (--len);
-    return crc ^ 0xffffffffUL;
-}
-
-#ifdef BYFOUR
-
-/* ========================================================================= */
-#define DOLIT4 c ^= *buf4++; \
-        c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
-            crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24]
-#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4
-
-/* ========================================================================= */
-local unsigned long crc32_little(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    unsigned len;
-{
-    register u4 c;
-    register const u4 FAR *buf4;
-
-    c = (u4)crc;
-    c = ~c;
-    while (len && ((ptrdiff_t)buf & 3)) {
-        c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
-        len--;
-    }
-
-    buf4 = (const u4 FAR *)buf;
-    while (len >= 32) {
-        DOLIT32;
-        len -= 32;
-    }
-    while (len >= 4) {
-        DOLIT4;
-        len -= 4;
-    }
-    buf = (const unsigned char FAR *)buf4;
-
-    if (len) do {
-        c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
-    } while (--len);
-    c = ~c;
-    return (unsigned long)c;
-}
-
-/* ========================================================================= */
-#define DOBIG4 c ^= *++buf4; \
-        c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
-            crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
-#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
-
-/* ========================================================================= */
-local unsigned long crc32_big(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    unsigned len;
-{
-    register u4 c;
-    register const u4 FAR *buf4;
-
-    c = REV((u4)crc);
-    c = ~c;
-    while (len && ((ptrdiff_t)buf & 3)) {
-        c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
-        len--;
-    }
-
-    buf4 = (const u4 FAR *)buf;
-    buf4--;
-    while (len >= 32) {
-        DOBIG32;
-        len -= 32;
-    }
-    while (len >= 4) {
-        DOBIG4;
-        len -= 4;
-    }
-    buf4++;
-    buf = (const unsigned char FAR *)buf4;
-
-    if (len) do {
-        c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
-    } while (--len);
-    c = ~c;
-    return (unsigned long)(REV(c));
-}
-
-#endif /* BYFOUR */
diff --git a/klibc/klibc/zlib/crc32.h b/klibc/klibc/zlib/crc32.h
deleted file mode 100644 (file)
index 8053b61..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-/* crc32.h -- tables for rapid CRC calculation
- * Generated automatically by crc32.c
- */
-
-local const unsigned long FAR crc_table[TBLS][256] =
-{
-  {
-    0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
-    0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
-    0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
-    0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
-    0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
-    0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
-    0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
-    0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
-    0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
-    0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
-    0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
-    0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
-    0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
-    0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
-    0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
-    0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
-    0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
-    0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
-    0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
-    0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
-    0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
-    0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
-    0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
-    0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
-    0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
-    0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
-    0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
-    0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
-    0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
-    0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
-    0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
-    0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
-    0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
-    0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
-    0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
-    0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
-    0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
-    0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
-    0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
-    0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
-    0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
-    0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
-    0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
-    0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
-    0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
-    0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
-    0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
-    0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
-    0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
-    0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
-    0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
-    0x2d02ef8dUL
-#ifdef BYFOUR
-  },
-  {
-    0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL,
-    0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL,
-    0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL,
-    0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL,
-    0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL,
-    0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL,
-    0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL,
-    0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL,
-    0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL,
-    0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL,
-    0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL,
-    0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL,
-    0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL,
-    0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL,
-    0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL,
-    0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL,
-    0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL,
-    0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL,
-    0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL,
-    0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL,
-    0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL,
-    0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL,
-    0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL,
-    0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL,
-    0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL,
-    0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL,
-    0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL,
-    0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL,
-    0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL,
-    0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL,
-    0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL,
-    0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL,
-    0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL,
-    0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL,
-    0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL,
-    0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL,
-    0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL,
-    0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL,
-    0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL,
-    0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL,
-    0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL,
-    0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL,
-    0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL,
-    0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL,
-    0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL,
-    0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL,
-    0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL,
-    0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL,
-    0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL,
-    0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL,
-    0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL,
-    0x9324fd72UL
-  },
-  {
-    0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL,
-    0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL,
-    0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL,
-    0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL,
-    0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL,
-    0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL,
-    0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL,
-    0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL,
-    0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL,
-    0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL,
-    0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL,
-    0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL,
-    0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL,
-    0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL,
-    0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL,
-    0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL,
-    0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL,
-    0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL,
-    0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL,
-    0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL,
-    0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL,
-    0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL,
-    0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL,
-    0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL,
-    0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL,
-    0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL,
-    0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL,
-    0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL,
-    0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL,
-    0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL,
-    0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL,
-    0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL,
-    0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL,
-    0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL,
-    0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL,
-    0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL,
-    0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL,
-    0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL,
-    0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL,
-    0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL,
-    0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL,
-    0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL,
-    0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL,
-    0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL,
-    0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL,
-    0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL,
-    0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL,
-    0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL,
-    0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL,
-    0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL,
-    0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL,
-    0xbe9834edUL
-  },
-  {
-    0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL,
-    0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL,
-    0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL,
-    0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL,
-    0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL,
-    0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL,
-    0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL,
-    0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL,
-    0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL,
-    0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL,
-    0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL,
-    0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL,
-    0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL,
-    0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL,
-    0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL,
-    0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL,
-    0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL,
-    0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL,
-    0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL,
-    0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL,
-    0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL,
-    0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL,
-    0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL,
-    0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL,
-    0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL,
-    0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL,
-    0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL,
-    0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL,
-    0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL,
-    0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL,
-    0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL,
-    0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL,
-    0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL,
-    0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL,
-    0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL,
-    0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL,
-    0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL,
-    0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL,
-    0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL,
-    0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL,
-    0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL,
-    0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL,
-    0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL,
-    0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL,
-    0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL,
-    0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL,
-    0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL,
-    0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL,
-    0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL,
-    0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL,
-    0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL,
-    0xde0506f1UL
-  },
-  {
-    0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL,
-    0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL,
-    0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL,
-    0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL,
-    0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL,
-    0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL,
-    0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL,
-    0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL,
-    0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL,
-    0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL,
-    0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL,
-    0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL,
-    0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL,
-    0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL,
-    0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL,
-    0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL,
-    0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL,
-    0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL,
-    0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL,
-    0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL,
-    0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL,
-    0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL,
-    0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL,
-    0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL,
-    0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL,
-    0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL,
-    0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL,
-    0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL,
-    0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL,
-    0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL,
-    0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL,
-    0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL,
-    0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL,
-    0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL,
-    0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL,
-    0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL,
-    0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL,
-    0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL,
-    0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL,
-    0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL,
-    0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL,
-    0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL,
-    0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL,
-    0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL,
-    0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL,
-    0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL,
-    0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL,
-    0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL,
-    0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL,
-    0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL,
-    0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL,
-    0x8def022dUL
-  },
-  {
-    0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL,
-    0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL,
-    0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL,
-    0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL,
-    0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL,
-    0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL,
-    0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL,
-    0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL,
-    0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL,
-    0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL,
-    0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL,
-    0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL,
-    0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL,
-    0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL,
-    0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL,
-    0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL,
-    0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL,
-    0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL,
-    0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL,
-    0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL,
-    0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL,
-    0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL,
-    0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL,
-    0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL,
-    0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL,
-    0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL,
-    0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL,
-    0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL,
-    0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL,
-    0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL,
-    0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL,
-    0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL,
-    0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL,
-    0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL,
-    0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL,
-    0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL,
-    0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL,
-    0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL,
-    0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL,
-    0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL,
-    0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL,
-    0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL,
-    0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL,
-    0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL,
-    0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL,
-    0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL,
-    0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL,
-    0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL,
-    0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL,
-    0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL,
-    0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL,
-    0x72fd2493UL
-  },
-  {
-    0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL,
-    0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL,
-    0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL,
-    0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL,
-    0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL,
-    0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL,
-    0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL,
-    0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL,
-    0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL,
-    0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL,
-    0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL,
-    0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL,
-    0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL,
-    0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL,
-    0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL,
-    0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL,
-    0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL,
-    0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL,
-    0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL,
-    0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL,
-    0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL,
-    0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL,
-    0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL,
-    0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL,
-    0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL,
-    0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL,
-    0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL,
-    0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL,
-    0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL,
-    0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL,
-    0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL,
-    0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL,
-    0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL,
-    0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL,
-    0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL,
-    0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL,
-    0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL,
-    0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL,
-    0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL,
-    0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL,
-    0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL,
-    0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL,
-    0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL,
-    0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL,
-    0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL,
-    0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL,
-    0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL,
-    0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL,
-    0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL,
-    0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL,
-    0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL,
-    0xed3498beUL
-  },
-  {
-    0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL,
-    0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL,
-    0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL,
-    0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL,
-    0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL,
-    0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL,
-    0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL,
-    0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL,
-    0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL,
-    0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL,
-    0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL,
-    0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL,
-    0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL,
-    0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL,
-    0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL,
-    0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL,
-    0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL,
-    0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL,
-    0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL,
-    0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL,
-    0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL,
-    0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL,
-    0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL,
-    0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL,
-    0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL,
-    0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL,
-    0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL,
-    0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL,
-    0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL,
-    0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL,
-    0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL,
-    0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL,
-    0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL,
-    0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL,
-    0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL,
-    0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL,
-    0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL,
-    0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL,
-    0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL,
-    0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL,
-    0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL,
-    0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL,
-    0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL,
-    0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL,
-    0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL,
-    0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL,
-    0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL,
-    0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL,
-    0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL,
-    0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL,
-    0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL,
-    0xf10605deUL
-#endif
-  }
-};
diff --git a/klibc/klibc/zlib/deflate.c b/klibc/klibc/zlib/deflate.c
deleted file mode 100644 (file)
index fe07dcb..0000000
+++ /dev/null
@@ -1,1502 +0,0 @@
-/* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2003 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- *  ALGORITHM
- *
- *      The "deflation" process depends on being able to identify portions
- *      of the input text which are identical to earlier input (within a
- *      sliding window trailing behind the input currently being processed).
- *
- *      The most straightforward technique turns out to be the fastest for
- *      most input files: try all possible matches and select the longest.
- *      The key feature of this algorithm is that insertions into the string
- *      dictionary are very simple and thus fast, and deletions are avoided
- *      completely. Insertions are performed at each input character, whereas
- *      string matches are performed only when the previous match ends. So it
- *      is preferable to spend more time in matches to allow very fast string
- *      insertions and avoid deletions. The matching algorithm for small
- *      strings is inspired from that of Rabin & Karp. A brute force approach
- *      is used to find longer strings when a small match has been found.
- *      A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
- *      (by Leonid Broukhis).
- *         A previous version of this file used a more sophisticated algorithm
- *      (by Fiala and Greene) which is guaranteed to run in linear amortized
- *      time, but has a larger average cost, uses more memory and is patented.
- *      However the F&G algorithm may be faster for some highly redundant
- *      files if the parameter max_chain_length (described below) is too large.
- *
- *  ACKNOWLEDGEMENTS
- *
- *      The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
- *      I found it in 'freeze' written by Leonid Broukhis.
- *      Thanks to many people for bug reports and testing.
- *
- *  REFERENCES
- *
- *      Deutsch, L.P.,"DEFLATE Compressed Data Format Specification".
- *      Available in http://www.ietf.org/rfc/rfc1951.txt
- *
- *      A description of the Rabin and Karp algorithm is given in the book
- *         "Algorithms" by R. Sedgewick, Addison-Wesley, p252.
- *
- *      Fiala,E.R., and Greene,D.H.
- *         Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
- *
- */
-
-/* @(#) $Id: deflate.c,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#include "deflate.h"
-
-const char deflate_copyright[] =
-   " deflate 1.2.1 Copyright 1995-2003 Jean-loup Gailly ";
-/*
-  If you use the zlib library in a product, an acknowledgment is welcome
-  in the documentation of your product. If for some reason you cannot
-  include such an acknowledgment, I would appreciate that you keep this
-  copyright string in the executable of your product.
- */
-
-/* ===========================================================================
- *  Function prototypes.
- */
-typedef enum {
-    need_more,      /* block not completed, need more input or more output */
-    block_done,     /* block flush performed */
-    finish_started, /* finish started, need only more output at next deflate */
-    finish_done     /* finish done, accept no more input or output */
-} block_state;
-
-typedef block_state (*compress_func) OF((deflate_state *s, int flush));
-/* Compression function. Returns the block state after the call. */
-
-local void fill_window    OF((deflate_state *s));
-local block_state deflate_stored OF((deflate_state *s, int flush));
-local block_state deflate_fast   OF((deflate_state *s, int flush));
-#ifndef FASTEST
-local block_state deflate_slow   OF((deflate_state *s, int flush));
-#endif
-local void lm_init        OF((deflate_state *s));
-local void putShortMSB    OF((deflate_state *s, uInt b));
-local void flush_pending  OF((z_streamp strm));
-local int read_buf        OF((z_streamp strm, Bytef *buf, unsigned size));
-#ifndef FASTEST
-#ifdef ASMV
-      void match_init OF((void)); /* asm code initialization */
-      uInt longest_match  OF((deflate_state *s, IPos cur_match));
-#else
-local uInt longest_match  OF((deflate_state *s, IPos cur_match));
-#endif
-#endif
-local uInt longest_match_fast OF((deflate_state *s, IPos cur_match));
-
-#ifdef DEBUG
-local  void check_match OF((deflate_state *s, IPos start, IPos match,
-                            int length));
-#endif
-
-/* ===========================================================================
- * Local data
- */
-
-#define NIL 0
-/* Tail of hash chains */
-
-#ifndef TOO_FAR
-#  define TOO_FAR 4096
-#endif
-/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-/* Values for max_lazy_match, good_match and max_chain_length, depending on
- * the desired pack level (0..9). The values given below have been tuned to
- * exclude worst case performance for pathological files. Better values may be
- * found for specific files.
- */
-typedef struct config_s {
-   ush good_length; /* reduce lazy search above this match length */
-   ush max_lazy;    /* do not perform lazy search above this match length */
-   ush nice_length; /* quit search above this match length */
-   ush max_chain;
-   compress_func func;
-} config;
-
-#ifdef FASTEST
-local const config configuration_table[2] = {
-/*      good lazy nice chain */
-/* 0 */ {0,    0,  0,    0, deflate_stored},  /* store only */
-/* 1 */ {4,    4,  8,    4, deflate_fast}}; /* max speed, no lazy matches */
-#else
-local const config configuration_table[10] = {
-/*      good lazy nice chain */
-/* 0 */ {0,    0,  0,    0, deflate_stored},  /* store only */
-/* 1 */ {4,    4,  8,    4, deflate_fast}, /* max speed, no lazy matches */
-/* 2 */ {4,    5, 16,    8, deflate_fast},
-/* 3 */ {4,    6, 32,   32, deflate_fast},
-
-/* 4 */ {4,    4, 16,   16, deflate_slow},  /* lazy matches */
-/* 5 */ {8,   16, 32,   32, deflate_slow},
-/* 6 */ {8,   16, 128, 128, deflate_slow},
-/* 7 */ {8,   32, 128, 256, deflate_slow},
-/* 8 */ {32, 128, 258, 1024, deflate_slow},
-/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */
-#endif
-
-/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
- * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
- * meaning.
- */
-
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-#ifndef NO_DUMMY_DECL
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-#endif
-
-/* ===========================================================================
- * Update a hash value with the given input byte
- * IN  assertion: all calls to to UPDATE_HASH are made with consecutive
- *    input characters, so that a running hash key can be computed from the
- *    previous key instead of complete recalculation each time.
- */
-#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
-
-
-/* ===========================================================================
- * Insert string str in the dictionary and set match_head to the previous head
- * of the hash chain (the most recent string with same hash key). Return
- * the previous length of the hash chain.
- * If this file is compiled with -DFASTEST, the compression level is forced
- * to 1, and no hash chains are maintained.
- * IN  assertion: all calls to to INSERT_STRING are made with consecutive
- *    input characters and the first MIN_MATCH bytes of str are valid
- *    (except for the last MIN_MATCH-1 bytes of the input file).
- */
-#ifdef FASTEST
-#define INSERT_STRING(s, str, match_head) \
-   (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-    match_head = s->head[s->ins_h], \
-    s->head[s->ins_h] = (Pos)(str))
-#else
-#define INSERT_STRING(s, str, match_head) \
-   (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-    match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \
-    s->head[s->ins_h] = (Pos)(str))
-#endif
-
-/* ===========================================================================
- * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
- * prev[] will be initialized on the fly.
- */
-#define CLEAR_HASH(s) \
-    s->head[s->hash_size-1] = NIL; \
-    zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
-
-/* ========================================================================= */
-int ZEXPORT deflateInit_(strm, level, version, stream_size)
-    z_streamp strm;
-    int level;
-    const char *version;
-    int stream_size;
-{
-    return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
-                         Z_DEFAULT_STRATEGY, version, stream_size);
-    /* To do: ignore strm->next_in if we use it as window */
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
-                  version, stream_size)
-    z_streamp strm;
-    int  level;
-    int  method;
-    int  windowBits;
-    int  memLevel;
-    int  strategy;
-    const char *version;
-    int stream_size;
-{
-    deflate_state *s;
-    int wrap = 1;
-    static const char my_version[] = ZLIB_VERSION;
-
-    ushf *overlay;
-    /* We overlay pending_buf and d_buf+l_buf. This works since the average
-     * output size for (length,distance) codes is <= 24 bits.
-     */
-
-    if (version == Z_NULL || version[0] != my_version[0] ||
-        stream_size != sizeof(z_stream)) {
-        return Z_VERSION_ERROR;
-    }
-    if (strm == Z_NULL) return Z_STREAM_ERROR;
-
-    strm->msg = Z_NULL;
-    if (strm->zalloc == (alloc_func)0) {
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-    }
-    if (strm->zfree == (free_func)0) strm->zfree = zcfree;
-
-#ifdef FASTEST
-    if (level != 0) level = 1;
-#else
-    if (level == Z_DEFAULT_COMPRESSION) level = 6;
-#endif
-
-    if (windowBits < 0) { /* suppress zlib wrapper */
-        wrap = 0;
-        windowBits = -windowBits;
-    }
-#ifdef GZIP
-    else if (windowBits > 15) {
-        wrap = 2;       /* write gzip wrapper instead */
-        windowBits -= 16;
-    }
-#endif
-    if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
-        windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
-        strategy < 0 || strategy > Z_RLE) {
-        return Z_STREAM_ERROR;
-    }
-    if (windowBits == 8) windowBits = 9;  /* until 256-byte window bug fixed */
-    s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
-    if (s == Z_NULL) return Z_MEM_ERROR;
-    strm->state = (struct internal_state FAR *)s;
-    s->strm = strm;
-
-    s->wrap = wrap;
-    s->w_bits = windowBits;
-    s->w_size = 1 << s->w_bits;
-    s->w_mask = s->w_size - 1;
-
-    s->hash_bits = memLevel + 7;
-    s->hash_size = 1 << s->hash_bits;
-    s->hash_mask = s->hash_size - 1;
-    s->hash_shift =  ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
-
-    s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
-    s->prev   = (Posf *)  ZALLOC(strm, s->w_size, sizeof(Pos));
-    s->head   = (Posf *)  ZALLOC(strm, s->hash_size, sizeof(Pos));
-
-    s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
-
-    overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
-    s->pending_buf = (uchf *) overlay;
-    s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
-
-    if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
-        s->pending_buf == Z_NULL) {
-        s->status = FINISH_STATE;
-        strm->msg = (char*)ERR_MSG(Z_MEM_ERROR);
-        deflateEnd (strm);
-        return Z_MEM_ERROR;
-    }
-    s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
-    s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
-
-    s->level = level;
-    s->strategy = strategy;
-    s->method = (Byte)method;
-
-    return deflateReset(strm);
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
-    z_streamp strm;
-    const Bytef *dictionary;
-    uInt  dictLength;
-{
-    deflate_state *s;
-    uInt length = dictLength;
-    uInt n;
-    IPos hash_head = 0;
-
-    if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL ||
-        strm->state->wrap == 2 ||
-        (strm->state->wrap == 1 && strm->state->status != INIT_STATE))
-        return Z_STREAM_ERROR;
-
-    s = strm->state;
-    if (s->wrap)
-        strm->adler = adler32(strm->adler, dictionary, dictLength);
-
-    if (length < MIN_MATCH) return Z_OK;
-    if (length > MAX_DIST(s)) {
-        length = MAX_DIST(s);
-#ifndef USE_DICT_HEAD
-        dictionary += dictLength - length; /* use the tail of the dictionary */
-#endif
-    }
-    zmemcpy(s->window, dictionary, length);
-    s->strstart = length;
-    s->block_start = (long)length;
-
-    /* Insert all strings in the hash table (except for the last two bytes).
-     * s->lookahead stays null, so s->ins_h will be recomputed at the next
-     * call of fill_window.
-     */
-    s->ins_h = s->window[0];
-    UPDATE_HASH(s, s->ins_h, s->window[1]);
-    for (n = 0; n <= length - MIN_MATCH; n++) {
-        INSERT_STRING(s, n, hash_head);
-    }
-    if (hash_head) hash_head = 0;  /* to make compiler happy */
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateReset (strm)
-    z_streamp strm;
-{
-    deflate_state *s;
-
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) {
-        return Z_STREAM_ERROR;
-    }
-
-    strm->total_in = strm->total_out = 0;
-    strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
-    strm->data_type = Z_UNKNOWN;
-
-    s = (deflate_state *)strm->state;
-    s->pending = 0;
-    s->pending_out = s->pending_buf;
-
-    if (s->wrap < 0) {
-        s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */
-    }
-    s->status = s->wrap ? INIT_STATE : BUSY_STATE;
-    strm->adler =
-#ifdef GZIP
-        s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
-#endif
-        adler32(0L, Z_NULL, 0);
-    s->last_flush = Z_NO_FLUSH;
-
-    _tr_init(s);
-    lm_init(s);
-
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflatePrime (strm, bits, value)
-    z_streamp strm;
-    int bits;
-    int value;
-{
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    strm->state->bi_valid = bits;
-    strm->state->bi_buf = (ush)(value & ((1 << bits) - 1));
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateParams(strm, level, strategy)
-    z_streamp strm;
-    int level;
-    int strategy;
-{
-    deflate_state *s;
-    compress_func func;
-    int err = Z_OK;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    s = strm->state;
-
-#ifdef FASTEST
-    if (level != 0) level = 1;
-#else
-    if (level == Z_DEFAULT_COMPRESSION) level = 6;
-#endif
-    if (level < 0 || level > 9 || strategy < 0 || strategy > Z_RLE) {
-        return Z_STREAM_ERROR;
-    }
-    func = configuration_table[s->level].func;
-
-    if (func != configuration_table[level].func && strm->total_in != 0) {
-        /* Flush the last buffer: */
-        err = deflate(strm, Z_PARTIAL_FLUSH);
-    }
-    if (s->level != level) {
-        s->level = level;
-        s->max_lazy_match   = configuration_table[level].max_lazy;
-        s->good_match       = configuration_table[level].good_length;
-        s->nice_match       = configuration_table[level].nice_length;
-        s->max_chain_length = configuration_table[level].max_chain;
-    }
-    s->strategy = strategy;
-    return err;
-}
-
-/* =========================================================================
- * For the default windowBits of 15 and memLevel of 8, this function returns
- * a close to exact, as well as small, upper bound on the compressed size.
- * They are coded as constants here for a reason--if the #define's are
- * changed, then this function needs to be changed as well.  The return
- * value for 15 and 8 only works for those exact settings.
- *
- * For any setting other than those defaults for windowBits and memLevel,
- * the value returned is a conservative worst case for the maximum expansion
- * resulting from using fixed blocks instead of stored blocks, which deflate
- * can emit on compressed data for some combinations of the parameters.
- *
- * This function could be more sophisticated to provide closer upper bounds
- * for every combination of windowBits and memLevel, as well as wrap.
- * But even the conservative upper bound of about 14% expansion does not
- * seem onerous for output buffer allocation.
- */
-uLong ZEXPORT deflateBound(strm, sourceLen)
-    z_streamp strm;
-    uLong sourceLen;
-{
-    deflate_state *s;
-    uLong destLen;
-
-    /* conservative upper bound */
-    destLen = sourceLen +
-              ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 11;
-
-    /* if can't get parameters, return conservative bound */
-    if (strm == Z_NULL || strm->state == Z_NULL)
-        return destLen;
-
-    /* if not default parameters, return conservative bound */
-    s = strm->state;
-    if (s->w_bits != 15 || s->hash_bits != 8 + 7)
-        return destLen;
-
-    /* default settings: return tight bound for that case */
-    return compressBound(sourceLen);
-}
-
-/* =========================================================================
- * Put a short in the pending buffer. The 16-bit value is put in MSB order.
- * IN assertion: the stream state is correct and there is enough room in
- * pending_buf.
- */
-local void putShortMSB (s, b)
-    deflate_state *s;
-    uInt b;
-{
-    put_byte(s, (Byte)(b >> 8));
-    put_byte(s, (Byte)(b & 0xff));
-}
-
-/* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
- */
-local void flush_pending(strm)
-    z_streamp strm;
-{
-    unsigned len = strm->state->pending;
-
-    if (len > strm->avail_out) len = strm->avail_out;
-    if (len == 0) return;
-
-    zmemcpy(strm->next_out, strm->state->pending_out, len);
-    strm->next_out  += len;
-    strm->state->pending_out  += len;
-    strm->total_out += len;
-    strm->avail_out  -= len;
-    strm->state->pending -= len;
-    if (strm->state->pending == 0) {
-        strm->state->pending_out = strm->state->pending_buf;
-    }
-}
-
-/* ========================================================================= */
-int ZEXPORT deflate (strm, flush)
-    z_streamp strm;
-    int flush;
-{
-    int old_flush; /* value of flush param for previous deflate call */
-    deflate_state *s;
-
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        flush > Z_FINISH || flush < 0) {
-        return Z_STREAM_ERROR;
-    }
-    s = strm->state;
-
-    if (strm->next_out == Z_NULL ||
-        (strm->next_in == Z_NULL && strm->avail_in != 0) ||
-        (s->status == FINISH_STATE && flush != Z_FINISH)) {
-        ERR_RETURN(strm, Z_STREAM_ERROR);
-    }
-    if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
-
-    s->strm = strm; /* just in case */
-    old_flush = s->last_flush;
-    s->last_flush = flush;
-
-    /* Write the header */
-    if (s->status == INIT_STATE) {
-#ifdef GZIP
-        if (s->wrap == 2) {
-            put_byte(s, 31);
-            put_byte(s, 139);
-            put_byte(s, 8);
-            put_byte(s, 0);
-            put_byte(s, 0);
-            put_byte(s, 0);
-            put_byte(s, 0);
-            put_byte(s, 0);
-            put_byte(s, s->level == 9 ? 2 :
-                        (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                         4 : 0));
-            put_byte(s, 255);
-            s->status = BUSY_STATE;
-            strm->adler = crc32(0L, Z_NULL, 0);
-        }
-        else
-#endif
-        {
-            uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
-            uInt level_flags;
-
-            if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
-                level_flags = 0;
-            else if (s->level < 6)
-                level_flags = 1;
-            else if (s->level == 6)
-                level_flags = 2;
-            else
-                level_flags = 3;
-            header |= (level_flags << 6);
-            if (s->strstart != 0) header |= PRESET_DICT;
-            header += 31 - (header % 31);
-
-            s->status = BUSY_STATE;
-            putShortMSB(s, header);
-
-            /* Save the adler32 of the preset dictionary: */
-            if (s->strstart != 0) {
-                putShortMSB(s, (uInt)(strm->adler >> 16));
-                putShortMSB(s, (uInt)(strm->adler & 0xffff));
-            }
-            strm->adler = adler32(0L, Z_NULL, 0);
-        }
-    }
-
-    /* Flush as much pending output as possible */
-    if (s->pending != 0) {
-        flush_pending(strm);
-        if (strm->avail_out == 0) {
-            /* Since avail_out is 0, deflate will be called again with
-             * more output space, but possibly with both pending and
-             * avail_in equal to zero. There won't be anything to do,
-             * but this is not an error situation so make sure we
-             * return OK instead of BUF_ERROR at next call of deflate:
-             */
-            s->last_flush = -1;
-            return Z_OK;
-        }
-
-    /* Make sure there is something to do and avoid duplicate consecutive
-     * flushes. For repeated and useless calls with Z_FINISH, we keep
-     * returning Z_STREAM_END instead of Z_BUF_ERROR.
-     */
-    } else if (strm->avail_in == 0 && flush <= old_flush &&
-               flush != Z_FINISH) {
-        ERR_RETURN(strm, Z_BUF_ERROR);
-    }
-
-    /* User must not provide more input after the first FINISH: */
-    if (s->status == FINISH_STATE && strm->avail_in != 0) {
-        ERR_RETURN(strm, Z_BUF_ERROR);
-    }
-
-    /* Start a new block or continue the current one.
-     */
-    if (strm->avail_in != 0 || s->lookahead != 0 ||
-        (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
-        block_state bstate;
-
-        bstate = (*(configuration_table[s->level].func))(s, flush);
-
-        if (bstate == finish_started || bstate == finish_done) {
-            s->status = FINISH_STATE;
-        }
-        if (bstate == need_more || bstate == finish_started) {
-            if (strm->avail_out == 0) {
-                s->last_flush = -1; /* avoid BUF_ERROR next call, see above */
-            }
-            return Z_OK;
-            /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
-             * of deflate should use the same flush parameter to make sure
-             * that the flush is complete. So we don't have to output an
-             * empty block here, this will be done at next call. This also
-             * ensures that for a very small output buffer, we emit at most
-             * one empty block.
-             */
-        }
-        if (bstate == block_done) {
-            if (flush == Z_PARTIAL_FLUSH) {
-                _tr_align(s);
-            } else { /* FULL_FLUSH or SYNC_FLUSH */
-                _tr_stored_block(s, (char*)0, 0L, 0);
-                /* For a full flush, this empty block will be recognized
-                 * as a special marker by inflate_sync().
-                 */
-                if (flush == Z_FULL_FLUSH) {
-                    CLEAR_HASH(s);             /* forget history */
-                }
-            }
-            flush_pending(strm);
-            if (strm->avail_out == 0) {
-              s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */
-              return Z_OK;
-            }
-        }
-    }
-    Assert(strm->avail_out > 0, "bug2");
-
-    if (flush != Z_FINISH) return Z_OK;
-    if (s->wrap <= 0) return Z_STREAM_END;
-
-    /* Write the trailer */
-#ifdef GZIP
-    if (s->wrap == 2) {
-        put_byte(s, (Byte)(strm->adler & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 16) & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 24) & 0xff));
-        put_byte(s, (Byte)(strm->total_in & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 8) & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 16) & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 24) & 0xff));
-    }
-    else
-#endif
-    {
-        putShortMSB(s, (uInt)(strm->adler >> 16));
-        putShortMSB(s, (uInt)(strm->adler & 0xffff));
-    }
-    flush_pending(strm);
-    /* If avail_out is zero, the application will call deflate again
-     * to flush the rest.
-     */
-    if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */
-    return s->pending != 0 ? Z_OK : Z_STREAM_END;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateEnd (strm)
-    z_streamp strm;
-{
-    int status;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-
-    status = strm->state->status;
-    if (status != INIT_STATE && status != BUSY_STATE &&
-        status != FINISH_STATE) {
-      return Z_STREAM_ERROR;
-    }
-
-    /* Deallocate in reverse order of allocations: */
-    TRY_FREE(strm, strm->state->pending_buf);
-    TRY_FREE(strm, strm->state->head);
-    TRY_FREE(strm, strm->state->prev);
-    TRY_FREE(strm, strm->state->window);
-
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-
-    return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;
-}
-
-/* =========================================================================
- * Copy the source state to the destination state.
- * To simplify the source, this is not supported for 16-bit MSDOS (which
- * doesn't have enough memory anyway to duplicate compression states).
- */
-int ZEXPORT deflateCopy (dest, source)
-    z_streamp dest;
-    z_streamp source;
-{
-#ifdef MAXSEG_64K
-    return Z_STREAM_ERROR;
-#else
-    deflate_state *ds;
-    deflate_state *ss;
-    ushf *overlay;
-
-
-    if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) {
-        return Z_STREAM_ERROR;
-    }
-
-    ss = source->state;
-
-    *dest = *source;
-
-    ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state));
-    if (ds == Z_NULL) return Z_MEM_ERROR;
-    dest->state = (struct internal_state FAR *) ds;
-    *ds = *ss;
-    ds->strm = dest;
-
-    ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
-    ds->prev   = (Posf *)  ZALLOC(dest, ds->w_size, sizeof(Pos));
-    ds->head   = (Posf *)  ZALLOC(dest, ds->hash_size, sizeof(Pos));
-    overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
-    ds->pending_buf = (uchf *) overlay;
-
-    if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
-        ds->pending_buf == Z_NULL) {
-        deflateEnd (dest);
-        return Z_MEM_ERROR;
-    }
-    /* following zmemcpy do not work for 16-bit MSDOS */
-    zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte));
-    zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos));
-    zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos));
-    zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
-
-    ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
-    ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
-    ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
-
-    ds->l_desc.dyn_tree = ds->dyn_ltree;
-    ds->d_desc.dyn_tree = ds->dyn_dtree;
-    ds->bl_desc.dyn_tree = ds->bl_tree;
-
-    return Z_OK;
-#endif /* MAXSEG_64K */
-}
-
-/* ===========================================================================
- * Read a new buffer from the current input stream, update the adler32
- * and total number of bytes read.  All deflate() input goes through
- * this function so some applications may wish to modify it to avoid
- * allocating a large strm->next_in buffer and copying from it.
- * (See also flush_pending()).
- */
-local int read_buf(strm, buf, size)
-    z_streamp strm;
-    Bytef *buf;
-    unsigned size;
-{
-    unsigned len = strm->avail_in;
-
-    if (len > size) len = size;
-    if (len == 0) return 0;
-
-    strm->avail_in  -= len;
-
-    if (strm->state->wrap == 1) {
-        strm->adler = adler32(strm->adler, strm->next_in, len);
-    }
-#ifdef GZIP
-    else if (strm->state->wrap == 2) {
-        strm->adler = crc32(strm->adler, strm->next_in, len);
-    }
-#endif
-    zmemcpy(buf, strm->next_in, len);
-    strm->next_in  += len;
-    strm->total_in += len;
-
-    return (int)len;
-}
-
-/* ===========================================================================
- * Initialize the "longest match" routines for a new zlib stream
- */
-local void lm_init (s)
-    deflate_state *s;
-{
-    s->window_size = (ulg)2L*s->w_size;
-
-    CLEAR_HASH(s);
-
-    /* Set the default configuration parameters:
-     */
-    s->max_lazy_match   = configuration_table[s->level].max_lazy;
-    s->good_match       = configuration_table[s->level].good_length;
-    s->nice_match       = configuration_table[s->level].nice_length;
-    s->max_chain_length = configuration_table[s->level].max_chain;
-
-    s->strstart = 0;
-    s->block_start = 0L;
-    s->lookahead = 0;
-    s->match_length = s->prev_length = MIN_MATCH-1;
-    s->match_available = 0;
-    s->ins_h = 0;
-#ifdef ASMV
-    match_init(); /* initialize the asm code */
-#endif
-}
-
-#ifndef FASTEST
-/* ===========================================================================
- * Set match_start to the longest match starting at the given string and
- * return its length. Matches shorter or equal to prev_length are discarded,
- * in which case the result is equal to prev_length and match_start is
- * garbage.
- * IN assertions: cur_match is the head of the hash chain for the current
- *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- * OUT assertion: the match length is not greater than s->lookahead.
- */
-#ifndef ASMV
-/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
- * match.S. The code will be functionally equivalent.
- */
-local uInt longest_match(s, cur_match)
-    deflate_state *s;
-    IPos cur_match;                             /* current match */
-{
-    unsigned chain_length = s->max_chain_length;/* max hash chain length */
-    register Bytef *scan = s->window + s->strstart; /* current string */
-    register Bytef *match;                       /* matched string */
-    register int len;                           /* length of current match */
-    int best_len = s->prev_length;              /* best match length so far */
-    int nice_match = s->nice_match;             /* stop if match long enough */
-    IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
-        s->strstart - (IPos)MAX_DIST(s) : NIL;
-    /* Stop when cur_match becomes <= limit. To simplify the code,
-     * we prevent matches with the string of window index 0.
-     */
-    Posf *prev = s->prev;
-    uInt wmask = s->w_mask;
-
-#ifdef UNALIGNED_OK
-    /* Compare two bytes at a time. Note: this is not always beneficial.
-     * Try with and without -DUNALIGNED_OK to check.
-     */
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
-    register ush scan_start = *(ushf*)scan;
-    register ush scan_end   = *(ushf*)(scan+best_len-1);
-#else
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-    register Byte scan_end1  = scan[best_len-1];
-    register Byte scan_end   = scan[best_len];
-#endif
-
-    /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-     * It is easy to get rid of this optimization if necessary.
-     */
-    Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
-    /* Do not waste too much time if we already have a good match: */
-    if (s->prev_length >= s->good_match) {
-        chain_length >>= 2;
-    }
-    /* Do not look for matches beyond the end of the input. This is necessary
-     * to make deflate deterministic.
-     */
-    if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
-
-    Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
-    do {
-        Assert(cur_match < s->strstart, "no future");
-        match = s->window + cur_match;
-
-        /* Skip to next match if the match length cannot increase
-         * or if the match length is less than 2:
-         */
-#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
-        /* This code assumes sizeof(unsigned short) == 2. Do not use
-         * UNALIGNED_OK if your compiler uses a different size.
-         */
-        if (*(ushf*)(match+best_len-1) != scan_end ||
-            *(ushf*)match != scan_start) continue;
-
-        /* It is not necessary to compare scan[2] and match[2] since they are
-         * always equal when the other bytes match, given that the hash keys
-         * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
-         * strstart+3, +5, ... up to strstart+257. We check for insufficient
-         * lookahead only every 4th comparison; the 128th check will be made
-         * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
-         * necessary to put more guard bytes at the end of the window, or
-         * to check more often for insufficient lookahead.
-         */
-        Assert(scan[2] == match[2], "scan[2]?");
-        scan++, match++;
-        do {
-        } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 scan < strend);
-        /* The funny "do {}" generates better code on most compilers */
-
-        /* Here, scan <= window+strstart+257 */
-        Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-        if (*scan == *match) scan++;
-
-        len = (MAX_MATCH - 1) - (int)(strend-scan);
-        scan = strend - (MAX_MATCH-1);
-
-#else /* UNALIGNED_OK */
-
-        if (match[best_len]   != scan_end  ||
-            match[best_len-1] != scan_end1 ||
-            *match            != *scan     ||
-            *++match          != scan[1])      continue;
-
-        /* The check at best_len-1 can be removed because it will be made
-         * again later. (This heuristic is not always a win.)
-         * It is not necessary to compare scan[2] and match[2] since they
-         * are always equal when the other bytes match, given that
-         * the hash keys are equal and that HASH_BITS >= 8.
-         */
-        scan += 2, match++;
-        Assert(*scan == *match, "match[2]?");
-
-        /* We check for insufficient lookahead only every 8th comparison;
-         * the 256th check will be made at strstart+258.
-         */
-        do {
-        } while (*++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 scan < strend);
-
-        Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
-        len = MAX_MATCH - (int)(strend - scan);
-        scan = strend - MAX_MATCH;
-
-#endif /* UNALIGNED_OK */
-
-        if (len > best_len) {
-            s->match_start = cur_match;
-            best_len = len;
-            if (len >= nice_match) break;
-#ifdef UNALIGNED_OK
-            scan_end = *(ushf*)(scan+best_len-1);
-#else
-            scan_end1  = scan[best_len-1];
-            scan_end   = scan[best_len];
-#endif
-        }
-    } while ((cur_match = prev[cur_match & wmask]) > limit
-             && --chain_length != 0);
-
-    if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
-    return s->lookahead;
-}
-#endif /* ASMV */
-#endif /* FASTEST */
-
-/* ---------------------------------------------------------------------------
- * Optimized version for level == 1 or strategy == Z_RLE only
- */
-local uInt longest_match_fast(s, cur_match)
-    deflate_state *s;
-    IPos cur_match;                             /* current match */
-{
-    register Bytef *scan = s->window + s->strstart; /* current string */
-    register Bytef *match;                       /* matched string */
-    register int len;                           /* length of current match */
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-
-    /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-     * It is easy to get rid of this optimization if necessary.
-     */
-    Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
-    Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
-    Assert(cur_match < s->strstart, "no future");
-
-    match = s->window + cur_match;
-
-    /* Return failure if the match length is less than 2:
-     */
-    if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1;
-
-    /* The check at best_len-1 can be removed because it will be made
-     * again later. (This heuristic is not always a win.)
-     * It is not necessary to compare scan[2] and match[2] since they
-     * are always equal when the other bytes match, given that
-     * the hash keys are equal and that HASH_BITS >= 8.
-     */
-    scan += 2, match += 2;
-    Assert(*scan == *match, "match[2]?");
-
-    /* We check for insufficient lookahead only every 8th comparison;
-     * the 256th check will be made at strstart+258.
-     */
-    do {
-    } while (*++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             scan < strend);
-
-    Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
-    len = MAX_MATCH - (int)(strend - scan);
-
-    if (len < MIN_MATCH) return MIN_MATCH - 1;
-
-    s->match_start = cur_match;
-    return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead;
-}
-
-#ifdef DEBUG
-/* ===========================================================================
- * Check that the match at match_start is indeed a match.
- */
-local void check_match(s, start, match, length)
-    deflate_state *s;
-    IPos start, match;
-    int length;
-{
-    /* check that the match is indeed a match */
-    if (zmemcmp(s->window + match,
-                s->window + start, length) != EQUAL) {
-        fprintf(stderr, " start %u, match %u, length %d\n",
-                start, match, length);
-        do {
-            fprintf(stderr, "%c%c", s->window[match++], s->window[start++]);
-        } while (--length != 0);
-        z_error("invalid match");
-    }
-    if (z_verbose > 1) {
-        fprintf(stderr,"\\[%d,%d]", start-match, length);
-        do { putc(s->window[start++], stderr); } while (--length != 0);
-    }
-}
-#else
-#  define check_match(s, start, match, length)
-#endif /* DEBUG */
-
-/* ===========================================================================
- * Fill the window when the lookahead becomes insufficient.
- * Updates strstart and lookahead.
- *
- * IN assertion: lookahead < MIN_LOOKAHEAD
- * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
- *    At least one byte has been read, or avail_in == 0; reads are
- *    performed for at least two bytes (required for the zip translate_eol
- *    option -- not supported here).
- */
-local void fill_window(s)
-    deflate_state *s;
-{
-    register unsigned n, m;
-    register Posf *p;
-    unsigned more;    /* Amount of free space at the end of the window. */
-    uInt wsize = s->w_size;
-
-    do {
-        more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
-
-        /* Deal with !@#$% 64K limit: */
-        if (sizeof(int) <= 2) {
-            if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
-                more = wsize;
-
-            } else if (more == (unsigned)(-1)) {
-                /* Very unlikely, but possible on 16 bit machine if
-                 * strstart == 0 && lookahead == 1 (input done a byte at time)
-                 */
-                more--;
-            }
-        }
-
-        /* If the window is almost full and there is insufficient lookahead,
-         * move the upper half to the lower one to make room in the upper half.
-         */
-        if (s->strstart >= wsize+MAX_DIST(s)) {
-
-            zmemcpy(s->window, s->window+wsize, (unsigned)wsize);
-            s->match_start -= wsize;
-            s->strstart    -= wsize; /* we now have strstart >= MAX_DIST */
-            s->block_start -= (long) wsize;
-
-            /* Slide the hash table (could be avoided with 32 bit values
-               at the expense of memory usage). We slide even when level == 0
-               to keep the hash table consistent if we switch back to level > 0
-               later. (Using level 0 permanently is not an optimal usage of
-               zlib, so we don't care about this pathological case.)
-             */
-            n = s->hash_size;
-            p = &s->head[n];
-            do {
-                m = *--p;
-                *p = (Pos)(m >= wsize ? m-wsize : NIL);
-            } while (--n);
-
-            n = wsize;
-#ifndef FASTEST
-            p = &s->prev[n];
-            do {
-                m = *--p;
-                *p = (Pos)(m >= wsize ? m-wsize : NIL);
-                /* If n is not on any hash chain, prev[n] is garbage but
-                 * its value will never be used.
-                 */
-            } while (--n);
-#endif
-            more += wsize;
-        }
-        if (s->strm->avail_in == 0) return;
-
-        /* If there was no sliding:
-         *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
-         *    more == window_size - lookahead - strstart
-         * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
-         * => more >= window_size - 2*WSIZE + 2
-         * In the BIG_MEM or MMAP case (not yet supported),
-         *   window_size == input_size + MIN_LOOKAHEAD  &&
-         *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
-         * Otherwise, window_size == 2*WSIZE so more >= 2.
-         * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
-         */
-        Assert(more >= 2, "more < 2");
-
-        n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more);
-        s->lookahead += n;
-
-        /* Initialize the hash value now that we have some input: */
-        if (s->lookahead >= MIN_MATCH) {
-            s->ins_h = s->window[s->strstart];
-            UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
-            Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
-        }
-        /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
-         * but this is not important since only literal bytes will be emitted.
-         */
-
-    } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
-}
-
-/* ===========================================================================
- * Flush the current block, with given end-of-file flag.
- * IN assertion: strstart is set to the end of the current match.
- */
-#define FLUSH_BLOCK_ONLY(s, eof) { \
-   _tr_flush_block(s, (s->block_start >= 0L ? \
-                   (charf *)&s->window[(unsigned)s->block_start] : \
-                   (charf *)Z_NULL), \
-                (ulg)((long)s->strstart - s->block_start), \
-                (eof)); \
-   s->block_start = s->strstart; \
-   flush_pending(s->strm); \
-   Tracev((stderr,"[FLUSH]")); \
-}
-
-/* Same but force premature exit if necessary. */
-#define FLUSH_BLOCK(s, eof) { \
-   FLUSH_BLOCK_ONLY(s, eof); \
-   if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \
-}
-
-/* ===========================================================================
- * Copy without compression as much as possible from the input stream, return
- * the current block state.
- * This function does not insert new strings in the dictionary since
- * uncompressible data is probably not useful. This function is used
- * only for the level=0 compression option.
- * NOTE: this function should be optimized to avoid extra copying from
- * window to pending_buf.
- */
-local block_state deflate_stored(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
-     * to pending_buf_size, and each stored block has a 5 byte header:
-     */
-    ulg max_block_size = 0xffff;
-    ulg max_start;
-
-    if (max_block_size > s->pending_buf_size - 5) {
-        max_block_size = s->pending_buf_size - 5;
-    }
-
-    /* Copy as much as possible from input to output: */
-    for (;;) {
-        /* Fill the window as much as possible: */
-        if (s->lookahead <= 1) {
-
-            Assert(s->strstart < s->w_size+MAX_DIST(s) ||
-                   s->block_start >= (long)s->w_size, "slide too late");
-
-            fill_window(s);
-            if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more;
-
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-        Assert(s->block_start >= 0L, "block gone");
-
-        s->strstart += s->lookahead;
-        s->lookahead = 0;
-
-        /* Emit a stored block if pending_buf will be full: */
-        max_start = s->block_start + max_block_size;
-        if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
-            /* strstart == 0 is possible when wraparound on 16-bit machine */
-            s->lookahead = (uInt)(s->strstart - max_start);
-            s->strstart = (uInt)max_start;
-            FLUSH_BLOCK(s, 0);
-        }
-        /* Flush if we may have to slide, otherwise block_start may become
-         * negative and the data will be gone:
-         */
-        if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) {
-            FLUSH_BLOCK(s, 0);
-        }
-    }
-    FLUSH_BLOCK(s, flush == Z_FINISH);
-    return flush == Z_FINISH ? finish_done : block_done;
-}
-
-/* ===========================================================================
- * Compress as much as possible from the input stream, return the current
- * block state.
- * This function does not perform lazy evaluation of matches and inserts
- * new strings in the dictionary only for unmatched strings or for short
- * matches. It is used only for the fast compression options.
- */
-local block_state deflate_fast(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    IPos hash_head = NIL; /* head of the hash chain */
-    int bflush;           /* set if current block must be flushed */
-
-    for (;;) {
-        /* Make sure that we always have enough lookahead, except
-         * at the end of the input file. We need MAX_MATCH bytes
-         * for the next match, plus MIN_MATCH bytes to insert the
-         * string following the next match.
-         */
-        if (s->lookahead < MIN_LOOKAHEAD) {
-            fill_window(s);
-            if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
-                return need_more;
-            }
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-
-        /* Insert the string window[strstart .. strstart+2] in the
-         * dictionary, and set hash_head to the head of the hash chain:
-         */
-        if (s->lookahead >= MIN_MATCH) {
-            INSERT_STRING(s, s->strstart, hash_head);
-        }
-
-        /* Find the longest match, discarding those <= prev_length.
-         * At this point we have always match_length < MIN_MATCH
-         */
-        if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) {
-            /* To simplify the code, we prevent matches with the string
-             * of window index 0 (in particular we have to avoid a match
-             * of the string with itself at the start of the input file).
-             */
-#ifdef FASTEST
-            if ((s->strategy < Z_HUFFMAN_ONLY) ||
-                (s->strategy == Z_RLE && s->strstart - hash_head == 1)) {
-                s->match_length = longest_match_fast (s, hash_head);
-            }
-#else
-            if (s->strategy < Z_HUFFMAN_ONLY) {
-                s->match_length = longest_match (s, hash_head);
-            } else if (s->strategy == Z_RLE && s->strstart - hash_head == 1) {
-                s->match_length = longest_match_fast (s, hash_head);
-            }
-#endif
-            /* longest_match() or longest_match_fast() sets match_start */
-        }
-        if (s->match_length >= MIN_MATCH) {
-            check_match(s, s->strstart, s->match_start, s->match_length);
-
-            _tr_tally_dist(s, s->strstart - s->match_start,
-                           s->match_length - MIN_MATCH, bflush);
-
-            s->lookahead -= s->match_length;
-
-            /* Insert new strings in the hash table only if the match length
-             * is not too large. This saves time but degrades compression.
-             */
-#ifndef FASTEST
-            if (s->match_length <= s->max_insert_length &&
-                s->lookahead >= MIN_MATCH) {
-                s->match_length--; /* string at strstart already in table */
-                do {
-                    s->strstart++;
-                    INSERT_STRING(s, s->strstart, hash_head);
-                    /* strstart never exceeds WSIZE-MAX_MATCH, so there are
-                     * always MIN_MATCH bytes ahead.
-                     */
-                } while (--s->match_length != 0);
-                s->strstart++;
-            } else
-#endif
-            {
-                s->strstart += s->match_length;
-                s->match_length = 0;
-                s->ins_h = s->window[s->strstart];
-                UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
-                Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
-                /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
-                 * matter since it will be recomputed at next deflate call.
-                 */
-            }
-        } else {
-            /* No match, output a literal byte */
-            Tracevv((stderr,"%c", s->window[s->strstart]));
-            _tr_tally_lit (s, s->window[s->strstart], bflush);
-            s->lookahead--;
-            s->strstart++;
-        }
-        if (bflush) FLUSH_BLOCK(s, 0);
-    }
-    FLUSH_BLOCK(s, flush == Z_FINISH);
-    return flush == Z_FINISH ? finish_done : block_done;
-}
-
-#ifndef FASTEST
-/* ===========================================================================
- * Same as above, but achieves better compression. We use a lazy
- * evaluation for matches: a match is finally adopted only if there is
- * no better match at the next window position.
- */
-local block_state deflate_slow(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    IPos hash_head = NIL;    /* head of hash chain */
-    int bflush;              /* set if current block must be flushed */
-
-    /* Process the input block. */
-    for (;;) {
-        /* Make sure that we always have enough lookahead, except
-         * at the end of the input file. We need MAX_MATCH bytes
-         * for the next match, plus MIN_MATCH bytes to insert the
-         * string following the next match.
-         */
-        if (s->lookahead < MIN_LOOKAHEAD) {
-            fill_window(s);
-            if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
-                return need_more;
-            }
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-
-        /* Insert the string window[strstart .. strstart+2] in the
-         * dictionary, and set hash_head to the head of the hash chain:
-         */
-        if (s->lookahead >= MIN_MATCH) {
-            INSERT_STRING(s, s->strstart, hash_head);
-        }
-
-        /* Find the longest match, discarding those <= prev_length.
-         */
-        s->prev_length = s->match_length, s->prev_match = s->match_start;
-        s->match_length = MIN_MATCH-1;
-
-        if (hash_head != NIL && s->prev_length < s->max_lazy_match &&
-            s->strstart - hash_head <= MAX_DIST(s)) {
-            /* To simplify the code, we prevent matches with the string
-             * of window index 0 (in particular we have to avoid a match
-             * of the string with itself at the start of the input file).
-             */
-            if (s->strategy < Z_HUFFMAN_ONLY) {
-                s->match_length = longest_match (s, hash_head);
-            } else if (s->strategy == Z_RLE && s->strstart - hash_head == 1) {
-                s->match_length = longest_match_fast (s, hash_head);
-            }
-            /* longest_match() or longest_match_fast() sets match_start */
-
-            if (s->match_length <= 5 && (s->strategy == Z_FILTERED
-#if TOO_FAR <= 32767
-                || (s->match_length == MIN_MATCH &&
-                    s->strstart - s->match_start > TOO_FAR)
-#endif
-                )) {
-
-                /* If prev_match is also MIN_MATCH, match_start is garbage
-                 * but we will ignore the current match anyway.
-                 */
-                s->match_length = MIN_MATCH-1;
-            }
-        }
-        /* If there was a match at the previous step and the current
-         * match is not better, output the previous match:
-         */
-        if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) {
-            uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
-            /* Do not insert strings in hash table beyond this. */
-
-            check_match(s, s->strstart-1, s->prev_match, s->prev_length);
-
-            _tr_tally_dist(s, s->strstart -1 - s->prev_match,
-                           s->prev_length - MIN_MATCH, bflush);
-
-            /* Insert in hash table all strings up to the end of the match.
-             * strstart-1 and strstart are already inserted. If there is not
-             * enough lookahead, the last two strings are not inserted in
-             * the hash table.
-             */
-            s->lookahead -= s->prev_length-1;
-            s->prev_length -= 2;
-            do {
-                if (++s->strstart <= max_insert) {
-                    INSERT_STRING(s, s->strstart, hash_head);
-                }
-            } while (--s->prev_length != 0);
-            s->match_available = 0;
-            s->match_length = MIN_MATCH-1;
-            s->strstart++;
-
-            if (bflush) FLUSH_BLOCK(s, 0);
-
-        } else if (s->match_available) {
-            /* If there was no match at the previous position, output a
-             * single literal. If there was a match but the current match
-             * is longer, truncate the previous match to a single literal.
-             */
-            Tracevv((stderr,"%c", s->window[s->strstart-1]));
-            _tr_tally_lit(s, s->window[s->strstart-1], bflush);
-            if (bflush) {
-                FLUSH_BLOCK_ONLY(s, 0);
-            }
-            s->strstart++;
-            s->lookahead--;
-            if (s->strm->avail_out == 0) return need_more;
-        } else {
-            /* There is no previous match to compare with, wait for
-             * the next step to decide.
-             */
-            s->match_available = 1;
-            s->strstart++;
-            s->lookahead--;
-        }
-    }
-    Assert (flush != Z_NO_FLUSH, "no flush?");
-    if (s->match_available) {
-        Tracevv((stderr,"%c", s->window[s->strstart-1]));
-        _tr_tally_lit(s, s->window[s->strstart-1], bflush);
-        s->match_available = 0;
-    }
-    FLUSH_BLOCK(s, flush == Z_FINISH);
-    return flush == Z_FINISH ? finish_done : block_done;
-}
-#endif /* FASTEST */
diff --git a/klibc/klibc/zlib/deflate.h b/klibc/klibc/zlib/deflate.h
deleted file mode 100644 (file)
index bc79532..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-/* deflate.h -- internal compression state
- * Copyright (C) 1995-2002 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id: deflate.h,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#ifndef DEFLATE_H
-#define DEFLATE_H
-
-#include "zutil.h"
-
-/* define NO_GZIP when compiling if you want to disable gzip header and
-   trailer creation by deflate().  NO_GZIP would be used to avoid linking in
-   the crc code when it is not needed.  For shared libraries, gzip encoding
-   should be left enabled. */
-#ifndef NO_GZIP
-#  define GZIP
-#endif
-
-/* ===========================================================================
- * Internal compression state.
- */
-
-#define LENGTH_CODES 29
-/* number of length codes, not counting the special END_BLOCK code */
-
-#define LITERALS  256
-/* number of literal bytes 0..255 */
-
-#define L_CODES (LITERALS+1+LENGTH_CODES)
-/* number of Literal or Length codes, including the END_BLOCK code */
-
-#define D_CODES   30
-/* number of distance codes */
-
-#define BL_CODES  19
-/* number of codes used to transfer the bit lengths */
-
-#define HEAP_SIZE (2*L_CODES+1)
-/* maximum heap size */
-
-#define MAX_BITS 15
-/* All codes must not exceed MAX_BITS bits */
-
-#define INIT_STATE    42
-#define BUSY_STATE   113
-#define FINISH_STATE 666
-/* Stream status */
-
-
-/* Data structure describing a single value and its code string. */
-typedef struct ct_data_s {
-    union {
-        ush  freq;       /* frequency count */
-        ush  code;       /* bit string */
-    } fc;
-    union {
-        ush  dad;        /* father node in Huffman tree */
-        ush  len;        /* length of bit string */
-    } dl;
-} FAR ct_data;
-
-#define Freq fc.freq
-#define Code fc.code
-#define Dad  dl.dad
-#define Len  dl.len
-
-typedef struct static_tree_desc_s  static_tree_desc;
-
-typedef struct tree_desc_s {
-    ct_data *dyn_tree;           /* the dynamic tree */
-    int     max_code;            /* largest code with non zero frequency */
-    static_tree_desc *stat_desc; /* the corresponding static tree */
-} FAR tree_desc;
-
-typedef ush Pos;
-typedef Pos FAR Posf;
-typedef unsigned IPos;
-
-/* A Pos is an index in the character window. We use short instead of int to
- * save space in the various tables. IPos is used only for parameter passing.
- */
-
-typedef struct internal_state {
-    z_streamp strm;      /* pointer back to this zlib stream */
-    int   status;        /* as the name implies */
-    Bytef *pending_buf;  /* output still pending */
-    ulg   pending_buf_size; /* size of pending_buf */
-    Bytef *pending_out;  /* next pending byte to output to the stream */
-    int   pending;       /* nb of bytes in the pending buffer */
-    int   wrap;          /* bit 0 true for zlib, bit 1 true for gzip */
-    Byte  data_type;     /* UNKNOWN, BINARY or ASCII */
-    Byte  method;        /* STORED (for zip only) or DEFLATED */
-    int   last_flush;    /* value of flush param for previous deflate call */
-
-                /* used by deflate.c: */
-
-    uInt  w_size;        /* LZ77 window size (32K by default) */
-    uInt  w_bits;        /* log2(w_size)  (8..16) */
-    uInt  w_mask;        /* w_size - 1 */
-
-    Bytef *window;
-    /* Sliding window. Input bytes are read into the second half of the window,
-     * and move to the first half later to keep a dictionary of at least wSize
-     * bytes. With this organization, matches are limited to a distance of
-     * wSize-MAX_MATCH bytes, but this ensures that IO is always
-     * performed with a length multiple of the block size. Also, it limits
-     * the window size to 64K, which is quite useful on MSDOS.
-     * To do: use the user input buffer as sliding window.
-     */
-
-    ulg window_size;
-    /* Actual size of window: 2*wSize, except when the user input buffer
-     * is directly used as sliding window.
-     */
-
-    Posf *prev;
-    /* Link to older string with same hash index. To limit the size of this
-     * array to 64K, this link is maintained only for the last 32K strings.
-     * An index in this array is thus a window index modulo 32K.
-     */
-
-    Posf *head; /* Heads of the hash chains or NIL. */
-
-    uInt  ins_h;          /* hash index of string to be inserted */
-    uInt  hash_size;      /* number of elements in hash table */
-    uInt  hash_bits;      /* log2(hash_size) */
-    uInt  hash_mask;      /* hash_size-1 */
-
-    uInt  hash_shift;
-    /* Number of bits by which ins_h must be shifted at each input
-     * step. It must be such that after MIN_MATCH steps, the oldest
-     * byte no longer takes part in the hash key, that is:
-     *   hash_shift * MIN_MATCH >= hash_bits
-     */
-
-    long block_start;
-    /* Window position at the beginning of the current output block. Gets
-     * negative when the window is moved backwards.
-     */
-
-    uInt match_length;           /* length of best match */
-    IPos prev_match;             /* previous match */
-    int match_available;         /* set if previous match exists */
-    uInt strstart;               /* start of string to insert */
-    uInt match_start;            /* start of matching string */
-    uInt lookahead;              /* number of valid bytes ahead in window */
-
-    uInt prev_length;
-    /* Length of the best match at previous step. Matches not greater than this
-     * are discarded. This is used in the lazy match evaluation.
-     */
-
-    uInt max_chain_length;
-    /* To speed up deflation, hash chains are never searched beyond this
-     * length.  A higher limit improves compression ratio but degrades the
-     * speed.
-     */
-
-    uInt max_lazy_match;
-    /* Attempt to find a better match only when the current match is strictly
-     * smaller than this value. This mechanism is used only for compression
-     * levels >= 4.
-     */
-#   define max_insert_length  max_lazy_match
-    /* Insert new strings in the hash table only if the match length is not
-     * greater than this length. This saves time but degrades compression.
-     * max_insert_length is used only for compression levels <= 3.
-     */
-
-    int level;    /* compression level (1..9) */
-    int strategy; /* favor or force Huffman coding*/
-
-    uInt good_match;
-    /* Use a faster search when the previous match is longer than this */
-
-    int nice_match; /* Stop searching when current match exceeds this */
-
-                /* used by trees.c: */
-    /* Didn't use ct_data typedef below to supress compiler warning */
-    struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
-    struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
-    struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
-
-    struct tree_desc_s l_desc;               /* desc. for literal tree */
-    struct tree_desc_s d_desc;               /* desc. for distance tree */
-    struct tree_desc_s bl_desc;              /* desc. for bit length tree */
-
-    ush bl_count[MAX_BITS+1];
-    /* number of codes at each bit length for an optimal tree */
-
-    int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
-    int heap_len;               /* number of elements in the heap */
-    int heap_max;               /* element of largest frequency */
-    /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
-     * The same heap array is used to build all trees.
-     */
-
-    uch depth[2*L_CODES+1];
-    /* Depth of each subtree used as tie breaker for trees of equal frequency
-     */
-
-    uchf *l_buf;          /* buffer for literals or lengths */
-
-    uInt  lit_bufsize;
-    /* Size of match buffer for literals/lengths.  There are 4 reasons for
-     * limiting lit_bufsize to 64K:
-     *   - frequencies can be kept in 16 bit counters
-     *   - if compression is not successful for the first block, all input
-     *     data is still in the window so we can still emit a stored block even
-     *     when input comes from standard input.  (This can also be done for
-     *     all blocks if lit_bufsize is not greater than 32K.)
-     *   - if compression is not successful for a file smaller than 64K, we can
-     *     even emit a stored file instead of a stored block (saving 5 bytes).
-     *     This is applicable only for zip (not gzip or zlib).
-     *   - creating new Huffman trees less frequently may not provide fast
-     *     adaptation to changes in the input data statistics. (Take for
-     *     example a binary file with poorly compressible code followed by
-     *     a highly compressible string table.) Smaller buffer sizes give
-     *     fast adaptation but have of course the overhead of transmitting
-     *     trees more frequently.
-     *   - I can't count above 4
-     */
-
-    uInt last_lit;      /* running index in l_buf */
-
-    ushf *d_buf;
-    /* Buffer for distances. To simplify the code, d_buf and l_buf have
-     * the same number of elements. To use different lengths, an extra flag
-     * array would be necessary.
-     */
-
-    ulg opt_len;        /* bit length of current block with optimal trees */
-    ulg static_len;     /* bit length of current block with static trees */
-    uInt matches;       /* number of string matches in current block */
-    int last_eob_len;   /* bit length of EOB code for last block */
-
-#ifdef DEBUG
-    ulg compressed_len; /* total bit length of compressed file mod 2^32 */
-    ulg bits_sent;      /* bit length of compressed data sent mod 2^32 */
-#endif
-
-    ush bi_buf;
-    /* Output buffer. bits are inserted starting at the bottom (least
-     * significant bits).
-     */
-    int bi_valid;
-    /* Number of valid bits in bi_buf.  All bits above the last valid bit
-     * are always zero.
-     */
-
-} FAR deflate_state;
-
-/* Output a byte on the stream.
- * IN assertion: there is enough room in pending_buf.
- */
-#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
-
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-#define MAX_DIST(s)  ((s)->w_size-MIN_LOOKAHEAD)
-/* In order to simplify the code, particularly on 16 bit machines, match
- * distances are limited to MAX_DIST instead of WSIZE.
- */
-
-        /* in trees.c */
-void _tr_init         OF((deflate_state *s));
-int  _tr_tally        OF((deflate_state *s, unsigned dist, unsigned lc));
-void _tr_flush_block  OF((deflate_state *s, charf *buf, ulg stored_len,
-                          int eof));
-void _tr_align        OF((deflate_state *s));
-void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len,
-                          int eof));
-
-#define d_code(dist) \
-   ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
-/* Mapping from a distance to a distance code. dist is the distance - 1 and
- * must not have side effects. _dist_code[256] and _dist_code[257] are never
- * used.
- */
-
-#ifndef DEBUG
-/* Inline versions of _tr_tally for speed: */
-
-#if defined(GEN_TREES_H) || !defined(STDC)
-  extern uch _length_code[];
-  extern uch _dist_code[];
-#else
-  extern const uch _length_code[];
-  extern const uch _dist_code[];
-#endif
-
-# define _tr_tally_lit(s, c, flush) \
-  { uch cc = (c); \
-    s->d_buf[s->last_lit] = 0; \
-    s->l_buf[s->last_lit++] = cc; \
-    s->dyn_ltree[cc].Freq++; \
-    flush = (s->last_lit == s->lit_bufsize-1); \
-   }
-# define _tr_tally_dist(s, distance, length, flush) \
-  { uch len = (length); \
-    ush dist = (distance); \
-    s->d_buf[s->last_lit] = dist; \
-    s->l_buf[s->last_lit++] = len; \
-    dist--; \
-    s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
-    s->dyn_dtree[d_code(dist)].Freq++; \
-    flush = (s->last_lit == s->lit_bufsize-1); \
-  }
-#else
-# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
-# define _tr_tally_dist(s, distance, length, flush) \
-              flush = _tr_tally(s, distance, length)
-#endif
-
-#endif /* DEFLATE_H */
diff --git a/klibc/klibc/zlib/gzio.c b/klibc/klibc/zlib/gzio.c
deleted file mode 100644 (file)
index cb56b8d..0000000
+++ /dev/null
@@ -1,1008 +0,0 @@
-/* gzio.c -- IO on .gz files
- * Copyright (C) 1995-2003 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- *
- * Compile this file with -DNO_GZCOMPRESS to avoid the compression code.
- */
-
-/* @(#) $Id: gzio.c,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#include <stdio.h>
-
-#include "zutil.h"
-
-#ifdef NO_DEFLATE       /* for compatiblity with old definition */
-#  define NO_GZCOMPRESS
-#endif
-
-#ifndef NO_DUMMY_DECL
-struct internal_state {int dummy;}; /* for buggy compilers */
-#endif
-
-#ifndef Z_BUFSIZE
-#  ifdef MAXSEG_64K
-#    define Z_BUFSIZE 4096 /* minimize memory usage for 16-bit DOS */
-#  else
-#    define Z_BUFSIZE 16384
-#  endif
-#endif
-#ifndef Z_PRINTF_BUFSIZE
-#  define Z_PRINTF_BUFSIZE 4096
-#endif
-
-#ifdef __MVS__
-#  pragma map (fdopen , "\174\174FDOPEN")
-   FILE *fdopen(int, const char *);
-#endif
-
-#ifndef STDC
-extern voidp  malloc OF((uInt size));
-extern void   free   OF((voidpf ptr));
-#endif
-
-#define ALLOC(size) malloc(size)
-#define TRYFREE(p) {if (p) free(p);}
-
-static int const gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */
-
-/* gzip flag byte */
-#define ASCII_FLAG   0x01 /* bit 0 set: file probably ascii text */
-#define HEAD_CRC     0x02 /* bit 1 set: header CRC present */
-#define EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
-#define ORIG_NAME    0x08 /* bit 3 set: original file name present */
-#define COMMENT      0x10 /* bit 4 set: file comment present */
-#define RESERVED     0xE0 /* bits 5..7: reserved */
-
-typedef struct gz_stream {
-    z_stream stream;
-    int      z_err;   /* error code for last stream operation */
-    int      z_eof;   /* set if end of input file */
-    FILE     *file;   /* .gz file */
-    Byte     *inbuf;  /* input buffer */
-    Byte     *outbuf; /* output buffer */
-    uLong    crc;     /* crc32 of uncompressed data */
-    char     *msg;    /* error message */
-    char     *path;   /* path name for debugging only */
-    int      transparent; /* 1 if input file is not a .gz file */
-    char     mode;    /* 'w' or 'r' */
-    z_off_t  start;   /* start of compressed data in file (header skipped) */
-    z_off_t  in;      /* bytes into deflate or inflate */
-    z_off_t  out;     /* bytes out of deflate or inflate */
-    int      back;    /* one character push-back */
-    int      last;    /* true if push-back is last character */
-} gz_stream;
-
-
-local gzFile gz_open      OF((const char *path, const char *mode, int  fd));
-local int do_flush        OF((gzFile file, int flush));
-local int    get_byte     OF((gz_stream *s));
-local void   check_header OF((gz_stream *s));
-local int    destroy      OF((gz_stream *s));
-local void   putLong      OF((FILE *file, uLong x));
-local uLong  getLong      OF((gz_stream *s));
-
-/* ===========================================================================
-     Opens a gzip (.gz) file for reading or writing. The mode parameter
-   is as in fopen ("rb" or "wb"). The file is given either by file descriptor
-   or path name (if fd == -1).
-     gz_open returns NULL if the file could not be opened or if there was
-   insufficient memory to allocate the (de)compression state; errno
-   can be checked to distinguish the two cases (if errno is zero, the
-   zlib error is Z_MEM_ERROR).
-*/
-local gzFile gz_open (path, mode, fd)
-    const char *path;
-    const char *mode;
-    int  fd;
-{
-    int err;
-    int level = Z_DEFAULT_COMPRESSION; /* compression level */
-    int strategy = Z_DEFAULT_STRATEGY; /* compression strategy */
-    char *p = (char*)mode;
-    gz_stream *s;
-    char fmode[80]; /* copy of mode, without the compression level */
-    char *m = fmode;
-
-    if (!path || !mode) return Z_NULL;
-
-    s = (gz_stream *)ALLOC(sizeof(gz_stream));
-    if (!s) return Z_NULL;
-
-    s->stream.zalloc = (alloc_func)0;
-    s->stream.zfree = (free_func)0;
-    s->stream.opaque = (voidpf)0;
-    s->stream.next_in = s->inbuf = Z_NULL;
-    s->stream.next_out = s->outbuf = Z_NULL;
-    s->stream.avail_in = s->stream.avail_out = 0;
-    s->file = NULL;
-    s->z_err = Z_OK;
-    s->z_eof = 0;
-    s->in = 0;
-    s->out = 0;
-    s->back = EOF;
-    s->crc = crc32(0L, Z_NULL, 0);
-    s->msg = NULL;
-    s->transparent = 0;
-
-    s->path = (char*)ALLOC(strlen(path)+1);
-    if (s->path == NULL) {
-        return destroy(s), (gzFile)Z_NULL;
-    }
-    strcpy(s->path, path); /* do this early for debugging */
-
-    s->mode = '\0';
-    do {
-        if (*p == 'r') s->mode = 'r';
-        if (*p == 'w' || *p == 'a') s->mode = 'w';
-        if (*p >= '0' && *p <= '9') {
-            level = *p - '0';
-        } else if (*p == 'f') {
-          strategy = Z_FILTERED;
-        } else if (*p == 'h') {
-          strategy = Z_HUFFMAN_ONLY;
-        } else if (*p == 'R') {
-          strategy = Z_RLE;
-        } else {
-            *m++ = *p; /* copy the mode */
-        }
-    } while (*p++ && m != fmode + sizeof(fmode));
-    if (s->mode == '\0') return destroy(s), (gzFile)Z_NULL;
-
-    if (s->mode == 'w') {
-#ifdef NO_GZCOMPRESS
-        err = Z_STREAM_ERROR;
-#else
-        err = deflateInit2(&(s->stream), level,
-                           Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, strategy);
-        /* windowBits is passed < 0 to suppress zlib header */
-
-        s->stream.next_out = s->outbuf = (Byte*)ALLOC(Z_BUFSIZE);
-#endif
-        if (err != Z_OK || s->outbuf == Z_NULL) {
-            return destroy(s), (gzFile)Z_NULL;
-        }
-    } else {
-        s->stream.next_in  = s->inbuf = (Byte*)ALLOC(Z_BUFSIZE);
-
-        err = inflateInit2(&(s->stream), -MAX_WBITS);
-        /* windowBits is passed < 0 to tell that there is no zlib header.
-         * Note that in this case inflate *requires* an extra "dummy" byte
-         * after the compressed stream in order to complete decompression and
-         * return Z_STREAM_END. Here the gzip CRC32 ensures that 4 bytes are
-         * present after the compressed stream.
-         */
-        if (err != Z_OK || s->inbuf == Z_NULL) {
-            return destroy(s), (gzFile)Z_NULL;
-        }
-    }
-    s->stream.avail_out = Z_BUFSIZE;
-
-    errno = 0;
-    s->file = fd < 0 ? F_OPEN(path, fmode) : (FILE*)fdopen(fd, fmode);
-
-    if (s->file == NULL) {
-        return destroy(s), (gzFile)Z_NULL;
-    }
-    if (s->mode == 'w') {
-        /* Write a very simple .gz header:
-         */
-        fprintf(s->file, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1],
-             Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, OS_CODE);
-        s->start = 10L;
-        /* We use 10L instead of ftell(s->file) to because ftell causes an
-         * fflush on some systems. This version of the library doesn't use
-         * start anyway in write mode, so this initialization is not
-         * necessary.
-         */
-    } else {
-        check_header(s); /* skip the .gz header */
-        s->start = ftell(s->file) - s->stream.avail_in;
-    }
-
-    return (gzFile)s;
-}
-
-/* ===========================================================================
-     Opens a gzip (.gz) file for reading or writing.
-*/
-gzFile ZEXPORT gzopen (path, mode)
-    const char *path;
-    const char *mode;
-{
-    return gz_open (path, mode, -1);
-}
-
-/* ===========================================================================
-     Associate a gzFile with the file descriptor fd. fd is not dup'ed here
-   to mimic the behavio(u)r of fdopen.
-*/
-gzFile ZEXPORT gzdopen (fd, mode)
-    int fd;
-    const char *mode;
-{
-    char name[20];
-
-    if (fd < 0) return (gzFile)Z_NULL;
-    sprintf(name, "<fd:%d>", fd); /* for debugging */
-
-    return gz_open (name, mode, fd);
-}
-
-/* ===========================================================================
- * Update the compression level and strategy
- */
-int ZEXPORT gzsetparams (file, level, strategy)
-    gzFile file;
-    int level;
-    int strategy;
-{
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;
-
-    /* Make room to allow flushing */
-    if (s->stream.avail_out == 0) {
-
-        s->stream.next_out = s->outbuf;
-        if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) {
-            s->z_err = Z_ERRNO;
-        }
-        s->stream.avail_out = Z_BUFSIZE;
-    }
-
-    return deflateParams (&(s->stream), level, strategy);
-}
-
-/* ===========================================================================
-     Read a byte from a gz_stream; update next_in and avail_in. Return EOF
-   for end of file.
-   IN assertion: the stream s has been sucessfully opened for reading.
-*/
-local int get_byte(s)
-    gz_stream *s;
-{
-    if (s->z_eof) return EOF;
-    if (s->stream.avail_in == 0) {
-        errno = 0;
-        s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);
-        if (s->stream.avail_in == 0) {
-            s->z_eof = 1;
-           /* klibc hack */
-            if (errno) s->z_err = Z_ERRNO;
-            return EOF;
-        }
-        s->stream.next_in = s->inbuf;
-    }
-    s->stream.avail_in--;
-    return *(s->stream.next_in)++;
-}
-
-/* ===========================================================================
-      Check the gzip header of a gz_stream opened for reading. Set the stream
-    mode to transparent if the gzip magic header is not present; set s->err
-    to Z_DATA_ERROR if the magic header is present but the rest of the header
-    is incorrect.
-    IN assertion: the stream s has already been created sucessfully;
-       s->stream.avail_in is zero for the first time, but may be non-zero
-       for concatenated .gz files.
-*/
-local void check_header(s)
-    gz_stream *s;
-{
-    int method; /* method byte */
-    int flags;  /* flags byte */
-    uInt len;
-    int c;
-
-    /* Assure two bytes in the buffer so we can peek ahead -- handle case
-       where first byte of header is at the end of the buffer after the last
-       gzip segment */
-    len = s->stream.avail_in;
-    if (len < 2) {
-        if (len) s->inbuf[0] = s->stream.next_in[0];
-        errno = 0;
-        len = fread(s->inbuf + len, 1, Z_BUFSIZE >> len, s->file);
-       /* klibc hack */
-        if (len == 0 && errno) s->z_err = Z_ERRNO;
-        s->stream.avail_in += len;
-        s->stream.next_in = s->inbuf;
-        if (s->stream.avail_in < 2) {
-            s->transparent = s->stream.avail_in;
-            return;
-        }
-    }
-
-    /* Peek ahead to check the gzip magic header */
-    if (s->stream.next_in[0] != gz_magic[0] ||
-        s->stream.next_in[1] != gz_magic[1]) {
-        s->transparent = 1;
-        return;
-    }
-    s->stream.avail_in -= 2;
-    s->stream.next_in += 2;
-
-    /* Check the rest of the gzip header */
-    method = get_byte(s);
-    flags = get_byte(s);
-    if (method != Z_DEFLATED || (flags & RESERVED) != 0) {
-        s->z_err = Z_DATA_ERROR;
-        return;
-    }
-
-    /* Discard time, xflags and OS code: */
-    for (len = 0; len < 6; len++) (void)get_byte(s);
-
-    if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */
-        len  =  (uInt)get_byte(s);
-        len += ((uInt)get_byte(s))<<8;
-        /* len is garbage if EOF but the loop below will quit anyway */
-        while (len-- != 0 && get_byte(s) != EOF) ;
-    }
-    if ((flags & ORIG_NAME) != 0) { /* skip the original file name */
-        while ((c = get_byte(s)) != 0 && c != EOF) ;
-    }
-    if ((flags & COMMENT) != 0) {   /* skip the .gz file comment */
-        while ((c = get_byte(s)) != 0 && c != EOF) ;
-    }
-    if ((flags & HEAD_CRC) != 0) {  /* skip the header crc */
-        for (len = 0; len < 2; len++) (void)get_byte(s);
-    }
-    s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK;
-}
-
- /* ===========================================================================
- * Cleanup then free the given gz_stream. Return a zlib error code.
-   Try freeing in the reverse order of allocations.
- */
-local int destroy (s)
-    gz_stream *s;
-{
-    int err = Z_OK;
-
-    if (!s) return Z_STREAM_ERROR;
-
-    TRYFREE(s->msg);
-
-    if (s->stream.state != NULL) {
-        if (s->mode == 'w') {
-#ifdef NO_GZCOMPRESS
-            err = Z_STREAM_ERROR;
-#else
-            err = deflateEnd(&(s->stream));
-#endif
-        } else if (s->mode == 'r') {
-            err = inflateEnd(&(s->stream));
-        }
-    }
-    if (s->file != NULL && fclose(s->file)) {
-#ifdef ESPIPE
-        if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */
-#endif
-            err = Z_ERRNO;
-    }
-    if (s->z_err < 0) err = s->z_err;
-
-    TRYFREE(s->inbuf);
-    TRYFREE(s->outbuf);
-    TRYFREE(s->path);
-    TRYFREE(s);
-    return err;
-}
-
-/* ===========================================================================
-     Reads the given number of uncompressed bytes from the compressed file.
-   gzread returns the number of bytes actually read (0 for end of file).
-*/
-int ZEXPORT gzread (file, buf, len)
-    gzFile file;
-    voidp buf;
-    unsigned len;
-{
-    gz_stream *s = (gz_stream*)file;
-    Bytef *start = (Bytef*)buf; /* starting point for crc computation */
-    Byte  *next_out; /* == stream.next_out but not forced far (for MSDOS) */
-
-    if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR;
-
-    if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1;
-    if (s->z_err == Z_STREAM_END) return 0;  /* EOF */
-
-    next_out = (Byte*)buf;
-    s->stream.next_out = (Bytef*)buf;
-    s->stream.avail_out = len;
-
-    if (s->stream.avail_out && s->back != EOF) {
-        *next_out++ = s->back;
-        s->stream.next_out++;
-        s->stream.avail_out--;
-        s->back = EOF;
-        s->out++;
-        if (s->last) {
-            s->z_err = Z_STREAM_END;
-            return 1;
-        }
-    }
-
-    while (s->stream.avail_out != 0) {
-
-        if (s->transparent) {
-            /* Copy first the lookahead bytes: */
-            uInt n = s->stream.avail_in;
-            if (n > s->stream.avail_out) n = s->stream.avail_out;
-            if (n > 0) {
-                zmemcpy(s->stream.next_out, s->stream.next_in, n);
-                next_out += n;
-                s->stream.next_out = next_out;
-                s->stream.next_in   += n;
-                s->stream.avail_out -= n;
-                s->stream.avail_in  -= n;
-            }
-            if (s->stream.avail_out > 0) {
-                s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out,
-                                             s->file);
-            }
-            len -= s->stream.avail_out;
-            s->in  += len;
-            s->out += len;
-            if (len == 0) s->z_eof = 1;
-            return (int)len;
-        }
-        if (s->stream.avail_in == 0 && !s->z_eof) {
-
-            errno = 0;
-            s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);
-            if (s->stream.avail_in == 0) {
-                s->z_eof = 1;
-                if (errno) {
-                    s->z_err = Z_ERRNO;
-                    break;
-                }
-            }
-            s->stream.next_in = s->inbuf;
-        }
-        s->in += s->stream.avail_in;
-        s->out += s->stream.avail_out;
-        s->z_err = inflate(&(s->stream), Z_NO_FLUSH);
-        s->in -= s->stream.avail_in;
-        s->out -= s->stream.avail_out;
-
-        if (s->z_err == Z_STREAM_END) {
-            /* Check CRC and original size */
-            s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));
-            start = s->stream.next_out;
-
-            if (getLong(s) != s->crc) {
-                s->z_err = Z_DATA_ERROR;
-            } else {
-                (void)getLong(s);
-                /* The uncompressed length returned by above getlong() may be
-                 * different from s->out in case of concatenated .gz files.
-                 * Check for such files:
-                 */
-                check_header(s);
-                if (s->z_err == Z_OK) {
-                    inflateReset(&(s->stream));
-                    s->crc = crc32(0L, Z_NULL, 0);
-                }
-            }
-        }
-        if (s->z_err != Z_OK || s->z_eof) break;
-    }
-    s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));
-
-    return (int)(len - s->stream.avail_out);
-}
-
-
-/* ===========================================================================
-      Reads one byte from the compressed file. gzgetc returns this byte
-   or -1 in case of end of file or error.
-*/
-int ZEXPORT gzgetc(file)
-    gzFile file;
-{
-    unsigned char c;
-
-    return gzread(file, &c, 1) == 1 ? c : -1;
-}
-
-
-/* ===========================================================================
-      Push one byte back onto the stream.
-*/
-int ZEXPORT gzungetc(c, file)
-    int c;
-    gzFile file;
-{
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL || s->mode != 'r' || c == EOF || s->back != EOF) return EOF;
-    s->back = c;
-    s->out--;
-    s->last = (s->z_err == Z_STREAM_END);
-    if (s->last) s->z_err = Z_OK;
-    s->z_eof = 0;
-    return c;
-}
-
-
-/* ===========================================================================
-      Reads bytes from the compressed file until len-1 characters are
-   read, or a newline character is read and transferred to buf, or an
-   end-of-file condition is encountered.  The string is then terminated
-   with a null character.
-      gzgets returns buf, or Z_NULL in case of error.
-
-      The current implementation is not optimized at all.
-*/
-char * ZEXPORT gzgets(file, buf, len)
-    gzFile file;
-    char *buf;
-    int len;
-{
-    char *b = buf;
-    if (buf == Z_NULL || len <= 0) return Z_NULL;
-
-    while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ;
-    *buf = '\0';
-    return b == buf && len > 0 ? Z_NULL : b;
-}
-
-
-#ifndef NO_GZCOMPRESS
-/* ===========================================================================
-     Writes the given number of uncompressed bytes into the compressed file.
-   gzwrite returns the number of bytes actually written (0 in case of error).
-*/
-int ZEXPORT gzwrite (file, buf, len)
-    gzFile file;
-    voidpc buf;
-    unsigned len;
-{
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;
-
-    s->stream.next_in = (Bytef*)buf;
-    s->stream.avail_in = len;
-
-    while (s->stream.avail_in != 0) {
-
-        if (s->stream.avail_out == 0) {
-
-            s->stream.next_out = s->outbuf;
-            if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) {
-                s->z_err = Z_ERRNO;
-                break;
-            }
-            s->stream.avail_out = Z_BUFSIZE;
-        }
-        s->in += s->stream.avail_in;
-        s->out += s->stream.avail_out;
-        s->z_err = deflate(&(s->stream), Z_NO_FLUSH);
-        s->in -= s->stream.avail_in;
-        s->out -= s->stream.avail_out;
-        if (s->z_err != Z_OK) break;
-    }
-    s->crc = crc32(s->crc, (const Bytef *)buf, len);
-
-    return (int)(len - s->stream.avail_in);
-}
-
-
-/* ===========================================================================
-     Converts, formats, and writes the args to the compressed file under
-   control of the format string, as in fprintf. gzprintf returns the number of
-   uncompressed bytes actually written (0 in case of error).
-*/
-#ifdef STDC
-#include <stdarg.h>
-
-int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...)
-{
-    char buf[Z_PRINTF_BUFSIZE];
-    va_list va;
-    int len;
-
-    buf[sizeof(buf) - 1] = 0;
-    va_start(va, format);
-#ifdef NO_vsnprintf
-#  ifdef HAS_vsprintf_void
-    (void)vsprintf(buf, format, va);
-    va_end(va);
-    for (len = 0; len < sizeof(buf); len++)
-        if (buf[len] == 0) break;
-#  else
-    len = vsprintf(buf, format, va);
-    va_end(va);
-#  endif
-#else
-#  ifdef HAS_vsnprintf_void
-    (void)vsnprintf(buf, sizeof(buf), format, va);
-    va_end(va);
-    len = strlen(buf);
-#  else
-    len = vsnprintf(buf, sizeof(buf), format, va);
-    va_end(va);
-#  endif
-#endif
-    if (len <= 0 || len >= (int)sizeof(buf) || buf[sizeof(buf) - 1] != 0)
-        return 0;
-    return gzwrite(file, buf, (unsigned)len);
-}
-#else /* not ANSI C */
-
-int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
-                       a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
-    gzFile file;
-    const char *format;
-    int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
-        a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
-{
-    char buf[Z_PRINTF_BUFSIZE];
-    int len;
-
-    buf[sizeof(buf) - 1] = 0;
-#ifdef NO_snprintf
-#  ifdef HAS_sprintf_void
-    sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,
-            a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-    for (len = 0; len < sizeof(buf); len++)
-        if (buf[len] == 0) break;
-#  else
-    len = sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,
-                a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-#  endif
-#else
-#  ifdef HAS_snprintf_void
-    snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,
-             a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-    len = strlen(buf);
-#  else
-    len = snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,
-                 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-#  endif
-#endif
-    if (len <= 0 || len >= sizeof(buf) || buf[sizeof(buf) - 1] != 0)
-        return 0;
-    return gzwrite(file, buf, len);
-}
-#endif
-
-/* ===========================================================================
-      Writes c, converted to an unsigned char, into the compressed file.
-   gzputc returns the value that was written, or -1 in case of error.
-*/
-int ZEXPORT gzputc(file, c)
-    gzFile file;
-    int c;
-{
-    unsigned char cc = (unsigned char) c; /* required for big endian systems */
-
-    return gzwrite(file, &cc, 1) == 1 ? (int)cc : -1;
-}
-
-
-/* ===========================================================================
-      Writes the given null-terminated string to the compressed file, excluding
-   the terminating null character.
-      gzputs returns the number of characters written, or -1 in case of error.
-*/
-int ZEXPORT gzputs(file, s)
-    gzFile file;
-    const char *s;
-{
-    return gzwrite(file, (char*)s, (unsigned)strlen(s));
-}
-
-
-/* ===========================================================================
-     Flushes all pending output into the compressed file. The parameter
-   flush is as in the deflate() function.
-*/
-local int do_flush (file, flush)
-    gzFile file;
-    int flush;
-{
-    uInt len;
-    int done = 0;
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;
-
-    s->stream.avail_in = 0; /* should be zero already anyway */
-
-    for (;;) {
-        len = Z_BUFSIZE - s->stream.avail_out;
-
-        if (len != 0) {
-            if ((uInt)fwrite(s->outbuf, 1, len, s->file) != len) {
-                s->z_err = Z_ERRNO;
-                return Z_ERRNO;
-            }
-            s->stream.next_out = s->outbuf;
-            s->stream.avail_out = Z_BUFSIZE;
-        }
-        if (done) break;
-        s->out += s->stream.avail_out;
-        s->z_err = deflate(&(s->stream), flush);
-        s->out -= s->stream.avail_out;
-
-        /* Ignore the second of two consecutive flushes: */
-        if (len == 0 && s->z_err == Z_BUF_ERROR) s->z_err = Z_OK;
-
-        /* deflate has finished flushing only when it hasn't used up
-         * all the available space in the output buffer:
-         */
-        done = (s->stream.avail_out != 0 || s->z_err == Z_STREAM_END);
-
-        if (s->z_err != Z_OK && s->z_err != Z_STREAM_END) break;
-    }
-    return  s->z_err == Z_STREAM_END ? Z_OK : s->z_err;
-}
-
-int ZEXPORT gzflush (file, flush)
-     gzFile file;
-     int flush;
-{
-    gz_stream *s = (gz_stream*)file;
-    int err = do_flush (file, flush);
-
-    if (err) return err;
-    fflush(s->file);
-    return  s->z_err == Z_STREAM_END ? Z_OK : s->z_err;
-}
-#endif /* NO_GZCOMPRESS */
-
-/* ===========================================================================
-      Sets the starting position for the next gzread or gzwrite on the given
-   compressed file. The offset represents a number of bytes in the
-      gzseek returns the resulting offset location as measured in bytes from
-   the beginning of the uncompressed stream, or -1 in case of error.
-      SEEK_END is not implemented, returns error.
-      In this version of the library, gzseek can be extremely slow.
-*/
-z_off_t ZEXPORT gzseek (file, offset, whence)
-    gzFile file;
-    z_off_t offset;
-    int whence;
-{
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL || whence == SEEK_END ||
-        s->z_err == Z_ERRNO || s->z_err == Z_DATA_ERROR) {
-        return -1L;
-    }
-
-    if (s->mode == 'w') {
-#ifdef NO_GZCOMPRESS
-        return -1L;
-#else
-        if (whence == SEEK_SET) {
-            offset -= s->in;
-        }
-        if (offset < 0) return -1L;
-
-        /* At this point, offset is the number of zero bytes to write. */
-        if (s->inbuf == Z_NULL) {
-            s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); /* for seeking */
-            if (s->inbuf == Z_NULL) return -1L;
-            zmemzero(s->inbuf, Z_BUFSIZE);
-        }
-        while (offset > 0)  {
-            uInt size = Z_BUFSIZE;
-            if (offset < Z_BUFSIZE) size = (uInt)offset;
-
-            size = gzwrite(file, s->inbuf, size);
-            if (size == 0) return -1L;
-
-            offset -= size;
-        }
-        return s->in;
-#endif
-    }
-    /* Rest of function is for reading only */
-
-    /* compute absolute position */
-    if (whence == SEEK_CUR) {
-        offset += s->out;
-    }
-    if (offset < 0) return -1L;
-
-    if (s->transparent) {
-        /* map to fseek */
-        s->back = EOF;
-        s->stream.avail_in = 0;
-        s->stream.next_in = s->inbuf;
-        if (fseek(s->file, offset, SEEK_SET) < 0) return -1L;
-
-        s->in = s->out = offset;
-        return offset;
-    }
-
-    /* For a negative seek, rewind and use positive seek */
-    if (offset >= s->out) {
-        offset -= s->out;
-    } else if (gzrewind(file) < 0) {
-        return -1L;
-    }
-    /* offset is now the number of bytes to skip. */
-
-    if (offset != 0 && s->outbuf == Z_NULL) {
-        s->outbuf = (Byte*)ALLOC(Z_BUFSIZE);
-        if (s->outbuf == Z_NULL) return -1L;
-    }
-    if (offset && s->back != EOF) {
-        s->back = EOF;
-        s->out++;
-        offset--;
-        if (s->last) s->z_err = Z_STREAM_END;
-    }
-    while (offset > 0)  {
-        int size = Z_BUFSIZE;
-        if (offset < Z_BUFSIZE) size = (int)offset;
-
-        size = gzread(file, s->outbuf, (uInt)size);
-        if (size <= 0) return -1L;
-        offset -= size;
-    }
-    return s->out;
-}
-
-/* ===========================================================================
-     Rewinds input file.
-*/
-int ZEXPORT gzrewind (file)
-    gzFile file;
-{
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL || s->mode != 'r') return -1;
-
-    s->z_err = Z_OK;
-    s->z_eof = 0;
-    s->back = EOF;
-    s->stream.avail_in = 0;
-    s->stream.next_in = s->inbuf;
-    s->crc = crc32(0L, Z_NULL, 0);
-    if (!s->transparent) (void)inflateReset(&s->stream);
-    s->in = 0;
-    s->out = 0;
-    return fseek(s->file, s->start, SEEK_SET);
-}
-
-/* ===========================================================================
-     Returns the starting position for the next gzread or gzwrite on the
-   given compressed file. This position represents a number of bytes in the
-   uncompressed data stream.
-*/
-z_off_t ZEXPORT gztell (file)
-    gzFile file;
-{
-    return gzseek(file, 0L, SEEK_CUR);
-}
-
-/* ===========================================================================
-     Returns 1 when EOF has previously been detected reading the given
-   input stream, otherwise zero.
-*/
-int ZEXPORT gzeof (file)
-    gzFile file;
-{
-    gz_stream *s = (gz_stream*)file;
-
-    /* With concatenated compressed files that can have embedded
-     * crc trailers, z_eof is no longer the only/best indicator of EOF
-     * on a gz_stream. Handle end-of-stream error explicitly here.
-     */
-    if (s == NULL || s->mode != 'r') return 0;
-    if (s->z_eof) return 1;
-    return s->z_err == Z_STREAM_END;
-}
-
-/* ===========================================================================
-   Outputs a long in LSB order to the given file
-*/
-local void putLong (file, x)
-    FILE *file;
-    uLong x;
-{
-    int n;
-    for (n = 0; n < 4; n++) {
-        fputc((int)(x & 0xff), file);
-        x >>= 8;
-    }
-}
-
-/* ===========================================================================
-   Reads a long in LSB order from the given gz_stream. Sets z_err in case
-   of error.
-*/
-local uLong getLong (s)
-    gz_stream *s;
-{
-    uLong x = (uLong)get_byte(s);
-    int c;
-
-    x += ((uLong)get_byte(s))<<8;
-    x += ((uLong)get_byte(s))<<16;
-    c = get_byte(s);
-    if (c == EOF) s->z_err = Z_DATA_ERROR;
-    x += ((uLong)c)<<24;
-    return x;
-}
-
-/* ===========================================================================
-     Flushes all pending output if necessary, closes the compressed file
-   and deallocates all the (de)compression state.
-*/
-int ZEXPORT gzclose (file)
-    gzFile file;
-{
-    int err;
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL) return Z_STREAM_ERROR;
-
-    if (s->mode == 'w') {
-#ifdef NO_GZCOMPRESS
-        return Z_STREAM_ERROR;
-#else
-        err = do_flush (file, Z_FINISH);
-        if (err != Z_OK) return destroy((gz_stream*)file);
-
-        putLong (s->file, s->crc);
-        putLong (s->file, (uLong)(s->in & 0xffffffff));
-#endif
-    }
-    return destroy((gz_stream*)file);
-}
-
-/* ===========================================================================
-     Returns the error message for the last error which occured on the
-   given compressed file. errnum is set to zlib error number. If an
-   error occured in the file system and not in the compression library,
-   errnum is set to Z_ERRNO and the application may consult errno
-   to get the exact error code.
-*/
-const char * ZEXPORT gzerror (file, errnum)
-    gzFile file;
-    int *errnum;
-{
-    char *m;
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL) {
-        *errnum = Z_STREAM_ERROR;
-        return (const char*)ERR_MSG(Z_STREAM_ERROR);
-    }
-    *errnum = s->z_err;
-    if (*errnum == Z_OK) return (const char*)"";
-
-    m = (char*)(*errnum == Z_ERRNO ? zstrerror(errno) : s->stream.msg);
-
-    if (m == NULL || *m == '\0') m = (char*)ERR_MSG(s->z_err);
-
-    TRYFREE(s->msg);
-    s->msg = (char*)ALLOC(strlen(s->path) + strlen(m) + 3);
-    if (s->msg == Z_NULL) return (const char*)ERR_MSG(Z_MEM_ERROR);
-    strcpy(s->msg, s->path);
-    strcat(s->msg, ": ");
-    strcat(s->msg, m);
-    return (const char*)s->msg;
-}
-
-/* ===========================================================================
-     Clear the error and end-of-file flags, and do the same for the real file.
-*/
-void ZEXPORT gzclearerr (file)
-    gzFile file;
-{
-    gz_stream *s = (gz_stream*)file;
-
-    if (s == NULL) return;
-    if (s->z_err != Z_STREAM_END) s->z_err = Z_OK;
-    s->z_eof = 0;
-    /* klibc hack */
-    /* clearerr(s->file); */
-}
diff --git a/klibc/klibc/zlib/infback.c b/klibc/klibc/zlib/infback.c
deleted file mode 100644 (file)
index 110b03b..0000000
+++ /dev/null
@@ -1,619 +0,0 @@
-/* infback.c -- inflate using a call-back interface
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
-   This code is largely copied from inflate.c.  Normally either infback.o or
-   inflate.o would be linked into an application--not both.  The interface
-   with inffast.c is retained so that optimized assembler-coded versions of
-   inflate_fast() can be used with either inflate.c or infback.c.
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-/* function prototypes */
-local void fixedtables OF((struct inflate_state FAR *state));
-
-/*
-   strm provides memory allocation functions in zalloc and zfree, or
-   Z_NULL to use the library memory allocation functions.
-
-   windowBits is in the range 8..15, and window is a user-supplied
-   window and output buffer that is 2**windowBits bytes.
- */
-int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size)
-z_stream FAR *strm;
-int windowBits;
-unsigned char FAR *window;
-const char *version;
-int stream_size;
-{
-    struct inflate_state FAR *state;
-
-    if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
-        stream_size != (int)(sizeof(z_stream)))
-        return Z_VERSION_ERROR;
-    if (strm == Z_NULL || window == Z_NULL ||
-        windowBits < 8 || windowBits > 15)
-        return Z_STREAM_ERROR;
-    strm->msg = Z_NULL;                 /* in case we return an error */
-    if (strm->zalloc == (alloc_func)0) {
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-    }
-    if (strm->zfree == (free_func)0) strm->zfree = zcfree;
-    state = (struct inflate_state FAR *)ZALLOC(strm, 1,
-                                               sizeof(struct inflate_state));
-    if (state == Z_NULL) return Z_MEM_ERROR;
-    Tracev((stderr, "inflate: allocated\n"));
-    strm->state = (voidpf)state;
-    state->wbits = windowBits;
-    state->wsize = 1U << windowBits;
-    state->window = window;
-    state->write = 0;
-    state->whave = 0;
-    return Z_OK;
-}
-
-/*
-   Return state with length and distance decoding tables and index sizes set to
-   fixed code decoding.  Normally this returns fixed tables from inffixed.h.
-   If BUILDFIXED is defined, then instead this routine builds the tables the
-   first time it's called, and returns those tables the first time and
-   thereafter.  This reduces the size of the code by about 2K bytes, in
-   exchange for a little execution time.  However, BUILDFIXED should not be
-   used for threaded applications, since the rewriting of the tables and virgin
-   may not be thread-safe.
- */
-local void fixedtables(state)
-struct inflate_state FAR *state;
-{
-#ifdef BUILDFIXED
-    static int virgin = 1;
-    static code *lenfix, *distfix;
-    static code fixed[544];
-
-    /* build fixed huffman tables if first call (may not be thread safe) */
-    if (virgin) {
-        unsigned sym, bits;
-        static code *next;
-
-        /* literal/length table */
-        sym = 0;
-        while (sym < 144) state->lens[sym++] = 8;
-        while (sym < 256) state->lens[sym++] = 9;
-        while (sym < 280) state->lens[sym++] = 7;
-        while (sym < 288) state->lens[sym++] = 8;
-        next = fixed;
-        lenfix = next;
-        bits = 9;
-        inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
-
-        /* distance table */
-        sym = 0;
-        while (sym < 32) state->lens[sym++] = 5;
-        distfix = next;
-        bits = 5;
-        inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
-
-        /* do this just once */
-        virgin = 0;
-    }
-#else /* !BUILDFIXED */
-#   include "inffixed.h"
-#endif /* BUILDFIXED */
-    state->lencode = lenfix;
-    state->lenbits = 9;
-    state->distcode = distfix;
-    state->distbits = 5;
-}
-
-/* Macros for inflateBack(): */
-
-/* Load returned state from inflate_fast() */
-#define LOAD() \
-    do { \
-        put = strm->next_out; \
-        left = strm->avail_out; \
-        next = strm->next_in; \
-        have = strm->avail_in; \
-        hold = state->hold; \
-        bits = state->bits; \
-    } while (0)
-
-/* Set state from registers for inflate_fast() */
-#define RESTORE() \
-    do { \
-        strm->next_out = put; \
-        strm->avail_out = left; \
-        strm->next_in = next; \
-        strm->avail_in = have; \
-        state->hold = hold; \
-        state->bits = bits; \
-    } while (0)
-
-/* Clear the input bit accumulator */
-#define INITBITS() \
-    do { \
-        hold = 0; \
-        bits = 0; \
-    } while (0)
-
-/* Assure that some input is available.  If input is requested, but denied,
-   then return a Z_BUF_ERROR from inflateBack(). */
-#define PULL() \
-    do { \
-        if (have == 0) { \
-            have = in(in_desc, &next); \
-            if (have == 0) { \
-                next = Z_NULL; \
-                ret = Z_BUF_ERROR; \
-                goto inf_leave; \
-            } \
-        } \
-    } while (0)
-
-/* Get a byte of input into the bit accumulator, or return from inflateBack()
-   with an error if there is no input available. */
-#define PULLBYTE() \
-    do { \
-        PULL(); \
-        have--; \
-        hold += (unsigned long)(*next++) << bits; \
-        bits += 8; \
-    } while (0)
-
-/* Assure that there are at least n bits in the bit accumulator.  If there is
-   not enough available input to do that, then return from inflateBack() with
-   an error. */
-#define NEEDBITS(n) \
-    do { \
-        while (bits < (unsigned)(n)) \
-            PULLBYTE(); \
-    } while (0)
-
-/* Return the low n bits of the bit accumulator (n < 16) */
-#define BITS(n) \
-    ((unsigned)hold & ((1U << (n)) - 1))
-
-/* Remove n bits from the bit accumulator */
-#define DROPBITS(n) \
-    do { \
-        hold >>= (n); \
-        bits -= (unsigned)(n); \
-    } while (0)
-
-/* Remove zero to seven bits as needed to go to a byte boundary */
-#define BYTEBITS() \
-    do { \
-        hold >>= bits & 7; \
-        bits -= bits & 7; \
-    } while (0)
-
-/* Assure that some output space is available, by writing out the window
-   if it's full.  If the write fails, return from inflateBack() with a
-   Z_BUF_ERROR. */
-#define ROOM() \
-    do { \
-        if (left == 0) { \
-            put = state->window; \
-            left = state->wsize; \
-            state->whave = left; \
-            if (out(out_desc, put, left)) { \
-                ret = Z_BUF_ERROR; \
-                goto inf_leave; \
-            } \
-        } \
-    } while (0)
-
-/*
-   strm provides the memory allocation functions and window buffer on input,
-   and provides information on the unused input on return.  For Z_DATA_ERROR
-   returns, strm will also provide an error message.
-
-   in() and out() are the call-back input and output functions.  When
-   inflateBack() needs more input, it calls in().  When inflateBack() has
-   filled the window with output, or when it completes with data in the
-   window, it calls out() to write out the data.  The application must not
-   change the provided input until in() is called again or inflateBack()
-   returns.  The application must not change the window/output buffer until
-   inflateBack() returns.
-
-   in() and out() are called with a descriptor parameter provided in the
-   inflateBack() call.  This parameter can be a structure that provides the
-   information required to do the read or write, as well as accumulated
-   information on the input and output such as totals and check values.
-
-   in() should return zero on failure.  out() should return non-zero on
-   failure.  If either in() or out() fails, than inflateBack() returns a
-   Z_BUF_ERROR.  strm->next_in can be checked for Z_NULL to see whether it
-   was in() or out() that caused in the error.  Otherwise,  inflateBack()
-   returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
-   error, or Z_MEM_ERROR if it could not allocate memory for the state.
-   inflateBack() can also return Z_STREAM_ERROR if the input parameters
-   are not correct, i.e. strm is Z_NULL or the state was not initialized.
- */
-int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc)
-z_stream FAR *strm;
-in_func in;
-void FAR *in_desc;
-out_func out;
-void FAR *out_desc;
-{
-    struct inflate_state FAR *state;
-    unsigned char FAR *next;    /* next input */
-    unsigned char FAR *put;     /* next output */
-    unsigned have, left;        /* available input and output */
-    unsigned long hold;         /* bit buffer */
-    unsigned bits;              /* bits in bit buffer */
-    unsigned copy;              /* number of stored or match bytes to copy */
-    unsigned char FAR *from;    /* where to copy match bytes from */
-    code this;                  /* current decoding table entry */
-    code last;                  /* parent table entry */
-    unsigned len;               /* length to copy for repeats, bits to drop */
-    int ret;                    /* return code */
-    static const unsigned short order[19] = /* permutation of code lengths */
-        {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-    /* Check that the strm exists and that the state was initialized */
-    if (strm == Z_NULL || strm->state == Z_NULL)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* Reset the state */
-    strm->msg = Z_NULL;
-    state->mode = TYPE;
-    state->last = 0;
-    state->whave = 0;
-    next = strm->next_in;
-    have = next != Z_NULL ? strm->avail_in : 0;
-    hold = 0;
-    bits = 0;
-    put = state->window;
-    left = state->wsize;
-
-    /* Inflate until end of block marked as last */
-    for (;;)
-        switch (state->mode) {
-        case TYPE:
-            /* determine and dispatch block type */
-            if (state->last) {
-                BYTEBITS();
-                state->mode = DONE;
-                break;
-            }
-            NEEDBITS(3);
-            state->last = BITS(1);
-            DROPBITS(1);
-            switch (BITS(2)) {
-            case 0:                             /* stored block */
-                Tracev((stderr, "inflate:     stored block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = STORED;
-                break;
-            case 1:                             /* fixed block */
-                fixedtables(state);
-                Tracev((stderr, "inflate:     fixed codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = LEN;              /* decode codes */
-                break;
-            case 2:                             /* dynamic block */
-                Tracev((stderr, "inflate:     dynamic codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = TABLE;
-                break;
-            case 3:
-                strm->msg = (char *)"invalid block type";
-                state->mode = BAD;
-            }
-            DROPBITS(2);
-            break;
-
-        case STORED:
-            /* get and verify stored block length */
-            BYTEBITS();                         /* go to byte boundary */
-            NEEDBITS(32);
-            if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
-                strm->msg = (char *)"invalid stored block lengths";
-                state->mode = BAD;
-                break;
-            }
-            state->length = (unsigned)hold & 0xffff;
-            Tracev((stderr, "inflate:       stored length %u\n",
-                    state->length));
-            INITBITS();
-
-            /* copy stored block from input to output */
-            while (state->length != 0) {
-                copy = state->length;
-                PULL();
-                ROOM();
-                if (copy > have) copy = have;
-                if (copy > left) copy = left;
-                zmemcpy(put, next, copy);
-                have -= copy;
-                next += copy;
-                left -= copy;
-                put += copy;
-                state->length -= copy;
-            }
-            Tracev((stderr, "inflate:       stored end\n"));
-            state->mode = TYPE;
-            break;
-
-        case TABLE:
-            /* get dynamic table entries descriptor */
-            NEEDBITS(14);
-            state->nlen = BITS(5) + 257;
-            DROPBITS(5);
-            state->ndist = BITS(5) + 1;
-            DROPBITS(5);
-            state->ncode = BITS(4) + 4;
-            DROPBITS(4);
-#ifndef PKZIP_BUG_WORKAROUND
-            if (state->nlen > 286 || state->ndist > 30) {
-                strm->msg = (char *)"too many length or distance symbols";
-                state->mode = BAD;
-                break;
-            }
-#endif
-            Tracev((stderr, "inflate:       table sizes ok\n"));
-
-            /* get code length code lengths (not a typo) */
-            state->have = 0;
-            while (state->have < state->ncode) {
-                NEEDBITS(3);
-                state->lens[order[state->have++]] = (unsigned short)BITS(3);
-                DROPBITS(3);
-            }
-            while (state->have < 19)
-                state->lens[order[state->have++]] = 0;
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 7;
-            ret = inflate_table(CODES, state->lens, 19, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid code lengths set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       code lengths ok\n"));
-
-            /* get length and distance code code lengths */
-            state->have = 0;
-            while (state->have < state->nlen + state->ndist) {
-                for (;;) {
-                    this = state->lencode[BITS(state->lenbits)];
-                    if ((unsigned)(this.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                if (this.val < 16) {
-                    NEEDBITS(this.bits);
-                    DROPBITS(this.bits);
-                    state->lens[state->have++] = this.val;
-                }
-                else {
-                    if (this.val == 16) {
-                        NEEDBITS(this.bits + 2);
-                        DROPBITS(this.bits);
-                        if (state->have == 0) {
-                            strm->msg = (char *)"invalid bit length repeat";
-                            state->mode = BAD;
-                            break;
-                        }
-                        len = (unsigned)(state->lens[state->have - 1]);
-                        copy = 3 + BITS(2);
-                        DROPBITS(2);
-                    }
-                    else if (this.val == 17) {
-                        NEEDBITS(this.bits + 3);
-                        DROPBITS(this.bits);
-                        len = 0;
-                        copy = 3 + BITS(3);
-                        DROPBITS(3);
-                    }
-                    else {
-                        NEEDBITS(this.bits + 7);
-                        DROPBITS(this.bits);
-                        len = 0;
-                        copy = 11 + BITS(7);
-                        DROPBITS(7);
-                    }
-                    if (state->have + copy > state->nlen + state->ndist) {
-                        strm->msg = (char *)"invalid bit length repeat";
-                        state->mode = BAD;
-                        break;
-                    }
-                    while (copy--)
-                        state->lens[state->have++] = (unsigned short)len;
-                }
-            }
-
-            /* build code tables */
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 9;
-            ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid literal/lengths set";
-                state->mode = BAD;
-                break;
-            }
-            state->distcode = (code const FAR *)(state->next);
-            state->distbits = 6;
-            ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
-                            &(state->next), &(state->distbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid distances set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       codes ok\n"));
-            state->mode = LEN;
-
-        case LEN:
-            /* use inflate_fast() if we have enough input and output */
-            if (have >= 6 && left >= 258) {
-                RESTORE();
-                if (state->whave < state->wsize)
-                    state->whave = state->wsize - left;
-                inflate_fast(strm, state->wsize);
-                LOAD();
-                break;
-            }
-
-            /* get a literal, length, or end-of-block code */
-            for (;;) {
-                this = state->lencode[BITS(state->lenbits)];
-                if ((unsigned)(this.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if (this.op && (this.op & 0xf0) == 0) {
-                last = this;
-                for (;;) {
-                    this = state->lencode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + this.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-            }
-            DROPBITS(this.bits);
-            state->length = (unsigned)this.val;
-
-            /* process literal */
-            if (this.op == 0) {
-                Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ?
-                        "inflate:         literal '%c'\n" :
-                        "inflate:         literal 0x%02x\n", this.val));
-                ROOM();
-                *put++ = (unsigned char)(state->length);
-                left--;
-                state->mode = LEN;
-                break;
-            }
-
-            /* process end of block */
-            if (this.op & 32) {
-                Tracevv((stderr, "inflate:         end of block\n"));
-                state->mode = TYPE;
-                break;
-            }
-
-            /* invalid code */
-            if (this.op & 64) {
-                strm->msg = (char *)"invalid literal/length code";
-                state->mode = BAD;
-                break;
-            }
-
-            /* length code -- get extra bits, if any */
-            state->extra = (unsigned)(this.op) & 15;
-            if (state->extra != 0) {
-                NEEDBITS(state->extra);
-                state->length += BITS(state->extra);
-                DROPBITS(state->extra);
-            }
-            Tracevv((stderr, "inflate:         length %u\n", state->length));
-
-            /* get distance code */
-            for (;;) {
-                this = state->distcode[BITS(state->distbits)];
-                if ((unsigned)(this.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if ((this.op & 0xf0) == 0) {
-                last = this;
-                for (;;) {
-                    this = state->distcode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + this.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-            }
-            DROPBITS(this.bits);
-            if (this.op & 64) {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-            state->offset = (unsigned)this.val;
-
-            /* get distance extra bits, if any */
-            state->extra = (unsigned)(this.op) & 15;
-            if (state->extra != 0) {
-                NEEDBITS(state->extra);
-                state->offset += BITS(state->extra);
-                DROPBITS(state->extra);
-            }
-            if (state->offset > state->wsize - (state->whave < state->wsize ?
-                                                left : 0)) {
-                strm->msg = (char *)"invalid distance too far back";
-                state->mode = BAD;
-                break;
-            }
-            Tracevv((stderr, "inflate:         distance %u\n", state->offset));
-
-            /* copy match from window to output */
-            do {
-                ROOM();
-                copy = state->wsize - state->offset;
-                if (copy < left) {
-                    from = put + copy;
-                    copy = left - copy;
-                }
-                else {
-                    from = put - state->offset;
-                    copy = left;
-                }
-                if (copy > state->length) copy = state->length;
-                state->length -= copy;
-                left -= copy;
-                do {
-                    *put++ = *from++;
-                } while (--copy);
-            } while (state->length != 0);
-            break;
-
-        case DONE:
-            /* inflate stream terminated properly -- write leftover output */
-            ret = Z_STREAM_END;
-            if (left < state->wsize) {
-                if (out(out_desc, state->window, state->wsize - left))
-                    ret = Z_BUF_ERROR;
-            }
-            goto inf_leave;
-
-        case BAD:
-            ret = Z_DATA_ERROR;
-            goto inf_leave;
-
-        default:                /* can't happen, but makes compilers happy */
-            ret = Z_STREAM_ERROR;
-            goto inf_leave;
-        }
-
-    /* Return unused input */
-  inf_leave:
-    strm->next_in = next;
-    strm->avail_in = have;
-    return ret;
-}
-
-int ZEXPORT inflateBackEnd(strm)
-z_stream FAR *strm;
-{
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-    Tracev((stderr, "inflate: end\n"));
-    return Z_OK;
-}
diff --git a/klibc/klibc/zlib/inffast.c b/klibc/klibc/zlib/inffast.c
deleted file mode 100644 (file)
index c716440..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-/* inffast.c -- fast decoding
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-#ifndef ASMINF
-
-/* Allow machine dependent optimization for post-increment or pre-increment.
-   Based on testing to date,
-   Pre-increment preferred for:
-   - PowerPC G3 (Adler)
-   - MIPS R5000 (Randers-Pehrson)
-   Post-increment preferred for:
-   - none
-   No measurable difference:
-   - Pentium III (Anderson)
-   - 68060 (Nikl)
- */
-#ifdef POSTINC
-#  define OFF 0
-#  define PUP(a) *(a)++
-#else
-#  define OFF 1
-#  define PUP(a) *++(a)
-#endif
-
-/*
-   Decode literal, length, and distance codes and write out the resulting
-   literal and match bytes until either not enough input or output is
-   available, an end-of-block is encountered, or a data error is encountered.
-   When large enough input and output buffers are supplied to inflate(), for
-   example, a 16K input buffer and a 64K output buffer, more than 95% of the
-   inflate execution time is spent in this routine.
-
-   Entry assumptions:
-
-        state->mode == LEN
-        strm->avail_in >= 6
-        strm->avail_out >= 258
-        start >= strm->avail_out
-        state->bits < 8
-
-   On return, state->mode is one of:
-
-        LEN -- ran out of enough output space or enough available input
-        TYPE -- reached end of block code, inflate() to interpret next block
-        BAD -- error in block data
-
-   Notes:
-
-    - The maximum input bits used by a length/distance pair is 15 bits for the
-      length code, 5 bits for the length extra, 15 bits for the distance code,
-      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.
-      Therefore if strm->avail_in >= 6, then there is enough input to avoid
-      checking for available input while decoding.
-
-    - The maximum bytes that a single length/distance pair can output is 258
-      bytes, which is the maximum length that can be coded.  inflate_fast()
-      requires strm->avail_out >= 258 for each loop to avoid checking for
-      output space.
- */
-void inflate_fast(strm, start)
-z_streamp strm;
-unsigned start;         /* inflate()'s starting value for strm->avail_out */
-{
-    struct inflate_state FAR *state;
-    unsigned char FAR *in;      /* local strm->next_in */
-    unsigned char FAR *last;    /* while in < last, enough input available */
-    unsigned char FAR *out;     /* local strm->next_out */
-    unsigned char FAR *beg;     /* inflate()'s initial strm->next_out */
-    unsigned char FAR *end;     /* while out < end, enough space available */
-    unsigned wsize;             /* window size or zero if not using window */
-    unsigned whave;             /* valid bytes in the window */
-    unsigned write;             /* window write index */
-    unsigned char FAR *window;  /* allocated sliding window, if wsize != 0 */
-    unsigned long hold;         /* local strm->hold */
-    unsigned bits;              /* local strm->bits */
-    code const FAR *lcode;      /* local strm->lencode */
-    code const FAR *dcode;      /* local strm->distcode */
-    unsigned lmask;             /* mask for first level of length codes */
-    unsigned dmask;             /* mask for first level of distance codes */
-    code this;                  /* retrieved table entry */
-    unsigned op;                /* code bits, operation, extra bits, or */
-                                /*  window position, window bytes to copy */
-    unsigned len;               /* match length, unused bytes */
-    unsigned dist;              /* match distance */
-    unsigned char FAR *from;    /* where to copy match from */
-
-    /* copy state to local variables */
-    state = (struct inflate_state FAR *)strm->state;
-    in = strm->next_in - OFF;
-    last = in + (strm->avail_in - 5);
-    out = strm->next_out - OFF;
-    beg = out - (start - strm->avail_out);
-    end = out + (strm->avail_out - 257);
-    wsize = state->wsize;
-    whave = state->whave;
-    write = state->write;
-    window = state->window;
-    hold = state->hold;
-    bits = state->bits;
-    lcode = state->lencode;
-    dcode = state->distcode;
-    lmask = (1U << state->lenbits) - 1;
-    dmask = (1U << state->distbits) - 1;
-
-    /* decode literals and length/distances until end-of-block or not enough
-       input data or output space */
-    do {
-        if (bits < 15) {
-            hold += (unsigned long)(PUP(in)) << bits;
-            bits += 8;
-            hold += (unsigned long)(PUP(in)) << bits;
-            bits += 8;
-        }
-        this = lcode[hold & lmask];
-      dolen:
-        op = (unsigned)(this.bits);
-        hold >>= op;
-        bits -= op;
-        op = (unsigned)(this.op);
-        if (op == 0) {                          /* literal */
-            Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ?
-                    "inflate:         literal '%c'\n" :
-                    "inflate:         literal 0x%02x\n", this.val));
-            PUP(out) = (unsigned char)(this.val);
-        }
-        else if (op & 16) {                     /* length base */
-            len = (unsigned)(this.val);
-            op &= 15;                           /* number of extra bits */
-            if (op) {
-                if (bits < op) {
-                    hold += (unsigned long)(PUP(in)) << bits;
-                    bits += 8;
-                }
-                len += (unsigned)hold & ((1U << op) - 1);
-                hold >>= op;
-                bits -= op;
-            }
-            Tracevv((stderr, "inflate:         length %u\n", len));
-            if (bits < 15) {
-                hold += (unsigned long)(PUP(in)) << bits;
-                bits += 8;
-                hold += (unsigned long)(PUP(in)) << bits;
-                bits += 8;
-            }
-            this = dcode[hold & dmask];
-          dodist:
-            op = (unsigned)(this.bits);
-            hold >>= op;
-            bits -= op;
-            op = (unsigned)(this.op);
-            if (op & 16) {                      /* distance base */
-                dist = (unsigned)(this.val);
-                op &= 15;                       /* number of extra bits */
-                if (bits < op) {
-                    hold += (unsigned long)(PUP(in)) << bits;
-                    bits += 8;
-                    if (bits < op) {
-                        hold += (unsigned long)(PUP(in)) << bits;
-                        bits += 8;
-                    }
-                }
-                dist += (unsigned)hold & ((1U << op) - 1);
-                hold >>= op;
-                bits -= op;
-                Tracevv((stderr, "inflate:         distance %u\n", dist));
-                op = (unsigned)(out - beg);     /* max distance in output */
-                if (dist > op) {                /* see if copy from window */
-                    op = dist - op;             /* distance back in window */
-                    if (op > whave) {
-                        strm->msg = (char *)"invalid distance too far back";
-                        state->mode = BAD;
-                        break;
-                    }
-                    from = window - OFF;
-                    if (write == 0) {           /* very common case */
-                        from += wsize - op;
-                        if (op < len) {         /* some from window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = out - dist;  /* rest from output */
-                        }
-                    }
-                    else if (write < op) {      /* wrap around window */
-                        from += wsize + write - op;
-                        op -= write;
-                        if (op < len) {         /* some from end of window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = window - OFF;
-                            if (write < len) {  /* some from start of window */
-                                op = write;
-                                len -= op;
-                                do {
-                                    PUP(out) = PUP(from);
-                                } while (--op);
-                                from = out - dist;      /* rest from output */
-                            }
-                        }
-                    }
-                    else {                      /* contiguous in window */
-                        from += write - op;
-                        if (op < len) {         /* some from window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = out - dist;  /* rest from output */
-                        }
-                    }
-                    while (len > 2) {
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        len -= 3;
-                    }
-                    if (len) {
-                        PUP(out) = PUP(from);
-                        if (len > 1)
-                            PUP(out) = PUP(from);
-                    }
-                }
-                else {
-                    from = out - dist;          /* copy direct from output */
-                    do {                        /* minimum length is three */
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        len -= 3;
-                    } while (len > 2);
-                    if (len) {
-                        PUP(out) = PUP(from);
-                        if (len > 1)
-                            PUP(out) = PUP(from);
-                    }
-                }
-            }
-            else if ((op & 64) == 0) {          /* 2nd level distance code */
-                this = dcode[this.val + (hold & ((1U << op) - 1))];
-                goto dodist;
-            }
-            else {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-        }
-        else if ((op & 64) == 0) {              /* 2nd level length code */
-            this = lcode[this.val + (hold & ((1U << op) - 1))];
-            goto dolen;
-        }
-        else if (op & 32) {                     /* end-of-block */
-            Tracevv((stderr, "inflate:         end of block\n"));
-            state->mode = TYPE;
-            break;
-        }
-        else {
-            strm->msg = (char *)"invalid literal/length code";
-            state->mode = BAD;
-            break;
-        }
-    } while (in < last && out < end);
-
-    /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
-    len = bits >> 3;
-    in -= len;
-    bits -= len << 3;
-    hold &= (1U << bits) - 1;
-
-    /* update state and return */
-    strm->next_in = in + OFF;
-    strm->next_out = out + OFF;
-    strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
-    strm->avail_out = (unsigned)(out < end ?
-                                 257 + (end - out) : 257 - (out - end));
-    state->hold = hold;
-    state->bits = bits;
-    return;
-}
-
-/*
-   inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe):
-   - Using bit fields for code structure
-   - Different op definition to avoid & for extra bits (do & for table bits)
-   - Three separate decoding do-loops for direct, window, and write == 0
-   - Special case for distance > 1 copies to do overlapped load and store copy
-   - Explicit branch predictions (based on measured branch probabilities)
-   - Deferring match copy and interspersed it with decoding subsequent codes
-   - Swapping literal/length else
-   - Swapping window/direct else
-   - Larger unrolled copy loops (three is about right)
-   - Moving len -= 3 statement into middle of loop
- */
-
-#endif /* !ASMINF */
diff --git a/klibc/klibc/zlib/inffast.h b/klibc/klibc/zlib/inffast.h
deleted file mode 100644 (file)
index 1e88d2d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/* inffast.h -- header to use inffast.c
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-void inflate_fast OF((z_streamp strm, unsigned start));
diff --git a/klibc/klibc/zlib/inffixed.h b/klibc/klibc/zlib/inffixed.h
deleted file mode 100644 (file)
index 75ed4b5..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-    /* inffixed.h -- table for decoding fixed codes
-     * Generated automatically by makefixed().
-     */
-
-    /* WARNING: this file should *not* be used by applications. It
-       is part of the implementation of the compression library and
-       is subject to change. Applications should only use zlib.h.
-     */
-
-    static const code lenfix[512] = {
-        {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48},
-        {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128},
-        {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59},
-        {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176},
-        {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20},
-        {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100},
-        {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8},
-        {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216},
-        {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76},
-        {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114},
-        {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2},
-        {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148},
-        {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42},
-        {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86},
-        {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15},
-        {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236},
-        {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62},
-        {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142},
-        {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31},
-        {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162},
-        {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25},
-        {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105},
-        {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4},
-        {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202},
-        {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69},
-        {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125},
-        {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13},
-        {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195},
-        {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35},
-        {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91},
-        {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19},
-        {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246},
-        {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55},
-        {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135},
-        {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99},
-        {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190},
-        {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16},
-        {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96},
-        {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6},
-        {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209},
-        {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72},
-        {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116},
-        {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4},
-        {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153},
-        {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44},
-        {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82},
-        {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11},
-        {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229},
-        {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58},
-        {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138},
-        {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51},
-        {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173},
-        {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30},
-        {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110},
-        {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0},
-        {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195},
-        {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65},
-        {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121},
-        {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9},
-        {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258},
-        {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37},
-        {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93},
-        {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23},
-        {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251},
-        {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51},
-        {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131},
-        {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67},
-        {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183},
-        {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23},
-        {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103},
-        {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9},
-        {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223},
-        {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79},
-        {0,9,255}
-    };
-
-    static const code distfix[32] = {
-        {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025},
-        {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193},
-        {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385},
-        {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577},
-        {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073},
-        {22,5,193},{64,5,0}
-    };
diff --git a/klibc/klibc/zlib/inflate.c b/klibc/klibc/zlib/inflate.c
deleted file mode 100644 (file)
index a53b5c7..0000000
+++ /dev/null
@@ -1,1270 +0,0 @@
-/* inflate.c -- zlib decompression
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * Change history:
- *
- * 1.2.beta0    24 Nov 2002
- * - First version -- complete rewrite of inflate to simplify code, avoid
- *   creation of window when not needed, minimize use of window when it is
- *   needed, make inffast.c even faster, implement gzip decoding, and to
- *   improve code readability and style over the previous zlib inflate code
- *
- * 1.2.beta1    25 Nov 2002
- * - Use pointers for available input and output checking in inffast.c
- * - Remove input and output counters in inffast.c
- * - Change inffast.c entry and loop from avail_in >= 7 to >= 6
- * - Remove unnecessary second byte pull from length extra in inffast.c
- * - Unroll direct copy to three copies per loop in inffast.c
- *
- * 1.2.beta2    4 Dec 2002
- * - Change external routine names to reduce potential conflicts
- * - Correct filename to inffixed.h for fixed tables in inflate.c
- * - Make hbuf[] unsigned char to match parameter type in inflate.c
- * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset)
- *   to avoid negation problem on Alphas (64 bit) in inflate.c
- *
- * 1.2.beta3    22 Dec 2002
- * - Add comments on state->bits assertion in inffast.c
- * - Add comments on op field in inftrees.h
- * - Fix bug in reuse of allocated window after inflateReset()
- * - Remove bit fields--back to byte structure for speed
- * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths
- * - Change post-increments to pre-increments in inflate_fast(), PPC biased?
- * - Add compile time option, POSTINC, to use post-increments instead (Intel?)
- * - Make MATCH copy in inflate() much faster for when inflate_fast() not used
- * - Use local copies of stream next and avail values, as well as local bit
- *   buffer and bit count in inflate()--for speed when inflate_fast() not used
- *
- * 1.2.beta4    1 Jan 2003
- * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings
- * - Move a comment on output buffer sizes from inffast.c to inflate.c
- * - Add comments in inffast.c to introduce the inflate_fast() routine
- * - Rearrange window copies in inflate_fast() for speed and simplification
- * - Unroll last copy for window match in inflate_fast()
- * - Use local copies of window variables in inflate_fast() for speed
- * - Pull out common write == 0 case for speed in inflate_fast()
- * - Make op and len in inflate_fast() unsigned for consistency
- * - Add FAR to lcode and dcode declarations in inflate_fast()
- * - Simplified bad distance check in inflate_fast()
- * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new
- *   source file infback.c to provide a call-back interface to inflate for
- *   programs like gzip and unzip -- uses window as output buffer to avoid
- *   window copying
- *
- * 1.2.beta5    1 Jan 2003
- * - Improved inflateBack() interface to allow the caller to provide initial
- *   input in strm.
- * - Fixed stored blocks bug in inflateBack()
- *
- * 1.2.beta6    4 Jan 2003
- * - Added comments in inffast.c on effectiveness of POSTINC
- * - Typecasting all around to reduce compiler warnings
- * - Changed loops from while (1) or do {} while (1) to for (;;), again to
- *   make compilers happy
- * - Changed type of window in inflateBackInit() to unsigned char *
- *
- * 1.2.beta7    27 Jan 2003
- * - Changed many types to unsigned or unsigned short to avoid warnings
- * - Added inflateCopy() function
- *
- * 1.2.0        9 Mar 2003
- * - Changed inflateBack() interface to provide separate opaque descriptors
- *   for the in() and out() functions
- * - Changed inflateBack() argument and in_func typedef to swap the length
- *   and buffer address return values for the input function
- * - Check next_in and next_out for Z_NULL on entry to inflate()
- *
- * The history for versions after 1.2.0 are in ChangeLog in zlib distribution.
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-#ifdef MAKEFIXED
-#  ifndef BUILDFIXED
-#    define BUILDFIXED
-#  endif
-#endif
-
-/* function prototypes */
-local void fixedtables OF((struct inflate_state FAR *state));
-local int updatewindow OF((z_streamp strm, unsigned out));
-#ifdef BUILDFIXED
-   void makefixed OF((void));
-#endif
-local unsigned syncsearch OF((unsigned FAR *have, unsigned char FAR *buf,
-                              unsigned len));
-
-int ZEXPORT inflateReset(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    strm->total_in = strm->total_out = state->total = 0;
-    strm->msg = Z_NULL;
-    state->mode = HEAD;
-    state->last = 0;
-    state->havedict = 0;
-    state->wsize = 0;
-    state->whave = 0;
-    state->hold = 0;
-    state->bits = 0;
-    state->lencode = state->distcode = state->next = state->codes;
-    Tracev((stderr, "inflate: reset\n"));
-    return Z_OK;
-}
-
-int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size)
-z_streamp strm;
-int windowBits;
-const char *version;
-int stream_size;
-{
-    struct inflate_state FAR *state;
-
-    if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
-        stream_size != (int)(sizeof(z_stream)))
-        return Z_VERSION_ERROR;
-    if (strm == Z_NULL) return Z_STREAM_ERROR;
-    strm->msg = Z_NULL;                 /* in case we return an error */
-    if (strm->zalloc == (alloc_func)0) {
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-    }
-    if (strm->zfree == (free_func)0) strm->zfree = zcfree;
-    state = (struct inflate_state FAR *)
-            ZALLOC(strm, 1, sizeof(struct inflate_state));
-    if (state == Z_NULL) return Z_MEM_ERROR;
-    Tracev((stderr, "inflate: allocated\n"));
-    strm->state = (voidpf)state;
-    if (windowBits < 0) {
-        state->wrap = 0;
-        windowBits = -windowBits;
-    }
-    else {
-        state->wrap = (windowBits >> 4) + 1;
-#ifdef GUNZIP
-        if (windowBits < 48) windowBits &= 15;
-#endif
-    }
-    if (windowBits < 8 || windowBits > 15) {
-        ZFREE(strm, state);
-        strm->state = Z_NULL;
-        return Z_STREAM_ERROR;
-    }
-    state->wbits = (unsigned)windowBits;
-    state->window = Z_NULL;
-    return inflateReset(strm);
-}
-
-int ZEXPORT inflateInit_(strm, version, stream_size)
-z_streamp strm;
-const char *version;
-int stream_size;
-{
-    return inflateInit2_(strm, DEF_WBITS, version, stream_size);
-}
-
-/*
-   Return state with length and distance decoding tables and index sizes set to
-   fixed code decoding.  Normally this returns fixed tables from inffixed.h.
-   If BUILDFIXED is defined, then instead this routine builds the tables the
-   first time it's called, and returns those tables the first time and
-   thereafter.  This reduces the size of the code by about 2K bytes, in
-   exchange for a little execution time.  However, BUILDFIXED should not be
-   used for threaded applications, since the rewriting of the tables and virgin
-   may not be thread-safe.
- */
-local void fixedtables(state)
-struct inflate_state FAR *state;
-{
-#ifdef BUILDFIXED
-    static int virgin = 1;
-    static code *lenfix, *distfix;
-    static code fixed[544];
-
-    /* build fixed huffman tables if first call (may not be thread safe) */
-    if (virgin) {
-        unsigned sym, bits;
-        static code *next;
-
-        /* literal/length table */
-        sym = 0;
-        while (sym < 144) state->lens[sym++] = 8;
-        while (sym < 256) state->lens[sym++] = 9;
-        while (sym < 280) state->lens[sym++] = 7;
-        while (sym < 288) state->lens[sym++] = 8;
-        next = fixed;
-        lenfix = next;
-        bits = 9;
-        inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
-
-        /* distance table */
-        sym = 0;
-        while (sym < 32) state->lens[sym++] = 5;
-        distfix = next;
-        bits = 5;
-        inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
-
-        /* do this just once */
-        virgin = 0;
-    }
-#else /* !BUILDFIXED */
-#   include "inffixed.h"
-#endif /* BUILDFIXED */
-    state->lencode = lenfix;
-    state->lenbits = 9;
-    state->distcode = distfix;
-    state->distbits = 5;
-}
-
-#ifdef MAKEFIXED
-#include <stdio.h>
-
-/*
-   Write out the inffixed.h that is #include'd above.  Defining MAKEFIXED also
-   defines BUILDFIXED, so the tables are built on the fly.  makefixed() writes
-   those tables to stdout, which would be piped to inffixed.h.  A small program
-   can simply call makefixed to do this:
-
-    void makefixed(void);
-
-    int main(void)
-    {
-        makefixed();
-        return 0;
-    }
-
-   Then that can be linked with zlib built with MAKEFIXED defined and run:
-
-    a.out > inffixed.h
- */
-void makefixed()
-{
-    unsigned low, size;
-    struct inflate_state state;
-
-    fixedtables(&state);
-    puts("    /* inffixed.h -- table for decoding fixed codes");
-    puts("     * Generated automatically by makefixed().");
-    puts("     */");
-    puts("");
-    puts("    /* WARNING: this file should *not* be used by applications.");
-    puts("       It is part of the implementation of this library and is");
-    puts("       subject to change. Applications should only use zlib.h.");
-    puts("     */");
-    puts("");
-    size = 1U << 9;
-    printf("    static const code lenfix[%u] = {", size);
-    low = 0;
-    for (;;) {
-        if ((low % 7) == 0) printf("\n        ");
-        printf("{%u,%u,%d}", state.lencode[low].op, state.lencode[low].bits,
-               state.lencode[low].val);
-        if (++low == size) break;
-        putchar(',');
-    }
-    puts("\n    };");
-    size = 1U << 5;
-    printf("\n    static const code distfix[%u] = {", size);
-    low = 0;
-    for (;;) {
-        if ((low % 6) == 0) printf("\n        ");
-        printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits,
-               state.distcode[low].val);
-        if (++low == size) break;
-        putchar(',');
-    }
-    puts("\n    };");
-}
-#endif /* MAKEFIXED */
-
-/*
-   Update the window with the last wsize (normally 32K) bytes written before
-   returning.  If window does not exist yet, create it.  This is only called
-   when a window is already in use, or when output has been written during this
-   inflate call, but the end of the deflate stream has not been reached yet.
-   It is also called to create a window for dictionary data when a dictionary
-   is loaded.
-
-   Providing output buffers larger than 32K to inflate() should provide a speed
-   advantage, since only the last 32K of output is copied to the sliding window
-   upon return from inflate(), and since all distances after the first 32K of
-   output will fall in the output data, making match copies simpler and faster.
-   The advantage may be dependent on the size of the processor's data caches.
- */
-local int updatewindow(strm, out)
-z_streamp strm;
-unsigned out;
-{
-    struct inflate_state FAR *state;
-    unsigned copy, dist;
-
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* if it hasn't been done already, allocate space for the window */
-    if (state->window == Z_NULL) {
-        state->window = (unsigned char FAR *)
-                        ZALLOC(strm, 1U << state->wbits,
-                               sizeof(unsigned char));
-        if (state->window == Z_NULL) return 1;
-    }
-
-    /* if window not in use yet, initialize */
-    if (state->wsize == 0) {
-        state->wsize = 1U << state->wbits;
-        state->write = 0;
-        state->whave = 0;
-    }
-
-    /* copy state->wsize or less output bytes into the circular window */
-    copy = out - strm->avail_out;
-    if (copy >= state->wsize) {
-        zmemcpy(state->window, strm->next_out - state->wsize, state->wsize);
-        state->write = 0;
-        state->whave = state->wsize;
-    }
-    else {
-        dist = state->wsize - state->write;
-        if (dist > copy) dist = copy;
-        zmemcpy(state->window + state->write, strm->next_out - copy, dist);
-        copy -= dist;
-        if (copy) {
-            zmemcpy(state->window, strm->next_out - copy, copy);
-            state->write = copy;
-            state->whave = state->wsize;
-        }
-        else {
-            state->write += dist;
-            if (state->write == state->wsize) state->write = 0;
-            if (state->whave < state->wsize) state->whave += dist;
-        }
-    }
-    return 0;
-}
-
-/* Macros for inflate(): */
-
-/* check function to use adler32() for zlib or crc32() for gzip */
-#ifdef GUNZIP
-#  define UPDATE(check, buf, len) \
-    (state->flags ? crc32(check, buf, len) : adler32(check, buf, len))
-#else
-#  define UPDATE(check, buf, len) adler32(check, buf, len)
-#endif
-
-/* check macros for header crc */
-#ifdef GUNZIP
-#  define CRC2(check, word) \
-    do { \
-        hbuf[0] = (unsigned char)(word); \
-        hbuf[1] = (unsigned char)((word) >> 8); \
-        check = crc32(check, hbuf, 2); \
-    } while (0)
-
-#  define CRC4(check, word) \
-    do { \
-        hbuf[0] = (unsigned char)(word); \
-        hbuf[1] = (unsigned char)((word) >> 8); \
-        hbuf[2] = (unsigned char)((word) >> 16); \
-        hbuf[3] = (unsigned char)((word) >> 24); \
-        check = crc32(check, hbuf, 4); \
-    } while (0)
-#endif
-
-/* Load registers with state in inflate() for speed */
-#define LOAD() \
-    do { \
-        put = strm->next_out; \
-        left = strm->avail_out; \
-        next = strm->next_in; \
-        have = strm->avail_in; \
-        hold = state->hold; \
-        bits = state->bits; \
-    } while (0)
-
-/* Restore state from registers in inflate() */
-#define RESTORE() \
-    do { \
-        strm->next_out = put; \
-        strm->avail_out = left; \
-        strm->next_in = next; \
-        strm->avail_in = have; \
-        state->hold = hold; \
-        state->bits = bits; \
-    } while (0)
-
-/* Clear the input bit accumulator */
-#define INITBITS() \
-    do { \
-        hold = 0; \
-        bits = 0; \
-    } while (0)
-
-/* Get a byte of input into the bit accumulator, or return from inflate()
-   if there is no input available. */
-#define PULLBYTE() \
-    do { \
-        if (have == 0) goto inf_leave; \
-        have--; \
-        hold += (unsigned long)(*next++) << bits; \
-        bits += 8; \
-    } while (0)
-
-/* Assure that there are at least n bits in the bit accumulator.  If there is
-   not enough available input to do that, then return from inflate(). */
-#define NEEDBITS(n) \
-    do { \
-        while (bits < (unsigned)(n)) \
-            PULLBYTE(); \
-    } while (0)
-
-/* Return the low n bits of the bit accumulator (n < 16) */
-#define BITS(n) \
-    ((unsigned)hold & ((1U << (n)) - 1))
-
-/* Remove n bits from the bit accumulator */
-#define DROPBITS(n) \
-    do { \
-        hold >>= (n); \
-        bits -= (unsigned)(n); \
-    } while (0)
-
-/* Remove zero to seven bits as needed to go to a byte boundary */
-#define BYTEBITS() \
-    do { \
-        hold >>= bits & 7; \
-        bits -= bits & 7; \
-    } while (0)
-
-/* Reverse the bytes in a 32-bit value */
-#define REVERSE(q) \
-    ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
-     (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
-
-/*
-   inflate() uses a state machine to process as much input data and generate as
-   much output data as possible before returning.  The state machine is
-   structured roughly as follows:
-
-    for (;;) switch (state) {
-    ...
-    case STATEn:
-        if (not enough input data or output space to make progress)
-            return;
-        ... make progress ...
-        state = STATEm;
-        break;
-    ...
-    }
-
-   so when inflate() is called again, the same case is attempted again, and
-   if the appropriate resources are provided, the machine proceeds to the
-   next state.  The NEEDBITS() macro is usually the way the state evaluates
-   whether it can proceed or should return.  NEEDBITS() does the return if
-   the requested bits are not available.  The typical use of the BITS macros
-   is:
-
-        NEEDBITS(n);
-        ... do something with BITS(n) ...
-        DROPBITS(n);
-
-   where NEEDBITS(n) either returns from inflate() if there isn't enough
-   input left to load n bits into the accumulator, or it continues.  BITS(n)
-   gives the low n bits in the accumulator.  When done, DROPBITS(n) drops
-   the low n bits off the accumulator.  INITBITS() clears the accumulator
-   and sets the number of available bits to zero.  BYTEBITS() discards just
-   enough bits to put the accumulator on a byte boundary.  After BYTEBITS()
-   and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
-
-   NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
-   if there is no input available.  The decoding of variable length codes uses
-   PULLBYTE() directly in order to pull just enough bytes to decode the next
-   code, and no more.
-
-   Some states loop until they get enough input, making sure that enough
-   state information is maintained to continue the loop where it left off
-   if NEEDBITS() returns in the loop.  For example, want, need, and keep
-   would all have to actually be part of the saved state in case NEEDBITS()
-   returns:
-
-    case STATEw:
-        while (want < need) {
-            NEEDBITS(n);
-            keep[want++] = BITS(n);
-            DROPBITS(n);
-        }
-        state = STATEx;
-    case STATEx:
-
-   As shown above, if the next state is also the next case, then the break
-   is omitted.
-
-   A state may also return if there is not enough output space available to
-   complete that state.  Those states are copying stored data, writing a
-   literal byte, and copying a matching string.
-
-   When returning, a "goto inf_leave" is used to update the total counters,
-   update the check value, and determine whether any progress has been made
-   during that inflate() call in order to return the proper return code.
-   Progress is defined as a change in either strm->avail_in or strm->avail_out.
-   When there is a window, goto inf_leave will update the window with the last
-   output written.  If a goto inf_leave occurs in the middle of decompression
-   and there is no window currently, goto inf_leave will create one and copy
-   output to the window for the next call of inflate().
-
-   In this implementation, the flush parameter of inflate() only affects the
-   return code (per zlib.h).  inflate() always writes as much as possible to
-   strm->next_out, given the space available and the provided input--the effect
-   documented in zlib.h of Z_SYNC_FLUSH.  Furthermore, inflate() always defers
-   the allocation of and copying into a sliding window until necessary, which
-   provides the effect documented in zlib.h for Z_FINISH when the entire input
-   stream available.  So the only thing the flush parameter actually does is:
-   when flush is set to Z_FINISH, inflate() cannot return Z_OK.  Instead it
-   will return Z_BUF_ERROR if it has not reached the end of the stream.
- */
-
-int ZEXPORT inflate(strm, flush)
-z_streamp strm;
-int flush;
-{
-    struct inflate_state FAR *state;
-    unsigned char FAR *next;    /* next input */
-    unsigned char FAR *put;     /* next output */
-    unsigned have, left;        /* available input and output */
-    unsigned long hold;         /* bit buffer */
-    unsigned bits;              /* bits in bit buffer */
-    unsigned in, out;           /* save starting available input and output */
-    unsigned copy;              /* number of stored or match bytes to copy */
-    unsigned char FAR *from;    /* where to copy match bytes from */
-    code this;                  /* current decoding table entry */
-    code last;                  /* parent table entry */
-    unsigned len;               /* length to copy for repeats, bits to drop */
-    int ret;                    /* return code */
-#ifdef GUNZIP
-    unsigned char hbuf[4];      /* buffer for gzip header crc calculation */
-#endif
-    static const unsigned short order[19] = /* permutation of code lengths */
-        {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL ||
-        (strm->next_in == Z_NULL && strm->avail_in != 0))
-        return Z_STREAM_ERROR;
-
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->mode == TYPE) state->mode = TYPEDO;      /* skip check */
-    LOAD();
-    in = have;
-    out = left;
-    ret = Z_OK;
-    for (;;)
-        switch (state->mode) {
-        case HEAD:
-            if (state->wrap == 0) {
-                state->mode = TYPEDO;
-                break;
-            }
-            NEEDBITS(16);
-#ifdef GUNZIP
-            if ((state->wrap & 2) && hold == 0x8b1f) {  /* gzip header */
-                state->check = crc32(0L, Z_NULL, 0);
-                CRC2(state->check, hold);
-                INITBITS();
-                state->mode = FLAGS;
-                break;
-            }
-            state->flags = 0;           /* expect zlib header */
-            if (!(state->wrap & 1) ||   /* check if zlib header allowed */
-#else
-            if (
-#endif
-                ((BITS(8) << 8) + (hold >> 8)) % 31) {
-                strm->msg = (char *)"incorrect header check";
-                state->mode = BAD;
-                break;
-            }
-            if (BITS(4) != Z_DEFLATED) {
-                strm->msg = (char *)"unknown compression method";
-                state->mode = BAD;
-                break;
-            }
-            DROPBITS(4);
-            if (BITS(4) + 8 > state->wbits) {
-                strm->msg = (char *)"invalid window size";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:   zlib header ok\n"));
-            strm->adler = state->check = adler32(0L, Z_NULL, 0);
-            state->mode = hold & 0x200 ? DICTID : TYPE;
-            INITBITS();
-            break;
-#ifdef GUNZIP
-        case FLAGS:
-            NEEDBITS(16);
-            state->flags = (int)(hold);
-            if ((state->flags & 0xff) != Z_DEFLATED) {
-                strm->msg = (char *)"unknown compression method";
-                state->mode = BAD;
-                break;
-            }
-            if (state->flags & 0xe000) {
-                strm->msg = (char *)"unknown header flags set";
-                state->mode = BAD;
-                break;
-            }
-            if (state->flags & 0x0200) CRC2(state->check, hold);
-            INITBITS();
-            state->mode = TIME;
-        case TIME:
-            NEEDBITS(32);
-            if (state->flags & 0x0200) CRC4(state->check, hold);
-            INITBITS();
-            state->mode = OS;
-        case OS:
-            NEEDBITS(16);
-            if (state->flags & 0x0200) CRC2(state->check, hold);
-            INITBITS();
-            state->mode = EXLEN;
-        case EXLEN:
-            if (state->flags & 0x0400) {
-                NEEDBITS(16);
-                state->length = (unsigned)(hold);
-                if (state->flags & 0x0200) CRC2(state->check, hold);
-                INITBITS();
-            }
-            state->mode = EXTRA;
-        case EXTRA:
-            if (state->flags & 0x0400) {
-                copy = state->length;
-                if (copy > have) copy = have;
-                if (copy) {
-                    if (state->flags & 0x0200)
-                        state->check = crc32(state->check, next, copy);
-                    have -= copy;
-                    next += copy;
-                    state->length -= copy;
-                }
-                if (state->length) goto inf_leave;
-            }
-            state->mode = NAME;
-        case NAME:
-            if (state->flags & 0x0800) {
-                if (have == 0) goto inf_leave;
-                copy = 0;
-                do {
-                    len = (unsigned)(next[copy++]);
-                } while (len && copy < have);
-                if (state->flags & 0x02000)
-                    state->check = crc32(state->check, next, copy);
-                have -= copy;
-                next += copy;
-                if (len) goto inf_leave;
-            }
-            state->mode = COMMENT;
-        case COMMENT:
-            if (state->flags & 0x1000) {
-                if (have == 0) goto inf_leave;
-                copy = 0;
-                do {
-                    len = (unsigned)(next[copy++]);
-                } while (len && copy < have);
-                if (state->flags & 0x02000)
-                    state->check = crc32(state->check, next, copy);
-                have -= copy;
-                next += copy;
-                if (len) goto inf_leave;
-            }
-            state->mode = HCRC;
-        case HCRC:
-            if (state->flags & 0x0200) {
-                NEEDBITS(16);
-                if (hold != (state->check & 0xffff)) {
-                    strm->msg = (char *)"header crc mismatch";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-            }
-            strm->adler = state->check = crc32(0L, Z_NULL, 0);
-            state->mode = TYPE;
-            break;
-#endif
-        case DICTID:
-            NEEDBITS(32);
-            strm->adler = state->check = REVERSE(hold);
-            INITBITS();
-            state->mode = DICT;
-        case DICT:
-            if (state->havedict == 0) {
-                RESTORE();
-                return Z_NEED_DICT;
-            }
-            strm->adler = state->check = adler32(0L, Z_NULL, 0);
-            state->mode = TYPE;
-        case TYPE:
-            if (flush == Z_BLOCK) goto inf_leave;
-        case TYPEDO:
-            if (state->last) {
-                BYTEBITS();
-                state->mode = CHECK;
-                break;
-            }
-            NEEDBITS(3);
-            state->last = BITS(1);
-            DROPBITS(1);
-            switch (BITS(2)) {
-            case 0:                             /* stored block */
-                Tracev((stderr, "inflate:     stored block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = STORED;
-                break;
-            case 1:                             /* fixed block */
-                fixedtables(state);
-                Tracev((stderr, "inflate:     fixed codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = LEN;              /* decode codes */
-                break;
-            case 2:                             /* dynamic block */
-                Tracev((stderr, "inflate:     dynamic codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = TABLE;
-                break;
-            case 3:
-                strm->msg = (char *)"invalid block type";
-                state->mode = BAD;
-            }
-            DROPBITS(2);
-            break;
-        case STORED:
-            BYTEBITS();                         /* go to byte boundary */
-            NEEDBITS(32);
-            if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
-                strm->msg = (char *)"invalid stored block lengths";
-                state->mode = BAD;
-                break;
-            }
-            state->length = (unsigned)hold & 0xffff;
-            Tracev((stderr, "inflate:       stored length %u\n",
-                    state->length));
-            INITBITS();
-            state->mode = COPY;
-        case COPY:
-            copy = state->length;
-            if (copy) {
-                if (copy > have) copy = have;
-                if (copy > left) copy = left;
-                if (copy == 0) goto inf_leave;
-                zmemcpy(put, next, copy);
-                have -= copy;
-                next += copy;
-                left -= copy;
-                put += copy;
-                state->length -= copy;
-                break;
-            }
-            Tracev((stderr, "inflate:       stored end\n"));
-            state->mode = TYPE;
-            break;
-        case TABLE:
-            NEEDBITS(14);
-            state->nlen = BITS(5) + 257;
-            DROPBITS(5);
-            state->ndist = BITS(5) + 1;
-            DROPBITS(5);
-            state->ncode = BITS(4) + 4;
-            DROPBITS(4);
-#ifndef PKZIP_BUG_WORKAROUND
-            if (state->nlen > 286 || state->ndist > 30) {
-                strm->msg = (char *)"too many length or distance symbols";
-                state->mode = BAD;
-                break;
-            }
-#endif
-            Tracev((stderr, "inflate:       table sizes ok\n"));
-            state->have = 0;
-            state->mode = LENLENS;
-        case LENLENS:
-            while (state->have < state->ncode) {
-                NEEDBITS(3);
-                state->lens[order[state->have++]] = (unsigned short)BITS(3);
-                DROPBITS(3);
-            }
-            while (state->have < 19)
-                state->lens[order[state->have++]] = 0;
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 7;
-            ret = inflate_table(CODES, state->lens, 19, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid code lengths set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       code lengths ok\n"));
-            state->have = 0;
-            state->mode = CODELENS;
-        case CODELENS:
-            while (state->have < state->nlen + state->ndist) {
-                for (;;) {
-                    this = state->lencode[BITS(state->lenbits)];
-                    if ((unsigned)(this.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                if (this.val < 16) {
-                    NEEDBITS(this.bits);
-                    DROPBITS(this.bits);
-                    state->lens[state->have++] = this.val;
-                }
-                else {
-                    if (this.val == 16) {
-                        NEEDBITS(this.bits + 2);
-                        DROPBITS(this.bits);
-                        if (state->have == 0) {
-                            strm->msg = (char *)"invalid bit length repeat";
-                            state->mode = BAD;
-                            break;
-                        }
-                        len = state->lens[state->have - 1];
-                        copy = 3 + BITS(2);
-                        DROPBITS(2);
-                    }
-                    else if (this.val == 17) {
-                        NEEDBITS(this.bits + 3);
-                        DROPBITS(this.bits);
-                        len = 0;
-                        copy = 3 + BITS(3);
-                        DROPBITS(3);
-                    }
-                    else {
-                        NEEDBITS(this.bits + 7);
-                        DROPBITS(this.bits);
-                        len = 0;
-                        copy = 11 + BITS(7);
-                        DROPBITS(7);
-                    }
-                    if (state->have + copy > state->nlen + state->ndist) {
-                        strm->msg = (char *)"invalid bit length repeat";
-                        state->mode = BAD;
-                        break;
-                    }
-                    while (copy--)
-                        state->lens[state->have++] = (unsigned short)len;
-                }
-            }
-
-            /* build code tables */
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 9;
-            ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid literal/lengths set";
-                state->mode = BAD;
-                break;
-            }
-            state->distcode = (code const FAR *)(state->next);
-            state->distbits = 6;
-            ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
-                            &(state->next), &(state->distbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid distances set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       codes ok\n"));
-            state->mode = LEN;
-        case LEN:
-            if (have >= 6 && left >= 258) {
-                RESTORE();
-                inflate_fast(strm, out);
-                LOAD();
-                break;
-            }
-            for (;;) {
-                this = state->lencode[BITS(state->lenbits)];
-                if ((unsigned)(this.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if (this.op && (this.op & 0xf0) == 0) {
-                last = this;
-                for (;;) {
-                    this = state->lencode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + this.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-            }
-            DROPBITS(this.bits);
-            state->length = (unsigned)this.val;
-            if ((int)(this.op) == 0) {
-                Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ?
-                        "inflate:         literal '%c'\n" :
-                        "inflate:         literal 0x%02x\n", this.val));
-                state->mode = LIT;
-                break;
-            }
-            if (this.op & 32) {
-                Tracevv((stderr, "inflate:         end of block\n"));
-                state->mode = TYPE;
-                break;
-            }
-            if (this.op & 64) {
-                strm->msg = (char *)"invalid literal/length code";
-                state->mode = BAD;
-                break;
-            }
-            state->extra = (unsigned)(this.op) & 15;
-            state->mode = LENEXT;
-        case LENEXT:
-            if (state->extra) {
-                NEEDBITS(state->extra);
-                state->length += BITS(state->extra);
-                DROPBITS(state->extra);
-            }
-            Tracevv((stderr, "inflate:         length %u\n", state->length));
-            state->mode = DIST;
-        case DIST:
-            for (;;) {
-                this = state->distcode[BITS(state->distbits)];
-                if ((unsigned)(this.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if ((this.op & 0xf0) == 0) {
-                last = this;
-                for (;;) {
-                    this = state->distcode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + this.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-            }
-            DROPBITS(this.bits);
-            if (this.op & 64) {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-            state->offset = (unsigned)this.val;
-            state->extra = (unsigned)(this.op) & 15;
-            state->mode = DISTEXT;
-        case DISTEXT:
-            if (state->extra) {
-                NEEDBITS(state->extra);
-                state->offset += BITS(state->extra);
-                DROPBITS(state->extra);
-            }
-            if (state->offset > state->whave + out - left) {
-                strm->msg = (char *)"invalid distance too far back";
-                state->mode = BAD;
-                break;
-            }
-            Tracevv((stderr, "inflate:         distance %u\n", state->offset));
-            state->mode = MATCH;
-        case MATCH:
-            if (left == 0) goto inf_leave;
-            copy = out - left;
-            if (state->offset > copy) {         /* copy from window */
-                copy = state->offset - copy;
-                if (copy > state->write) {
-                    copy -= state->write;
-                    from = state->window + (state->wsize - copy);
-                }
-                else
-                    from = state->window + (state->write - copy);
-                if (copy > state->length) copy = state->length;
-            }
-            else {                              /* copy from output */
-                from = put - state->offset;
-                copy = state->length;
-            }
-            if (copy > left) copy = left;
-            left -= copy;
-            state->length -= copy;
-            do {
-                *put++ = *from++;
-            } while (--copy);
-            if (state->length == 0) state->mode = LEN;
-            break;
-        case LIT:
-            if (left == 0) goto inf_leave;
-            *put++ = (unsigned char)(state->length);
-            left--;
-            state->mode = LEN;
-            break;
-        case CHECK:
-            if (state->wrap) {
-                NEEDBITS(32);
-                out -= left;
-                strm->total_out += out;
-                state->total += out;
-                if (out)
-                    strm->adler = state->check =
-                        UPDATE(state->check, put - out, out);
-                out = left;
-                if ((
-#ifdef GUNZIP
-                     state->flags ? hold :
-#endif
-                     REVERSE(hold)) != state->check) {
-                    strm->msg = (char *)"incorrect data check";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-                Tracev((stderr, "inflate:   check matches trailer\n"));
-            }
-#ifdef GUNZIP
-            state->mode = LENGTH;
-        case LENGTH:
-            if (state->wrap && state->flags) {
-                NEEDBITS(32);
-                if (hold != (state->total & 0xffffffffUL)) {
-                    strm->msg = (char *)"incorrect length check";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-                Tracev((stderr, "inflate:   length matches trailer\n"));
-            }
-#endif
-            state->mode = DONE;
-        case DONE:
-            ret = Z_STREAM_END;
-            goto inf_leave;
-        case BAD:
-            ret = Z_DATA_ERROR;
-            goto inf_leave;
-        case MEM:
-            return Z_MEM_ERROR;
-        case SYNC:
-        default:
-            return Z_STREAM_ERROR;
-        }
-
-    /*
-       Return from inflate(), updating the total counts and the check value.
-       If there was no progress during the inflate() call, return a buffer
-       error.  Call updatewindow() to create and/or update the window state.
-       Note: a memory error from inflate() is non-recoverable.
-     */
-  inf_leave:
-    RESTORE();
-    if (state->wsize || (state->mode < CHECK && out != strm->avail_out))
-        if (updatewindow(strm, out)) {
-            state->mode = MEM;
-            return Z_MEM_ERROR;
-        }
-    in -= strm->avail_in;
-    out -= strm->avail_out;
-    strm->total_in += in;
-    strm->total_out += out;
-    state->total += out;
-    if (state->wrap && out)
-        strm->adler = state->check =
-            UPDATE(state->check, strm->next_out - out, out);
-    strm->data_type = state->bits + (state->last ? 64 : 0) +
-                      (state->mode == TYPE ? 128 : 0);
-    if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK)
-        ret = Z_BUF_ERROR;
-    return ret;
-}
-
-int ZEXPORT inflateEnd(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->window != Z_NULL) ZFREE(strm, state->window);
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-    Tracev((stderr, "inflate: end\n"));
-    return Z_OK;
-}
-
-int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength)
-z_streamp strm;
-const Bytef *dictionary;
-uInt dictLength;
-{
-    struct inflate_state FAR *state;
-    unsigned long id;
-
-    /* check state */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->mode != DICT) return Z_STREAM_ERROR;
-
-    /* check for correct dictionary id */
-    id = adler32(0L, Z_NULL, 0);
-    id = adler32(id, dictionary, dictLength);
-    if (id != state->check) return Z_DATA_ERROR;
-
-    /* copy dictionary to window */
-    if (updatewindow(strm, strm->avail_out)) {
-        state->mode = MEM;
-        return Z_MEM_ERROR;
-    }
-    if (dictLength > state->wsize) {
-        zmemcpy(state->window, dictionary + dictLength - state->wsize,
-                state->wsize);
-        state->whave = state->wsize;
-    }
-    else {
-        zmemcpy(state->window + state->wsize - dictLength, dictionary,
-                dictLength);
-        state->whave = dictLength;
-    }
-    state->havedict = 1;
-    Tracev((stderr, "inflate:   dictionary set\n"));
-    return Z_OK;
-}
-
-/*
-   Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff.  Return when found
-   or when out of input.  When called, *have is the number of pattern bytes
-   found in order so far, in 0..3.  On return *have is updated to the new
-   state.  If on return *have equals four, then the pattern was found and the
-   return value is how many bytes were read including the last byte of the
-   pattern.  If *have is less than four, then the pattern has not been found
-   yet and the return value is len.  In the latter case, syncsearch() can be
-   called again with more data and the *have state.  *have is initialized to
-   zero for the first call.
- */
-local unsigned syncsearch(have, buf, len)
-unsigned FAR *have;
-unsigned char FAR *buf;
-unsigned len;
-{
-    unsigned got;
-    unsigned next;
-
-    got = *have;
-    next = 0;
-    while (next < len && got < 4) {
-        if ((int)(buf[next]) == (got < 2 ? 0 : 0xff))
-            got++;
-        else if (buf[next])
-            got = 0;
-        else
-            got = 4 - got;
-        next++;
-    }
-    *have = got;
-    return next;
-}
-
-int ZEXPORT inflateSync(strm)
-z_streamp strm;
-{
-    unsigned len;               /* number of bytes to look at or looked at */
-    unsigned long in, out;      /* temporary to save total_in and total_out */
-    unsigned char buf[4];       /* to restore bit buffer to byte string */
-    struct inflate_state FAR *state;
-
-    /* check parameters */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR;
-
-    /* if first time, start search in bit buffer */
-    if (state->mode != SYNC) {
-        state->mode = SYNC;
-        state->hold <<= state->bits & 7;
-        state->bits -= state->bits & 7;
-        len = 0;
-        while (state->bits >= 8) {
-            buf[len++] = (unsigned char)(state->hold);
-            state->hold >>= 8;
-            state->bits -= 8;
-        }
-        state->have = 0;
-        syncsearch(&(state->have), buf, len);
-    }
-
-    /* search available input */
-    len = syncsearch(&(state->have), strm->next_in, strm->avail_in);
-    strm->avail_in -= len;
-    strm->next_in += len;
-    strm->total_in += len;
-
-    /* return no joy or set up to restart inflate() on a new block */
-    if (state->have != 4) return Z_DATA_ERROR;
-    in = strm->total_in;  out = strm->total_out;
-    inflateReset(strm);
-    strm->total_in = in;  strm->total_out = out;
-    state->mode = TYPE;
-    return Z_OK;
-}
-
-/*
-   Returns true if inflate is currently at the end of a block generated by
-   Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
-   implementation to provide an additional safety check. PPP uses
-   Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
-   block. When decompressing, PPP checks that at the end of input packet,
-   inflate is waiting for these length bytes.
- */
-int ZEXPORT inflateSyncPoint(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    return state->mode == STORED && state->bits == 0;
-}
-
-int ZEXPORT inflateCopy(dest, source)
-z_streamp dest;
-z_streamp source;
-{
-    struct inflate_state FAR *state;
-    struct inflate_state FAR *copy;
-    unsigned char FAR *window;
-
-    /* check input */
-    if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL ||
-        source->zalloc == (alloc_func)0 || source->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)source->state;
-
-    /* allocate space */
-    copy = (struct inflate_state FAR *)
-           ZALLOC(source, 1, sizeof(struct inflate_state));
-    if (copy == Z_NULL) return Z_MEM_ERROR;
-    window = Z_NULL;
-    if (state->window != Z_NULL) {
-        window = (unsigned char FAR *)
-                 ZALLOC(source, 1U << state->wbits, sizeof(unsigned char));
-        if (window == Z_NULL) {
-            ZFREE(source, copy);
-            return Z_MEM_ERROR;
-        }
-    }
-
-    /* copy state */
-    *dest = *source;
-    *copy = *state;
-    copy->lencode = copy->codes + (state->lencode - state->codes);
-    copy->distcode = copy->codes + (state->distcode - state->codes);
-    copy->next = copy->codes + (state->next - state->codes);
-    if (window != Z_NULL)
-        zmemcpy(window, state->window, 1U << state->wbits);
-    copy->window = window;
-    dest->state = (voidpf)copy;
-    return Z_OK;
-}
diff --git a/klibc/klibc/zlib/inflate.h b/klibc/klibc/zlib/inflate.h
deleted file mode 100644 (file)
index 9a12c8f..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/* inflate.h -- internal inflate state definition
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* define NO_GZIP when compiling if you want to disable gzip header and
-   trailer decoding by inflate().  NO_GZIP would be used to avoid linking in
-   the crc code when it is not needed.  For shared libraries, gzip decoding
-   should be left enabled. */
-#ifndef NO_GZIP
-#  define GUNZIP
-#endif
-
-/* Possible inflate modes between inflate() calls */
-typedef enum {
-    HEAD,       /* i: waiting for magic header */
-#ifdef GUNZIP
-    FLAGS,      /* i: waiting for method and flags (gzip) */
-    TIME,       /* i: waiting for modification time (gzip) */
-    OS,         /* i: waiting for extra flags and operating system (gzip) */
-    EXLEN,      /* i: waiting for extra length (gzip) */
-    EXTRA,      /* i: waiting for extra bytes (gzip) */
-    NAME,       /* i: waiting for end of file name (gzip) */
-    COMMENT,    /* i: waiting for end of comment (gzip) */
-    HCRC,       /* i: waiting for header crc (gzip) */
-#endif
-    DICTID,     /* i: waiting for dictionary check value */
-    DICT,       /* waiting for inflateSetDictionary() call */
-        TYPE,       /* i: waiting for type bits, including last-flag bit */
-        TYPEDO,     /* i: same, but skip check to exit inflate on new block */
-        STORED,     /* i: waiting for stored size (length and complement) */
-        COPY,       /* i/o: waiting for input or output to copy stored block */
-        TABLE,      /* i: waiting for dynamic block table lengths */
-        LENLENS,    /* i: waiting for code length code lengths */
-        CODELENS,   /* i: waiting for length/lit and distance code lengths */
-            LEN,        /* i: waiting for length/lit code */
-            LENEXT,     /* i: waiting for length extra bits */
-            DIST,       /* i: waiting for distance code */
-            DISTEXT,    /* i: waiting for distance extra bits */
-            MATCH,      /* o: waiting for output space to copy string */
-            LIT,        /* o: waiting for output space to write literal */
-    CHECK,      /* i: waiting for 32-bit check value */
-#ifdef GUNZIP
-    LENGTH,     /* i: waiting for 32-bit length (gzip) */
-#endif
-    DONE,       /* finished check, done -- remain here until reset */
-    BAD,        /* got a data error -- remain here until reset */
-    MEM,        /* got an inflate() memory error -- remain here until reset */
-    SYNC        /* looking for synchronization bytes to restart inflate() */
-} inflate_mode;
-
-/*
-    State transitions between above modes -
-
-    (most modes can go to the BAD or MEM mode -- not shown for clarity)
-
-    Process header:
-        HEAD -> (gzip) or (zlib)
-        (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME
-        NAME -> COMMENT -> HCRC -> TYPE
-        (zlib) -> DICTID or TYPE
-        DICTID -> DICT -> TYPE
-    Read deflate blocks:
-            TYPE -> STORED or TABLE or LEN or CHECK
-            STORED -> COPY -> TYPE
-            TABLE -> LENLENS -> CODELENS -> LEN
-    Read deflate codes:
-                LEN -> LENEXT or LIT or TYPE
-                LENEXT -> DIST -> DISTEXT -> MATCH -> LEN
-                LIT -> LEN
-    Process trailer:
-        CHECK -> LENGTH -> DONE
- */
-
-/* state maintained between inflate() calls.  Approximately 7K bytes. */
-struct inflate_state {
-    inflate_mode mode;          /* current inflate mode */
-    int last;                   /* true if processing last block */
-    int wrap;                   /* bit 0 true for zlib, bit 1 true for gzip */
-    int havedict;               /* true if dictionary provided */
-    int flags;                  /* gzip header method and flags (0 if zlib) */
-    unsigned long check;        /* protected copy of check value */
-    unsigned long total;        /* protected copy of output count */
-        /* sliding window */
-    unsigned wbits;             /* log base 2 of requested window size */
-    unsigned wsize;             /* window size or zero if not using window */
-    unsigned whave;             /* valid bytes in the window */
-    unsigned write;             /* window write index */
-    unsigned char FAR *window;  /* allocated sliding window, if needed */
-        /* bit accumulator */
-    unsigned long hold;         /* input bit accumulator */
-    unsigned bits;              /* number of bits in "in" */
-        /* for string and stored block copying */
-    unsigned length;            /* literal or length of data to copy */
-    unsigned offset;            /* distance back to copy string from */
-        /* for table and code decoding */
-    unsigned extra;             /* extra bits needed */
-        /* fixed and dynamic code tables */
-    code const FAR *lencode;    /* starting table for length/literal codes */
-    code const FAR *distcode;   /* starting table for distance codes */
-    unsigned lenbits;           /* index bits for lencode */
-    unsigned distbits;          /* index bits for distcode */
-        /* dynamic table building */
-    unsigned ncode;             /* number of code length code lengths */
-    unsigned nlen;              /* number of length code lengths */
-    unsigned ndist;             /* number of distance code lengths */
-    unsigned have;              /* number of code lengths in lens[] */
-    code FAR *next;             /* next available space in codes[] */
-    unsigned short lens[320];   /* temporary storage for code lengths */
-    unsigned short work[288];   /* work area for code table building */
-    code codes[ENOUGH];         /* space for code tables */
-};
diff --git a/klibc/klibc/zlib/inftrees.c b/klibc/klibc/zlib/inftrees.c
deleted file mode 100644 (file)
index 3bb5639..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-
-#define MAXBITS 15
-
-const char inflate_copyright[] =
-   " inflate 1.2.1 Copyright 1995-2003 Mark Adler ";
-/*
-  If you use the zlib library in a product, an acknowledgment is welcome
-  in the documentation of your product. If for some reason you cannot
-  include such an acknowledgment, I would appreciate that you keep this
-  copyright string in the executable of your product.
- */
-
-/*
-   Build a set of tables to decode the provided canonical Huffman code.
-   The code lengths are lens[0..codes-1].  The result starts at *table,
-   whose indices are 0..2^bits-1.  work is a writable array of at least
-   lens shorts, which is used as a work area.  type is the type of code
-   to be generated, CODES, LENS, or DISTS.  On return, zero is success,
-   -1 is an invalid code, and +1 means that ENOUGH isn't enough.  table
-   on return points to the next available entry's address.  bits is the
-   requested root table index bits, and on return it is the actual root
-   table index bits.  It will differ if the request is greater than the
-   longest code or if it is less than the shortest code.
- */
-int inflate_table(type, lens, codes, table, bits, work)
-codetype type;
-unsigned short FAR *lens;
-unsigned codes;
-code FAR * FAR *table;
-unsigned FAR *bits;
-unsigned short FAR *work;
-{
-    unsigned len;               /* a code's length in bits */
-    unsigned sym;               /* index of code symbols */
-    unsigned min, max;          /* minimum and maximum code lengths */
-    unsigned root;              /* number of index bits for root table */
-    unsigned curr;              /* number of index bits for current table */
-    unsigned drop;              /* code bits to drop for sub-table */
-    int left;                   /* number of prefix codes available */
-    unsigned used;              /* code entries in table used */
-    unsigned huff;              /* Huffman code */
-    unsigned incr;              /* for incrementing code, index */
-    unsigned fill;              /* index for replicating entries */
-    unsigned low;               /* low bits for current root entry */
-    unsigned mask;              /* mask for low root bits */
-    code this;                  /* table entry for duplication */
-    code FAR *next;             /* next available space in table */
-    const unsigned short FAR *base;     /* base value table to use */
-    const unsigned short FAR *extra;    /* extra bits table to use */
-    int end;                    /* use base and extra for symbol > end */
-    unsigned short count[MAXBITS+1];    /* number of codes of each length */
-    unsigned short offs[MAXBITS+1];     /* offsets in table for each length */
-    static const unsigned short lbase[31] = { /* Length codes 257..285 base */
-        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
-        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
-    static const unsigned short lext[31] = { /* Length codes 257..285 extra */
-        16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
-        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 76, 66};
-    static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
-        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
-        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
-        8193, 12289, 16385, 24577, 0, 0};
-    static const unsigned short dext[32] = { /* Distance codes 0..29 extra */
-        16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
-        23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
-        28, 28, 29, 29, 64, 64};
-
-    /*
-       Process a set of code lengths to create a canonical Huffman code.  The
-       code lengths are lens[0..codes-1].  Each length corresponds to the
-       symbols 0..codes-1.  The Huffman code is generated by first sorting the
-       symbols by length from short to long, and retaining the symbol order
-       for codes with equal lengths.  Then the code starts with all zero bits
-       for the first code of the shortest length, and the codes are integer
-       increments for the same length, and zeros are appended as the length
-       increases.  For the deflate format, these bits are stored backwards
-       from their more natural integer increment ordering, and so when the
-       decoding tables are built in the large loop below, the integer codes
-       are incremented backwards.
-
-       This routine assumes, but does not check, that all of the entries in
-       lens[] are in the range 0..MAXBITS.  The caller must assure this.
-       1..MAXBITS is interpreted as that code length.  zero means that that
-       symbol does not occur in this code.
-
-       The codes are sorted by computing a count of codes for each length,
-       creating from that a table of starting indices for each length in the
-       sorted table, and then entering the symbols in order in the sorted
-       table.  The sorted table is work[], with that space being provided by
-       the caller.
-
-       The length counts are used for other purposes as well, i.e. finding
-       the minimum and maximum length codes, determining if there are any
-       codes at all, checking for a valid set of lengths, and looking ahead
-       at length counts to determine sub-table sizes when building the
-       decoding tables.
-     */
-
-    /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
-    for (len = 0; len <= MAXBITS; len++)
-        count[len] = 0;
-    for (sym = 0; sym < codes; sym++)
-        count[lens[sym]]++;
-
-    /* bound code lengths, force root to be within code lengths */
-    root = *bits;
-    for (max = MAXBITS; max >= 1; max--)
-        if (count[max] != 0) break;
-    if (root > max) root = max;
-    if (max == 0) return -1;            /* no codes! */
-    for (min = 1; min <= MAXBITS; min++)
-        if (count[min] != 0) break;
-    if (root < min) root = min;
-
-    /* check for an over-subscribed or incomplete set of lengths */
-    left = 1;
-    for (len = 1; len <= MAXBITS; len++) {
-        left <<= 1;
-        left -= count[len];
-        if (left < 0) return -1;        /* over-subscribed */
-    }
-    if (left > 0 && (type == CODES || (codes - count[0] != 1)))
-        return -1;                      /* incomplete set */
-
-    /* generate offsets into symbol table for each length for sorting */
-    offs[1] = 0;
-    for (len = 1; len < MAXBITS; len++)
-        offs[len + 1] = offs[len] + count[len];
-
-    /* sort symbols by length, by symbol order within each length */
-    for (sym = 0; sym < codes; sym++)
-        if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym;
-
-    /*
-       Create and fill in decoding tables.  In this loop, the table being
-       filled is at next and has curr index bits.  The code being used is huff
-       with length len.  That code is converted to an index by dropping drop
-       bits off of the bottom.  For codes where len is less than drop + curr,
-       those top drop + curr - len bits are incremented through all values to
-       fill the table with replicated entries.
-
-       root is the number of index bits for the root table.  When len exceeds
-       root, sub-tables are created pointed to by the root entry with an index
-       of the low root bits of huff.  This is saved in low to check for when a
-       new sub-table should be started.  drop is zero when the root table is
-       being filled, and drop is root when sub-tables are being filled.
-
-       When a new sub-table is needed, it is necessary to look ahead in the
-       code lengths to determine what size sub-table is needed.  The length
-       counts are used for this, and so count[] is decremented as codes are
-       entered in the tables.
-
-       used keeps track of how many table entries have been allocated from the
-       provided *table space.  It is checked when a LENS table is being made
-       against the space in *table, ENOUGH, minus the maximum space needed by
-       the worst case distance code, MAXD.  This should never happen, but the
-       sufficiency of ENOUGH has not been proven exhaustively, hence the check.
-       This assumes that when type == LENS, bits == 9.
-
-       sym increments through all symbols, and the loop terminates when
-       all codes of length max, i.e. all codes, have been processed.  This
-       routine permits incomplete codes, so another loop after this one fills
-       in the rest of the decoding tables with invalid code markers.
-     */
-
-    /* set up for code type */
-    switch (type) {
-    case CODES:
-        base = extra = work;    /* dummy value--not used */
-        end = 19;
-        break;
-    case LENS:
-        base = lbase;
-        base -= 257;
-        extra = lext;
-        extra -= 257;
-        end = 256;
-        break;
-    default:            /* DISTS */
-        base = dbase;
-        extra = dext;
-        end = -1;
-    }
-
-    /* initialize state for loop */
-    huff = 0;                   /* starting code */
-    sym = 0;                    /* starting code symbol */
-    len = min;                  /* starting code length */
-    next = *table;              /* current table to fill in */
-    curr = root;                /* current table index bits */
-    drop = 0;                   /* current bits to drop from code for index */
-    low = (unsigned)(-1);       /* trigger new sub-table when len > root */
-    used = 1U << root;          /* use root table entries */
-    mask = used - 1;            /* mask for comparing low */
-
-    /* check available table space */
-    if (type == LENS && used >= ENOUGH - MAXD)
-        return 1;
-
-    /* process all codes and make table entries */
-    for (;;) {
-        /* create table entry */
-        this.bits = (unsigned char)(len - drop);
-        if ((int)(work[sym]) < end) {
-            this.op = (unsigned char)0;
-            this.val = work[sym];
-        }
-        else if ((int)(work[sym]) > end) {
-            this.op = (unsigned char)(extra[work[sym]]);
-            this.val = base[work[sym]];
-        }
-        else {
-            this.op = (unsigned char)(32 + 64);         /* end of block */
-            this.val = 0;
-        }
-
-        /* replicate for those indices with low len bits equal to huff */
-        incr = 1U << (len - drop);
-        fill = 1U << curr;
-        do {
-            fill -= incr;
-            next[(huff >> drop) + fill] = this;
-        } while (fill != 0);
-
-        /* backwards increment the len-bit code huff */
-        incr = 1U << (len - 1);
-        while (huff & incr)
-            incr >>= 1;
-        if (incr != 0) {
-            huff &= incr - 1;
-            huff += incr;
-        }
-        else
-            huff = 0;
-
-        /* go to next symbol, update count, len */
-        sym++;
-        if (--(count[len]) == 0) {
-            if (len == max) break;
-            len = lens[work[sym]];
-        }
-
-        /* create new sub-table if needed */
-        if (len > root && (huff & mask) != low) {
-            /* if first time, transition to sub-tables */
-            if (drop == 0)
-                drop = root;
-
-            /* increment past last table */
-            next += 1U << curr;
-
-            /* determine length of next table */
-            curr = len - drop;
-            left = (int)(1 << curr);
-            while (curr + drop < max) {
-                left -= count[curr + drop];
-                if (left <= 0) break;
-                curr++;
-                left <<= 1;
-            }
-
-            /* check for enough space */
-            used += 1U << curr;
-            if (type == LENS && used >= ENOUGH - MAXD)
-                return 1;
-
-            /* point entry in root table to sub-table */
-            low = huff & mask;
-            (*table)[low].op = (unsigned char)curr;
-            (*table)[low].bits = (unsigned char)root;
-            (*table)[low].val = (unsigned short)(next - *table);
-        }
-    }
-
-    /*
-       Fill in rest of table for incomplete codes.  This loop is similar to the
-       loop above in incrementing huff for table indices.  It is assumed that
-       len is equal to curr + drop, so there is no loop needed to increment
-       through high index bits.  When the current sub-table is filled, the loop
-       drops back to the root table to fill in any remaining entries there.
-     */
-    this.op = (unsigned char)64;                /* invalid code marker */
-    this.bits = (unsigned char)(len - drop);
-    this.val = (unsigned short)0;
-    while (huff != 0) {
-        /* when done with sub-table, drop back to root table */
-        if (drop != 0 && (huff & mask) != low) {
-            drop = 0;
-            len = root;
-            next = *table;
-            curr = root;
-            this.bits = (unsigned char)len;
-        }
-
-        /* put invalid code marker in table */
-        next[huff >> drop] = this;
-
-        /* backwards increment the len-bit code huff */
-        incr = 1U << (len - 1);
-        while (huff & incr)
-            incr >>= 1;
-        if (incr != 0) {
-            huff &= incr - 1;
-            huff += incr;
-        }
-        else
-            huff = 0;
-    }
-
-    /* set return parameters */
-    *table += used;
-    *bits = root;
-    return 0;
-}
diff --git a/klibc/klibc/zlib/inftrees.h b/klibc/klibc/zlib/inftrees.h
deleted file mode 100644 (file)
index 82d365a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995-2003 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* Structure for decoding tables.  Each entry provides either the
-   information needed to do the operation requested by the code that
-   indexed that table entry, or it provides a pointer to another
-   table that indexes more bits of the code.  op indicates whether
-   the entry is a pointer to another table, a literal, a length or
-   distance, an end-of-block, or an invalid code.  For a table
-   pointer, the low four bits of op is the number of index bits of
-   that table.  For a length or distance, the low four bits of op
-   is the number of extra bits to get after the code.  bits is
-   the number of bits in this code or part of the code to drop off
-   of the bit buffer.  val is the actual byte to output in the case
-   of a literal, the base length or distance, or the offset from
-   the current table to the next table.  Each entry is four bytes. */
-typedef struct {
-    unsigned char op;           /* operation, extra bits, table bits */
-    unsigned char bits;         /* bits in this part of the code */
-    unsigned short val;         /* offset in table or code value */
-} code;
-
-/* op values as set by inflate_table():
-    00000000 - literal
-    0000tttt - table link, tttt != 0 is the number of table index bits
-    0001eeee - length or distance, eeee is the number of extra bits
-    01100000 - end of block
-    01000000 - invalid code
- */
-
-/* Maximum size of dynamic tree.  The maximum found in a long but non-
-   exhaustive search was 1004 code structures (850 for length/literals
-   and 154 for distances, the latter actually the result of an
-   exhaustive search).  The true maximum is not known, but the value
-   below is more than safe. */
-#define ENOUGH 1440
-#define MAXD 154
-
-/* Type of code to build for inftable() */
-typedef enum {
-    CODES,
-    LENS,
-    DISTS
-} codetype;
-
-extern int inflate_table OF((codetype type, unsigned short FAR *lens,
-                             unsigned codes, code FAR * FAR *table,
-                             unsigned FAR *bits, unsigned short FAR *work));
diff --git a/klibc/klibc/zlib/trees.c b/klibc/klibc/zlib/trees.c
deleted file mode 100644 (file)
index f7748c4..0000000
+++ /dev/null
@@ -1,1215 +0,0 @@
-/* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995-2003 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- *  ALGORITHM
- *
- *      The "deflation" process uses several Huffman trees. The more
- *      common source values are represented by shorter bit sequences.
- *
- *      Each code tree is stored in a compressed form which is itself
- * a Huffman encoding of the lengths of all the code strings (in
- * ascending order by source values).  The actual code strings are
- * reconstructed from the lengths in the inflate process, as described
- * in the deflate specification.
- *
- *  REFERENCES
- *
- *      Deutsch, L.P.,"'Deflate' Compressed Data Format Specification".
- *      Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
- *
- *      Storer, James A.
- *          Data Compression:  Methods and Theory, pp. 49-50.
- *          Computer Science Press, 1988.  ISBN 0-7167-8156-5.
- *
- *      Sedgewick, R.
- *          Algorithms, p290.
- *          Addison-Wesley, 1983. ISBN 0-201-06672-6.
- */
-
-/* @(#) $Id: trees.c,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-/* #define GEN_TREES_H */
-
-#include "deflate.h"
-
-#ifdef DEBUG
-#  include <ctype.h>
-#endif
-
-/* ===========================================================================
- * Constants
- */
-
-#define MAX_BL_BITS 7
-/* Bit length codes must not exceed MAX_BL_BITS bits */
-
-#define END_BLOCK 256
-/* end of block literal code */
-
-#define REP_3_6      16
-/* repeat previous bit length 3-6 times (2 bits of repeat count) */
-
-#define REPZ_3_10    17
-/* repeat a zero length 3-10 times  (3 bits of repeat count) */
-
-#define REPZ_11_138  18
-/* repeat a zero length 11-138 times  (7 bits of repeat count) */
-
-local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
-   = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
-
-local const int extra_dbits[D_CODES] /* extra bits for each distance code */
-   = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
-
-local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */
-   = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
-
-local const uch bl_order[BL_CODES]
-   = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
-/* The lengths of the bit length codes are sent in order of decreasing
- * probability, to avoid transmitting the lengths for unused bit length codes.
- */
-
-#define Buf_size (8 * 2*sizeof(char))
-/* Number of bits used within bi_buf. (bi_buf might be implemented on
- * more than 16 bits on some systems.)
- */
-
-/* ===========================================================================
- * Local data. These are initialized only once.
- */
-
-#define DIST_CODE_LEN  512 /* see definition of array dist_code below */
-
-#if defined(GEN_TREES_H) || !defined(STDC)
-/* non ANSI compilers may not accept trees.h */
-
-local ct_data static_ltree[L_CODES+2];
-/* The static literal tree. Since the bit lengths are imposed, there is no
- * need for the L_CODES extra codes used during heap construction. However
- * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
- * below).
- */
-
-local ct_data static_dtree[D_CODES];
-/* The static distance tree. (Actually a trivial tree since all codes use
- * 5 bits.)
- */
-
-uch _dist_code[DIST_CODE_LEN];
-/* Distance codes. The first 256 values correspond to the distances
- * 3 .. 258, the last 256 values correspond to the top 8 bits of
- * the 15 bit distances.
- */
-
-uch _length_code[MAX_MATCH-MIN_MATCH+1];
-/* length code for each normalized match length (0 == MIN_MATCH) */
-
-local int base_length[LENGTH_CODES];
-/* First normalized length for each code (0 = MIN_MATCH) */
-
-local int base_dist[D_CODES];
-/* First normalized distance for each code (0 = distance of 1) */
-
-#else
-#  include "trees.h"
-#endif /* GEN_TREES_H */
-
-struct static_tree_desc_s {
-    const ct_data *static_tree;  /* static tree or NULL */
-    const intf *extra_bits;      /* extra bits for each code or NULL */
-    int     extra_base;          /* base index for extra_bits */
-    int     elems;               /* max number of elements in the tree */
-    int     max_length;          /* max bit length for the codes */
-};
-
-local static_tree_desc  static_l_desc =
-{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
-
-local static_tree_desc  static_d_desc =
-{static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS};
-
-local static_tree_desc  static_bl_desc =
-{(const ct_data *)0, extra_blbits, 0,   BL_CODES, MAX_BL_BITS};
-
-/* ===========================================================================
- * Local (static) routines in this file.
- */
-
-local void tr_static_init OF((void));
-local void init_block     OF((deflate_state *s));
-local void pqdownheap     OF((deflate_state *s, ct_data *tree, int k));
-local void gen_bitlen     OF((deflate_state *s, tree_desc *desc));
-local void gen_codes      OF((ct_data *tree, int max_code, ushf *bl_count));
-local void build_tree     OF((deflate_state *s, tree_desc *desc));
-local void scan_tree      OF((deflate_state *s, ct_data *tree, int max_code));
-local void send_tree      OF((deflate_state *s, ct_data *tree, int max_code));
-local int  build_bl_tree  OF((deflate_state *s));
-local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
-                              int blcodes));
-local void compress_block OF((deflate_state *s, ct_data *ltree,
-                              ct_data *dtree));
-local void set_data_type  OF((deflate_state *s));
-local unsigned bi_reverse OF((unsigned value, int length));
-local void bi_windup      OF((deflate_state *s));
-local void bi_flush       OF((deflate_state *s));
-local void copy_block     OF((deflate_state *s, charf *buf, unsigned len,
-                              int header));
-
-#ifdef GEN_TREES_H
-local void gen_trees_header OF((void));
-#endif
-
-#ifndef DEBUG
-#  define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
-   /* Send a code of the given tree. c and tree must not have side effects */
-
-#else /* DEBUG */
-#  define send_code(s, c, tree) \
-     { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
-       send_bits(s, tree[c].Code, tree[c].Len); }
-#endif
-
-/* ===========================================================================
- * Output a short LSB first on the stream.
- * IN assertion: there is enough room in pendingBuf.
- */
-#define put_short(s, w) { \
-    put_byte(s, (uch)((w) & 0xff)); \
-    put_byte(s, (uch)((ush)(w) >> 8)); \
-}
-
-/* ===========================================================================
- * Send a value on a given number of bits.
- * IN assertion: length <= 16 and value fits in length bits.
- */
-#ifdef DEBUG
-local void send_bits      OF((deflate_state *s, int value, int length));
-
-local void send_bits(s, value, length)
-    deflate_state *s;
-    int value;  /* value to send */
-    int length; /* number of bits */
-{
-    Tracevv((stderr," l %2d v %4x ", length, value));
-    Assert(length > 0 && length <= 15, "invalid length");
-    s->bits_sent += (ulg)length;
-
-    /* If not enough room in bi_buf, use (valid) bits from bi_buf and
-     * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
-     * unused bits in value.
-     */
-    if (s->bi_valid > (int)Buf_size - length) {
-        s->bi_buf |= (value << s->bi_valid);
-        put_short(s, s->bi_buf);
-        s->bi_buf = (ush)value >> (Buf_size - s->bi_valid);
-        s->bi_valid += length - Buf_size;
-    } else {
-        s->bi_buf |= value << s->bi_valid;
-        s->bi_valid += length;
-    }
-}
-#else /* !DEBUG */
-
-#define send_bits(s, value, length) \
-{ int len = length;\
-  if (s->bi_valid > (int)Buf_size - len) {\
-    int val = value;\
-    s->bi_buf |= (val << s->bi_valid);\
-    put_short(s, s->bi_buf);\
-    s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
-    s->bi_valid += len - Buf_size;\
-  } else {\
-    s->bi_buf |= (value) << s->bi_valid;\
-    s->bi_valid += len;\
-  }\
-}
-#endif /* DEBUG */
-
-
-/* the arguments must not have side effects */
-
-/* ===========================================================================
- * Initialize the various 'constant' tables.
- */
-local void tr_static_init()
-{
-#if defined(GEN_TREES_H) || !defined(STDC)
-    static int static_init_done = 0;
-    int n;        /* iterates over tree elements */
-    int bits;     /* bit counter */
-    int length;   /* length value */
-    int code;     /* code value */
-    int dist;     /* distance index */
-    ush bl_count[MAX_BITS+1];
-    /* number of codes at each bit length for an optimal tree */
-
-    if (static_init_done) return;
-
-    /* For some embedded targets, global variables are not initialized: */
-    static_l_desc.static_tree = static_ltree;
-    static_l_desc.extra_bits = extra_lbits;
-    static_d_desc.static_tree = static_dtree;
-    static_d_desc.extra_bits = extra_dbits;
-    static_bl_desc.extra_bits = extra_blbits;
-
-    /* Initialize the mapping length (0..255) -> length code (0..28) */
-    length = 0;
-    for (code = 0; code < LENGTH_CODES-1; code++) {
-        base_length[code] = length;
-        for (n = 0; n < (1<<extra_lbits[code]); n++) {
-            _length_code[length++] = (uch)code;
-        }
-    }
-    Assert (length == 256, "tr_static_init: length != 256");
-    /* Note that the length 255 (match length 258) can be represented
-     * in two different ways: code 284 + 5 bits or code 285, so we
-     * overwrite length_code[255] to use the best encoding:
-     */
-    _length_code[length-1] = (uch)code;
-
-    /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
-    dist = 0;
-    for (code = 0 ; code < 16; code++) {
-        base_dist[code] = dist;
-        for (n = 0; n < (1<<extra_dbits[code]); n++) {
-            _dist_code[dist++] = (uch)code;
-        }
-    }
-    Assert (dist == 256, "tr_static_init: dist != 256");
-    dist >>= 7; /* from now on, all distances are divided by 128 */
-    for ( ; code < D_CODES; code++) {
-        base_dist[code] = dist << 7;
-        for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
-            _dist_code[256 + dist++] = (uch)code;
-        }
-    }
-    Assert (dist == 256, "tr_static_init: 256+dist != 512");
-
-    /* Construct the codes of the static literal tree */
-    for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
-    n = 0;
-    while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++;
-    while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++;
-    while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++;
-    while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++;
-    /* Codes 286 and 287 do not exist, but we must include them in the
-     * tree construction to get a canonical Huffman tree (longest code
-     * all ones)
-     */
-    gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
-
-    /* The static distance tree is trivial: */
-    for (n = 0; n < D_CODES; n++) {
-        static_dtree[n].Len = 5;
-        static_dtree[n].Code = bi_reverse((unsigned)n, 5);
-    }
-    static_init_done = 1;
-
-#  ifdef GEN_TREES_H
-    gen_trees_header();
-#  endif
-#endif /* defined(GEN_TREES_H) || !defined(STDC) */
-}
-
-/* ===========================================================================
- * Genererate the file trees.h describing the static trees.
- */
-#ifdef GEN_TREES_H
-#  ifndef DEBUG
-#    include <stdio.h>
-#  endif
-
-#  define SEPARATOR(i, last, width) \
-      ((i) == (last)? "\n};\n\n" :    \
-       ((i) % (width) == (width)-1 ? ",\n" : ", "))
-
-void gen_trees_header()
-{
-    FILE *header = fopen("trees.h", "w");
-    int i;
-
-    Assert (header != NULL, "Can't open trees.h");
-    fprintf(header,
-            "/* header created automatically with -DGEN_TREES_H */\n\n");
-
-    fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n");
-    for (i = 0; i < L_CODES+2; i++) {
-        fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code,
-                static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5));
-    }
-
-    fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n");
-    for (i = 0; i < D_CODES; i++) {
-        fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code,
-                static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5));
-    }
-
-    fprintf(header, "const uch _dist_code[DIST_CODE_LEN] = {\n");
-    for (i = 0; i < DIST_CODE_LEN; i++) {
-        fprintf(header, "%2u%s", _dist_code[i],
-                SEPARATOR(i, DIST_CODE_LEN-1, 20));
-    }
-
-    fprintf(header, "const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {\n");
-    for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) {
-        fprintf(header, "%2u%s", _length_code[i],
-                SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20));
-    }
-
-    fprintf(header, "local const int base_length[LENGTH_CODES] = {\n");
-    for (i = 0; i < LENGTH_CODES; i++) {
-        fprintf(header, "%1u%s", base_length[i],
-                SEPARATOR(i, LENGTH_CODES-1, 20));
-    }
-
-    fprintf(header, "local const int base_dist[D_CODES] = {\n");
-    for (i = 0; i < D_CODES; i++) {
-        fprintf(header, "%5u%s", base_dist[i],
-                SEPARATOR(i, D_CODES-1, 10));
-    }
-
-    fclose(header);
-}
-#endif /* GEN_TREES_H */
-
-/* ===========================================================================
- * Initialize the tree data structures for a new zlib stream.
- */
-void _tr_init(s)
-    deflate_state *s;
-{
-    tr_static_init();
-
-    s->l_desc.dyn_tree = s->dyn_ltree;
-    s->l_desc.stat_desc = &static_l_desc;
-
-    s->d_desc.dyn_tree = s->dyn_dtree;
-    s->d_desc.stat_desc = &static_d_desc;
-
-    s->bl_desc.dyn_tree = s->bl_tree;
-    s->bl_desc.stat_desc = &static_bl_desc;
-
-    s->bi_buf = 0;
-    s->bi_valid = 0;
-    s->last_eob_len = 8; /* enough lookahead for inflate */
-#ifdef DEBUG
-    s->compressed_len = 0L;
-    s->bits_sent = 0L;
-#endif
-
-    /* Initialize the first block of the first file: */
-    init_block(s);
-}
-
-/* ===========================================================================
- * Initialize a new block.
- */
-local void init_block(s)
-    deflate_state *s;
-{
-    int n; /* iterates over tree elements */
-
-    /* Initialize the trees. */
-    for (n = 0; n < L_CODES;  n++) s->dyn_ltree[n].Freq = 0;
-    for (n = 0; n < D_CODES;  n++) s->dyn_dtree[n].Freq = 0;
-    for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
-
-    s->dyn_ltree[END_BLOCK].Freq = 1;
-    s->opt_len = s->static_len = 0L;
-    s->last_lit = s->matches = 0;
-}
-
-#define SMALLEST 1
-/* Index within the heap array of least frequent node in the Huffman tree */
-
-
-/* ===========================================================================
- * Remove the smallest element from the heap and recreate the heap with
- * one less element. Updates heap and heap_len.
- */
-#define pqremove(s, tree, top) \
-{\
-    top = s->heap[SMALLEST]; \
-    s->heap[SMALLEST] = s->heap[s->heap_len--]; \
-    pqdownheap(s, tree, SMALLEST); \
-}
-
-/* ===========================================================================
- * Compares to subtrees, using the tree depth as tie breaker when
- * the subtrees have equal frequency. This minimizes the worst case length.
- */
-#define smaller(tree, n, m, depth) \
-   (tree[n].Freq < tree[m].Freq || \
-   (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
-
-/* ===========================================================================
- * Restore the heap property by moving down the tree starting at node k,
- * exchanging a node with the smallest of its two sons if necessary, stopping
- * when the heap property is re-established (each father smaller than its
- * two sons).
- */
-local void pqdownheap(s, tree, k)
-    deflate_state *s;
-    ct_data *tree;  /* the tree to restore */
-    int k;               /* node to move down */
-{
-    int v = s->heap[k];
-    int j = k << 1;  /* left son of k */
-    while (j <= s->heap_len) {
-        /* Set j to the smallest of the two sons: */
-        if (j < s->heap_len &&
-            smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
-            j++;
-        }
-        /* Exit if v is smaller than both sons */
-        if (smaller(tree, v, s->heap[j], s->depth)) break;
-
-        /* Exchange v with the smallest son */
-        s->heap[k] = s->heap[j];  k = j;
-
-        /* And continue down the tree, setting j to the left son of k */
-        j <<= 1;
-    }
-    s->heap[k] = v;
-}
-
-/* ===========================================================================
- * Compute the optimal bit lengths for a tree and update the total bit length
- * for the current block.
- * IN assertion: the fields freq and dad are set, heap[heap_max] and
- *    above are the tree nodes sorted by increasing frequency.
- * OUT assertions: the field len is set to the optimal bit length, the
- *     array bl_count contains the frequencies for each bit length.
- *     The length opt_len is updated; static_len is also updated if stree is
- *     not null.
- */
-local void gen_bitlen(s, desc)
-    deflate_state *s;
-    tree_desc *desc;    /* the tree descriptor */
-{
-    ct_data *tree        = desc->dyn_tree;
-    int max_code         = desc->max_code;
-    const ct_data *stree = desc->stat_desc->static_tree;
-    const intf *extra    = desc->stat_desc->extra_bits;
-    int base             = desc->stat_desc->extra_base;
-    int max_length       = desc->stat_desc->max_length;
-    int h;              /* heap index */
-    int n, m;           /* iterate over the tree elements */
-    int bits;           /* bit length */
-    int xbits;          /* extra bits */
-    ush f;              /* frequency */
-    int overflow = 0;   /* number of elements with bit length too large */
-
-    for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0;
-
-    /* In a first pass, compute the optimal bit lengths (which may
-     * overflow in the case of the bit length tree).
-     */
-    tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
-
-    for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
-        n = s->heap[h];
-        bits = tree[tree[n].Dad].Len + 1;
-        if (bits > max_length) bits = max_length, overflow++;
-        tree[n].Len = (ush)bits;
-        /* We overwrite tree[n].Dad which is no longer needed */
-
-        if (n > max_code) continue; /* not a leaf node */
-
-        s->bl_count[bits]++;
-        xbits = 0;
-        if (n >= base) xbits = extra[n-base];
-        f = tree[n].Freq;
-        s->opt_len += (ulg)f * (bits + xbits);
-        if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
-    }
-    if (overflow == 0) return;
-
-    Trace((stderr,"\nbit length overflow\n"));
-    /* This happens for example on obj2 and pic of the Calgary corpus */
-
-    /* Find the first bit length which could increase: */
-    do {
-        bits = max_length-1;
-        while (s->bl_count[bits] == 0) bits--;
-        s->bl_count[bits]--;      /* move one leaf down the tree */
-        s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
-        s->bl_count[max_length]--;
-        /* The brother of the overflow item also moves one step up,
-         * but this does not affect bl_count[max_length]
-         */
-        overflow -= 2;
-    } while (overflow > 0);
-
-    /* Now recompute all bit lengths, scanning in increasing frequency.
-     * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
-     * lengths instead of fixing only the wrong ones. This idea is taken
-     * from 'ar' written by Haruhiko Okumura.)
-     */
-    for (bits = max_length; bits != 0; bits--) {
-        n = s->bl_count[bits];
-        while (n != 0) {
-            m = s->heap[--h];
-            if (m > max_code) continue;
-            if (tree[m].Len != (unsigned) bits) {
-                Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
-                s->opt_len += ((long)bits - (long)tree[m].Len)
-                              *(long)tree[m].Freq;
-                tree[m].Len = (ush)bits;
-            }
-            n--;
-        }
-    }
-}
-
-/* ===========================================================================
- * Generate the codes for a given tree and bit counts (which need not be
- * optimal).
- * IN assertion: the array bl_count contains the bit length statistics for
- * the given tree and the field len is set for all tree elements.
- * OUT assertion: the field code is set for all tree elements of non
- *     zero code length.
- */
-local void gen_codes (tree, max_code, bl_count)
-    ct_data *tree;             /* the tree to decorate */
-    int max_code;              /* largest code with non zero frequency */
-    ushf *bl_count;            /* number of codes at each bit length */
-{
-    ush next_code[MAX_BITS+1]; /* next code value for each bit length */
-    ush code = 0;              /* running code value */
-    int bits;                  /* bit index */
-    int n;                     /* code index */
-
-    /* The distribution counts are first used to generate the code values
-     * without bit reversal.
-     */
-    for (bits = 1; bits <= MAX_BITS; bits++) {
-        next_code[bits] = code = (code + bl_count[bits-1]) << 1;
-    }
-    /* Check that the bit counts in bl_count are consistent. The last code
-     * must be all ones.
-     */
-    Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
-            "inconsistent bit counts");
-    Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
-
-    for (n = 0;  n <= max_code; n++) {
-        int len = tree[n].Len;
-        if (len == 0) continue;
-        /* Now reverse the bits */
-        tree[n].Code = bi_reverse(next_code[len]++, len);
-
-        Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
-             n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
-    }
-}
-
-/* ===========================================================================
- * Construct one Huffman tree and assigns the code bit strings and lengths.
- * Update the total bit length for the current block.
- * IN assertion: the field freq is set for all tree elements.
- * OUT assertions: the fields len and code are set to the optimal bit length
- *     and corresponding code. The length opt_len is updated; static_len is
- *     also updated if stree is not null. The field max_code is set.
- */
-local void build_tree(s, desc)
-    deflate_state *s;
-    tree_desc *desc; /* the tree descriptor */
-{
-    ct_data *tree         = desc->dyn_tree;
-    const ct_data *stree  = desc->stat_desc->static_tree;
-    int elems             = desc->stat_desc->elems;
-    int n, m;          /* iterate over heap elements */
-    int max_code = -1; /* largest code with non zero frequency */
-    int node;          /* new node being created */
-
-    /* Construct the initial heap, with least frequent element in
-     * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
-     * heap[0] is not used.
-     */
-    s->heap_len = 0, s->heap_max = HEAP_SIZE;
-
-    for (n = 0; n < elems; n++) {
-        if (tree[n].Freq != 0) {
-            s->heap[++(s->heap_len)] = max_code = n;
-            s->depth[n] = 0;
-        } else {
-            tree[n].Len = 0;
-        }
-    }
-
-    /* The pkzip format requires that at least one distance code exists,
-     * and that at least one bit should be sent even if there is only one
-     * possible code. So to avoid special checks later on we force at least
-     * two codes of non zero frequency.
-     */
-    while (s->heap_len < 2) {
-        node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0);
-        tree[node].Freq = 1;
-        s->depth[node] = 0;
-        s->opt_len--; if (stree) s->static_len -= stree[node].Len;
-        /* node is 0 or 1 so it does not have extra bits */
-    }
-    desc->max_code = max_code;
-
-    /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
-     * establish sub-heaps of increasing lengths:
-     */
-    for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
-
-    /* Construct the Huffman tree by repeatedly combining the least two
-     * frequent nodes.
-     */
-    node = elems;              /* next internal node of the tree */
-    do {
-        pqremove(s, tree, n);  /* n = node of least frequency */
-        m = s->heap[SMALLEST]; /* m = node of next least frequency */
-
-        s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */
-        s->heap[--(s->heap_max)] = m;
-
-        /* Create a new node father of n and m */
-        tree[node].Freq = tree[n].Freq + tree[m].Freq;
-        s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ?
-                                s->depth[n] : s->depth[m]) + 1);
-        tree[n].Dad = tree[m].Dad = (ush)node;
-#ifdef DUMP_BL_TREE
-        if (tree == s->bl_tree) {
-            fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)",
-                    node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
-        }
-#endif
-        /* and insert the new node in the heap */
-        s->heap[SMALLEST] = node++;
-        pqdownheap(s, tree, SMALLEST);
-
-    } while (s->heap_len >= 2);
-
-    s->heap[--(s->heap_max)] = s->heap[SMALLEST];
-
-    /* At this point, the fields freq and dad are set. We can now
-     * generate the bit lengths.
-     */
-    gen_bitlen(s, (tree_desc *)desc);
-
-    /* The field len is now set, we can generate the bit codes */
-    gen_codes ((ct_data *)tree, max_code, s->bl_count);
-}
-
-/* ===========================================================================
- * Scan a literal or distance tree to determine the frequencies of the codes
- * in the bit length tree.
- */
-local void scan_tree (s, tree, max_code)
-    deflate_state *s;
-    ct_data *tree;   /* the tree to be scanned */
-    int max_code;    /* and its largest code of non zero frequency */
-{
-    int n;                     /* iterates over all tree elements */
-    int prevlen = -1;          /* last emitted length */
-    int curlen;                /* length of current code */
-    int nextlen = tree[0].Len; /* length of next code */
-    int count = 0;             /* repeat count of the current code */
-    int max_count = 7;         /* max repeat count */
-    int min_count = 4;         /* min repeat count */
-
-    if (nextlen == 0) max_count = 138, min_count = 3;
-    tree[max_code+1].Len = (ush)0xffff; /* guard */
-
-    for (n = 0; n <= max_code; n++) {
-        curlen = nextlen; nextlen = tree[n+1].Len;
-        if (++count < max_count && curlen == nextlen) {
-            continue;
-        } else if (count < min_count) {
-            s->bl_tree[curlen].Freq += count;
-        } else if (curlen != 0) {
-            if (curlen != prevlen) s->bl_tree[curlen].Freq++;
-            s->bl_tree[REP_3_6].Freq++;
-        } else if (count <= 10) {
-            s->bl_tree[REPZ_3_10].Freq++;
-        } else {
-            s->bl_tree[REPZ_11_138].Freq++;
-        }
-        count = 0; prevlen = curlen;
-        if (nextlen == 0) {
-            max_count = 138, min_count = 3;
-        } else if (curlen == nextlen) {
-            max_count = 6, min_count = 3;
-        } else {
-            max_count = 7, min_count = 4;
-        }
-    }
-}
-
-/* ===========================================================================
- * Send a literal or distance tree in compressed form, using the codes in
- * bl_tree.
- */
-local void send_tree (s, tree, max_code)
-    deflate_state *s;
-    ct_data *tree; /* the tree to be scanned */
-    int max_code;       /* and its largest code of non zero frequency */
-{
-    int n;                     /* iterates over all tree elements */
-    int prevlen = -1;          /* last emitted length */
-    int curlen;                /* length of current code */
-    int nextlen = tree[0].Len; /* length of next code */
-    int count = 0;             /* repeat count of the current code */
-    int max_count = 7;         /* max repeat count */
-    int min_count = 4;         /* min repeat count */
-
-    /* tree[max_code+1].Len = -1; */  /* guard already set */
-    if (nextlen == 0) max_count = 138, min_count = 3;
-
-    for (n = 0; n <= max_code; n++) {
-        curlen = nextlen; nextlen = tree[n+1].Len;
-        if (++count < max_count && curlen == nextlen) {
-            continue;
-        } else if (count < min_count) {
-            do { send_code(s, curlen, s->bl_tree); } while (--count != 0);
-
-        } else if (curlen != 0) {
-            if (curlen != prevlen) {
-                send_code(s, curlen, s->bl_tree); count--;
-            }
-            Assert(count >= 3 && count <= 6, " 3_6?");
-            send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
-
-        } else if (count <= 10) {
-            send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
-
-        } else {
-            send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
-        }
-        count = 0; prevlen = curlen;
-        if (nextlen == 0) {
-            max_count = 138, min_count = 3;
-        } else if (curlen == nextlen) {
-            max_count = 6, min_count = 3;
-        } else {
-            max_count = 7, min_count = 4;
-        }
-    }
-}
-
-/* ===========================================================================
- * Construct the Huffman tree for the bit lengths and return the index in
- * bl_order of the last bit length code to send.
- */
-local int build_bl_tree(s)
-    deflate_state *s;
-{
-    int max_blindex;  /* index of last bit length code of non zero freq */
-
-    /* Determine the bit length frequencies for literal and distance trees */
-    scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code);
-    scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code);
-
-    /* Build the bit length tree: */
-    build_tree(s, (tree_desc *)(&(s->bl_desc)));
-    /* opt_len now includes the length of the tree representations, except
-     * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
-     */
-
-    /* Determine the number of bit length codes to send. The pkzip format
-     * requires that at least 4 bit length codes be sent. (appnote.txt says
-     * 3 but the actual value used is 4.)
-     */
-    for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {
-        if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
-    }
-    /* Update opt_len to include the bit length tree and counts */
-    s->opt_len += 3*(max_blindex+1) + 5+5+4;
-    Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
-            s->opt_len, s->static_len));
-
-    return max_blindex;
-}
-
-/* ===========================================================================
- * Send the header for a block using dynamic Huffman trees: the counts, the
- * lengths of the bit length codes, the literal tree and the distance tree.
- * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
- */
-local void send_all_trees(s, lcodes, dcodes, blcodes)
-    deflate_state *s;
-    int lcodes, dcodes, blcodes; /* number of codes for each tree */
-{
-    int rank;                    /* index in bl_order */
-
-    Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
-    Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
-            "too many codes");
-    Tracev((stderr, "\nbl counts: "));
-    send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
-    send_bits(s, dcodes-1,   5);
-    send_bits(s, blcodes-4,  4); /* not -3 as stated in appnote.txt */
-    for (rank = 0; rank < blcodes; rank++) {
-        Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
-        send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
-    }
-    Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
-
-    send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */
-    Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
-
-    send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */
-    Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
-}
-
-/* ===========================================================================
- * Send a stored block
- */
-void _tr_stored_block(s, buf, stored_len, eof)
-    deflate_state *s;
-    charf *buf;       /* input block */
-    ulg stored_len;   /* length of input block */
-    int eof;          /* true if this is the last block for a file */
-{
-    send_bits(s, (STORED_BLOCK<<1)+eof, 3);  /* send block type */
-#ifdef DEBUG
-    s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
-    s->compressed_len += (stored_len + 4) << 3;
-#endif
-    copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
-}
-
-/* ===========================================================================
- * Send one empty static block to give enough lookahead for inflate.
- * This takes 10 bits, of which 7 may remain in the bit buffer.
- * The current inflate code requires 9 bits of lookahead. If the
- * last two codes for the previous block (real code plus EOB) were coded
- * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode
- * the last real code. In this case we send two empty static blocks instead
- * of one. (There are no problems if the previous block is stored or fixed.)
- * To simplify the code, we assume the worst case of last real code encoded
- * on one bit only.
- */
-void _tr_align(s)
-    deflate_state *s;
-{
-    send_bits(s, STATIC_TREES<<1, 3);
-    send_code(s, END_BLOCK, static_ltree);
-#ifdef DEBUG
-    s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
-#endif
-    bi_flush(s);
-    /* Of the 10 bits for the empty block, we have already sent
-     * (10 - bi_valid) bits. The lookahead for the last real code (before
-     * the EOB of the previous block) was thus at least one plus the length
-     * of the EOB plus what we have just sent of the empty static block.
-     */
-    if (1 + s->last_eob_len + 10 - s->bi_valid < 9) {
-        send_bits(s, STATIC_TREES<<1, 3);
-        send_code(s, END_BLOCK, static_ltree);
-#ifdef DEBUG
-        s->compressed_len += 10L;
-#endif
-        bi_flush(s);
-    }
-    s->last_eob_len = 7;
-}
-
-/* ===========================================================================
- * Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file.
- */
-void _tr_flush_block(s, buf, stored_len, eof)
-    deflate_state *s;
-    charf *buf;       /* input block, or NULL if too old */
-    ulg stored_len;   /* length of input block */
-    int eof;          /* true if this is the last block for a file */
-{
-    ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
-    int max_blindex = 0;  /* index of last bit length code of non zero freq */
-
-    /* Build the Huffman trees unless a stored block is forced */
-    if (s->level > 0) {
-
-         /* Check if the file is ascii or binary */
-        if (s->data_type == Z_UNKNOWN) set_data_type(s);
-
-        /* Construct the literal and distance trees */
-        build_tree(s, (tree_desc *)(&(s->l_desc)));
-        Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
-                s->static_len));
-
-        build_tree(s, (tree_desc *)(&(s->d_desc)));
-        Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
-                s->static_len));
-        /* At this point, opt_len and static_len are the total bit lengths of
-         * the compressed block data, excluding the tree representations.
-         */
-
-        /* Build the bit length tree for the above two trees, and get the index
-         * in bl_order of the last bit length code to send.
-         */
-        max_blindex = build_bl_tree(s);
-
-        /* Determine the best encoding. Compute the block lengths in bytes. */
-        opt_lenb = (s->opt_len+3+7)>>3;
-        static_lenb = (s->static_len+3+7)>>3;
-
-        Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
-                opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
-                s->last_lit));
-
-        if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
-
-    } else {
-        Assert(buf != (char*)0, "lost buf");
-        opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
-    }
-
-#ifdef FORCE_STORED
-    if (buf != (char*)0) { /* force stored block */
-#else
-    if (stored_len+4 <= opt_lenb && buf != (char*)0) {
-                       /* 4: two words for the lengths */
-#endif
-        /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
-         * Otherwise we can't have processed more than WSIZE input bytes since
-         * the last block flush, because compression would have been
-         * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
-         * transform a block into a stored block.
-         */
-        _tr_stored_block(s, buf, stored_len, eof);
-
-#ifdef FORCE_STATIC
-    } else if (static_lenb >= 0) { /* force static trees */
-#else
-    } else if (static_lenb == opt_lenb) {
-#endif
-        send_bits(s, (STATIC_TREES<<1)+eof, 3);
-        compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
-#ifdef DEBUG
-        s->compressed_len += 3 + s->static_len;
-#endif
-    } else {
-        send_bits(s, (DYN_TREES<<1)+eof, 3);
-        send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
-                       max_blindex+1);
-        compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree);
-#ifdef DEBUG
-        s->compressed_len += 3 + s->opt_len;
-#endif
-    }
-    Assert (s->compressed_len == s->bits_sent, "bad compressed size");
-    /* The above check is made mod 2^32, for files larger than 512 MB
-     * and uLong implemented on 32 bits.
-     */
-    init_block(s);
-
-    if (eof) {
-        bi_windup(s);
-#ifdef DEBUG
-        s->compressed_len += 7;  /* align on byte boundary */
-#endif
-    }
-    Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
-           s->compressed_len-7*eof));
-}
-
-/* ===========================================================================
- * Save the match info and tally the frequency counts. Return true if
- * the current block must be flushed.
- */
-int _tr_tally (s, dist, lc)
-    deflate_state *s;
-    unsigned dist;  /* distance of matched string */
-    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
-{
-    s->d_buf[s->last_lit] = (ush)dist;
-    s->l_buf[s->last_lit++] = (uch)lc;
-    if (dist == 0) {
-        /* lc is the unmatched char */
-        s->dyn_ltree[lc].Freq++;
-    } else {
-        s->matches++;
-        /* Here, lc is the match length - MIN_MATCH */
-        dist--;             /* dist = match distance - 1 */
-        Assert((ush)dist < (ush)MAX_DIST(s) &&
-               (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
-               (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
-
-        s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
-        s->dyn_dtree[d_code(dist)].Freq++;
-    }
-
-#ifdef TRUNCATE_BLOCK
-    /* Try to guess if it is profitable to stop the current block here */
-    if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
-        /* Compute an upper bound for the compressed length */
-        ulg out_length = (ulg)s->last_lit*8L;
-        ulg in_length = (ulg)((long)s->strstart - s->block_start);
-        int dcode;
-        for (dcode = 0; dcode < D_CODES; dcode++) {
-            out_length += (ulg)s->dyn_dtree[dcode].Freq *
-                (5L+extra_dbits[dcode]);
-        }
-        out_length >>= 3;
-        Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
-               s->last_lit, in_length, out_length,
-               100L - out_length*100L/in_length));
-        if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
-    }
-#endif
-    return (s->last_lit == s->lit_bufsize-1);
-    /* We avoid equality with lit_bufsize because of wraparound at 64K
-     * on 16 bit machines and because stored blocks are restricted to
-     * 64K-1 bytes.
-     */
-}
-
-/* ===========================================================================
- * Send the block data compressed using the given Huffman trees
- */
-local void compress_block(s, ltree, dtree)
-    deflate_state *s;
-    ct_data *ltree; /* literal tree */
-    ct_data *dtree; /* distance tree */
-{
-    unsigned dist;      /* distance of matched string */
-    int lc;             /* match length or unmatched char (if dist == 0) */
-    unsigned lx = 0;    /* running index in l_buf */
-    unsigned code;      /* the code to send */
-    int extra;          /* number of extra bits to send */
-
-    if (s->last_lit != 0) do {
-        dist = s->d_buf[lx];
-        lc = s->l_buf[lx++];
-        if (dist == 0) {
-            send_code(s, lc, ltree); /* send a literal byte */
-            Tracecv(isgraph(lc), (stderr," '%c' ", lc));
-        } else {
-            /* Here, lc is the match length - MIN_MATCH */
-            code = _length_code[lc];
-            send_code(s, code+LITERALS+1, ltree); /* send the length code */
-            extra = extra_lbits[code];
-            if (extra != 0) {
-                lc -= base_length[code];
-                send_bits(s, lc, extra);       /* send the extra length bits */
-            }
-            dist--; /* dist is now the match distance - 1 */
-            code = d_code(dist);
-            Assert (code < D_CODES, "bad d_code");
-
-            send_code(s, code, dtree);       /* send the distance code */
-            extra = extra_dbits[code];
-            if (extra != 0) {
-                dist -= base_dist[code];
-                send_bits(s, dist, extra);   /* send the extra distance bits */
-            }
-        } /* literal or match pair ? */
-
-        /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
-        Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
-               "pendingBuf overflow");
-
-    } while (lx < s->last_lit);
-
-    send_code(s, END_BLOCK, ltree);
-    s->last_eob_len = ltree[END_BLOCK].Len;
-}
-
-/* ===========================================================================
- * Set the data type to ASCII or BINARY, using a crude approximation:
- * binary if more than 20% of the bytes are <= 6 or >= 128, ascii otherwise.
- * IN assertion: the fields freq of dyn_ltree are set and the total of all
- * frequencies does not exceed 64K (to fit in an int on 16 bit machines).
- */
-local void set_data_type(s)
-    deflate_state *s;
-{
-    int n = 0;
-    unsigned ascii_freq = 0;
-    unsigned bin_freq = 0;
-    while (n < 7)        bin_freq += s->dyn_ltree[n++].Freq;
-    while (n < 128)    ascii_freq += s->dyn_ltree[n++].Freq;
-    while (n < LITERALS) bin_freq += s->dyn_ltree[n++].Freq;
-    s->data_type = (Byte)(bin_freq > (ascii_freq >> 2) ? Z_BINARY : Z_ASCII);
-}
-
-/* ===========================================================================
- * Reverse the first len bits of a code, using straightforward code (a faster
- * method would use a table)
- * IN assertion: 1 <= len <= 15
- */
-local unsigned bi_reverse(code, len)
-    unsigned code; /* the value to invert */
-    int len;       /* its bit length */
-{
-    register unsigned res = 0;
-    do {
-        res |= code & 1;
-        code >>= 1, res <<= 1;
-    } while (--len > 0);
-    return res >> 1;
-}
-
-/* ===========================================================================
- * Flush the bit buffer, keeping at most 7 bits in it.
- */
-local void bi_flush(s)
-    deflate_state *s;
-{
-    if (s->bi_valid == 16) {
-        put_short(s, s->bi_buf);
-        s->bi_buf = 0;
-        s->bi_valid = 0;
-    } else if (s->bi_valid >= 8) {
-        put_byte(s, (Byte)s->bi_buf);
-        s->bi_buf >>= 8;
-        s->bi_valid -= 8;
-    }
-}
-
-/* ===========================================================================
- * Flush the bit buffer and align the output on a byte boundary
- */
-local void bi_windup(s)
-    deflate_state *s;
-{
-    if (s->bi_valid > 8) {
-        put_short(s, s->bi_buf);
-    } else if (s->bi_valid > 0) {
-        put_byte(s, (Byte)s->bi_buf);
-    }
-    s->bi_buf = 0;
-    s->bi_valid = 0;
-#ifdef DEBUG
-    s->bits_sent = (s->bits_sent+7) & ~7;
-#endif
-}
-
-/* ===========================================================================
- * Copy a stored block, storing first the length and its
- * one's complement if requested.
- */
-local void copy_block(s, buf, len, header)
-    deflate_state *s;
-    charf    *buf;    /* the input data */
-    unsigned len;     /* its length */
-    int      header;  /* true if block header must be written */
-{
-    bi_windup(s);        /* align on byte boundary */
-    s->last_eob_len = 8; /* enough lookahead for inflate */
-
-    if (header) {
-        put_short(s, (ush)len);
-        put_short(s, (ush)~len);
-#ifdef DEBUG
-        s->bits_sent += 2*16;
-#endif
-    }
-#ifdef DEBUG
-    s->bits_sent += (ulg)len<<3;
-#endif
-    while (len--) {
-        put_byte(s, *buf++);
-    }
-}
diff --git a/klibc/klibc/zlib/trees.h b/klibc/klibc/zlib/trees.h
deleted file mode 100644 (file)
index 72facf9..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/* header created automatically with -DGEN_TREES_H */
-
-local const ct_data static_ltree[L_CODES+2] = {
-{{ 12},{  8}}, {{140},{  8}}, {{ 76},{  8}}, {{204},{  8}}, {{ 44},{  8}},
-{{172},{  8}}, {{108},{  8}}, {{236},{  8}}, {{ 28},{  8}}, {{156},{  8}},
-{{ 92},{  8}}, {{220},{  8}}, {{ 60},{  8}}, {{188},{  8}}, {{124},{  8}},
-{{252},{  8}}, {{  2},{  8}}, {{130},{  8}}, {{ 66},{  8}}, {{194},{  8}},
-{{ 34},{  8}}, {{162},{  8}}, {{ 98},{  8}}, {{226},{  8}}, {{ 18},{  8}},
-{{146},{  8}}, {{ 82},{  8}}, {{210},{  8}}, {{ 50},{  8}}, {{178},{  8}},
-{{114},{  8}}, {{242},{  8}}, {{ 10},{  8}}, {{138},{  8}}, {{ 74},{  8}},
-{{202},{  8}}, {{ 42},{  8}}, {{170},{  8}}, {{106},{  8}}, {{234},{  8}},
-{{ 26},{  8}}, {{154},{  8}}, {{ 90},{  8}}, {{218},{  8}}, {{ 58},{  8}},
-{{186},{  8}}, {{122},{  8}}, {{250},{  8}}, {{  6},{  8}}, {{134},{  8}},
-{{ 70},{  8}}, {{198},{  8}}, {{ 38},{  8}}, {{166},{  8}}, {{102},{  8}},
-{{230},{  8}}, {{ 22},{  8}}, {{150},{  8}}, {{ 86},{  8}}, {{214},{  8}},
-{{ 54},{  8}}, {{182},{  8}}, {{118},{  8}}, {{246},{  8}}, {{ 14},{  8}},
-{{142},{  8}}, {{ 78},{  8}}, {{206},{  8}}, {{ 46},{  8}}, {{174},{  8}},
-{{110},{  8}}, {{238},{  8}}, {{ 30},{  8}}, {{158},{  8}}, {{ 94},{  8}},
-{{222},{  8}}, {{ 62},{  8}}, {{190},{  8}}, {{126},{  8}}, {{254},{  8}},
-{{  1},{  8}}, {{129},{  8}}, {{ 65},{  8}}, {{193},{  8}}, {{ 33},{  8}},
-{{161},{  8}}, {{ 97},{  8}}, {{225},{  8}}, {{ 17},{  8}}, {{145},{  8}},
-{{ 81},{  8}}, {{209},{  8}}, {{ 49},{  8}}, {{177},{  8}}, {{113},{  8}},
-{{241},{  8}}, {{  9},{  8}}, {{137},{  8}}, {{ 73},{  8}}, {{201},{  8}},
-{{ 41},{  8}}, {{169},{  8}}, {{105},{  8}}, {{233},{  8}}, {{ 25},{  8}},
-{{153},{  8}}, {{ 89},{  8}}, {{217},{  8}}, {{ 57},{  8}}, {{185},{  8}},
-{{121},{  8}}, {{249},{  8}}, {{  5},{  8}}, {{133},{  8}}, {{ 69},{  8}},
-{{197},{  8}}, {{ 37},{  8}}, {{165},{  8}}, {{101},{  8}}, {{229},{  8}},
-{{ 21},{  8}}, {{149},{  8}}, {{ 85},{  8}}, {{213},{  8}}, {{ 53},{  8}},
-{{181},{  8}}, {{117},{  8}}, {{245},{  8}}, {{ 13},{  8}}, {{141},{  8}},
-{{ 77},{  8}}, {{205},{  8}}, {{ 45},{  8}}, {{173},{  8}}, {{109},{  8}},
-{{237},{  8}}, {{ 29},{  8}}, {{157},{  8}}, {{ 93},{  8}}, {{221},{  8}},
-{{ 61},{  8}}, {{189},{  8}}, {{125},{  8}}, {{253},{  8}}, {{ 19},{  9}},
-{{275},{  9}}, {{147},{  9}}, {{403},{  9}}, {{ 83},{  9}}, {{339},{  9}},
-{{211},{  9}}, {{467},{  9}}, {{ 51},{  9}}, {{307},{  9}}, {{179},{  9}},
-{{435},{  9}}, {{115},{  9}}, {{371},{  9}}, {{243},{  9}}, {{499},{  9}},
-{{ 11},{  9}}, {{267},{  9}}, {{139},{  9}}, {{395},{  9}}, {{ 75},{  9}},
-{{331},{  9}}, {{203},{  9}}, {{459},{  9}}, {{ 43},{  9}}, {{299},{  9}},
-{{171},{  9}}, {{427},{  9}}, {{107},{  9}}, {{363},{  9}}, {{235},{  9}},
-{{491},{  9}}, {{ 27},{  9}}, {{283},{  9}}, {{155},{  9}}, {{411},{  9}},
-{{ 91},{  9}}, {{347},{  9}}, {{219},{  9}}, {{475},{  9}}, {{ 59},{  9}},
-{{315},{  9}}, {{187},{  9}}, {{443},{  9}}, {{123},{  9}}, {{379},{  9}},
-{{251},{  9}}, {{507},{  9}}, {{  7},{  9}}, {{263},{  9}}, {{135},{  9}},
-{{391},{  9}}, {{ 71},{  9}}, {{327},{  9}}, {{199},{  9}}, {{455},{  9}},
-{{ 39},{  9}}, {{295},{  9}}, {{167},{  9}}, {{423},{  9}}, {{103},{  9}},
-{{359},{  9}}, {{231},{  9}}, {{487},{  9}}, {{ 23},{  9}}, {{279},{  9}},
-{{151},{  9}}, {{407},{  9}}, {{ 87},{  9}}, {{343},{  9}}, {{215},{  9}},
-{{471},{  9}}, {{ 55},{  9}}, {{311},{  9}}, {{183},{  9}}, {{439},{  9}},
-{{119},{  9}}, {{375},{  9}}, {{247},{  9}}, {{503},{  9}}, {{ 15},{  9}},
-{{271},{  9}}, {{143},{  9}}, {{399},{  9}}, {{ 79},{  9}}, {{335},{  9}},
-{{207},{  9}}, {{463},{  9}}, {{ 47},{  9}}, {{303},{  9}}, {{175},{  9}},
-{{431},{  9}}, {{111},{  9}}, {{367},{  9}}, {{239},{  9}}, {{495},{  9}},
-{{ 31},{  9}}, {{287},{  9}}, {{159},{  9}}, {{415},{  9}}, {{ 95},{  9}},
-{{351},{  9}}, {{223},{  9}}, {{479},{  9}}, {{ 63},{  9}}, {{319},{  9}},
-{{191},{  9}}, {{447},{  9}}, {{127},{  9}}, {{383},{  9}}, {{255},{  9}},
-{{511},{  9}}, {{  0},{  7}}, {{ 64},{  7}}, {{ 32},{  7}}, {{ 96},{  7}},
-{{ 16},{  7}}, {{ 80},{  7}}, {{ 48},{  7}}, {{112},{  7}}, {{  8},{  7}},
-{{ 72},{  7}}, {{ 40},{  7}}, {{104},{  7}}, {{ 24},{  7}}, {{ 88},{  7}},
-{{ 56},{  7}}, {{120},{  7}}, {{  4},{  7}}, {{ 68},{  7}}, {{ 36},{  7}},
-{{100},{  7}}, {{ 20},{  7}}, {{ 84},{  7}}, {{ 52},{  7}}, {{116},{  7}},
-{{  3},{  8}}, {{131},{  8}}, {{ 67},{  8}}, {{195},{  8}}, {{ 35},{  8}},
-{{163},{  8}}, {{ 99},{  8}}, {{227},{  8}}
-};
-
-local const ct_data static_dtree[D_CODES] = {
-{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}},
-{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}},
-{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}},
-{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}},
-{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}},
-{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}}
-};
-
-const uch _dist_code[DIST_CODE_LEN] = {
- 0,  1,  2,  3,  4,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8,
- 8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 10, 10,
-10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
-11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
-13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  0,  0, 16, 17,
-18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
-23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
-};
-
-const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {
- 0,  1,  2,  3,  4,  5,  6,  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 12, 12,
-13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
-17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
-19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
-21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
-22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
-23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
-};
-
-local const int base_length[LENGTH_CODES] = {
-0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
-64, 80, 96, 112, 128, 160, 192, 224, 0
-};
-
-local const int base_dist[D_CODES] = {
-    0,     1,     2,     3,     4,     6,     8,    12,    16,    24,
-   32,    48,    64,    96,   128,   192,   256,   384,   512,   768,
- 1024,  1536,  2048,  3072,  4096,  6144,  8192, 12288, 16384, 24576
-};
-
diff --git a/klibc/klibc/zlib/uncompr.c b/klibc/klibc/zlib/uncompr.c
deleted file mode 100644 (file)
index debee43..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/* uncompr.c -- decompress a memory buffer
- * Copyright (C) 1995-2003 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: uncompr.c,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#define ZLIB_INTERNAL
-#include "zlib.h"
-
-/* ===========================================================================
-     Decompresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer. Upon entry, destLen is the total
-   size of the destination buffer, which must be large enough to hold the
-   entire uncompressed data. (The size of the uncompressed data must have
-   been saved previously by the compressor and transmitted to the decompressor
-   by some mechanism outside the scope of this compression library.)
-   Upon exit, destLen is the actual size of the compressed buffer.
-     This function can be used to decompress a whole file at once if the
-   input file is mmap'ed.
-
-     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer, or Z_DATA_ERROR if the input data was corrupted.
-*/
-int ZEXPORT uncompress (dest, destLen, source, sourceLen)
-    Bytef *dest;
-    uLongf *destLen;
-    const Bytef *source;
-    uLong sourceLen;
-{
-    z_stream stream;
-    int err;
-
-    stream.next_in = (Bytef*)source;
-    stream.avail_in = (uInt)sourceLen;
-    /* Check for source > 64K on 16-bit machine: */
-    if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-
-    stream.next_out = dest;
-    stream.avail_out = (uInt)*destLen;
-    if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
-
-    stream.zalloc = (alloc_func)0;
-    stream.zfree = (free_func)0;
-
-    err = inflateInit(&stream);
-    if (err != Z_OK) return err;
-
-    err = inflate(&stream, Z_FINISH);
-    if (err != Z_STREAM_END) {
-        inflateEnd(&stream);
-        if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0))
-            return Z_DATA_ERROR;
-        return err;
-    }
-    *destLen = stream.total_out;
-
-    err = inflateEnd(&stream);
-    return err;
-}
diff --git a/klibc/klibc/zlib/zconf.h b/klibc/klibc/zlib/zconf.h
deleted file mode 100644 (file)
index 9b74ce7..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2003 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: zconf.h,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#ifndef ZCONF_H
-#define ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- */
-#ifdef Z_PREFIX
-#  define deflateInit_  z_deflateInit_
-#  define deflate       z_deflate
-#  define deflateEnd    z_deflateEnd
-#  define inflateInit_  z_inflateInit_
-#  define inflate       z_inflate
-#  define inflateEnd    z_inflateEnd
-#  define deflateInit2_ z_deflateInit2_
-#  define deflateSetDictionary z_deflateSetDictionary
-#  define deflateCopy   z_deflateCopy
-#  define deflateReset  z_deflateReset
-#  define deflatePrime  z_deflatePrime
-#  define deflateParams z_deflateParams
-#  define deflateBound  z_deflateBound
-#  define inflateInit2_ z_inflateInit2_
-#  define inflateSetDictionary z_inflateSetDictionary
-#  define inflateSync   z_inflateSync
-#  define inflateSyncPoint z_inflateSyncPoint
-#  define inflateCopy   z_inflateCopy
-#  define inflateReset  z_inflateReset
-#  define compress      z_compress
-#  define compress2     z_compress2
-#  define compressBound z_compressBound
-#  define uncompress    z_uncompress
-#  define adler32       z_adler32
-#  define crc32         z_crc32
-#  define get_crc_table z_get_crc_table
-
-#  define Byte          z_Byte
-#  define uInt          z_uInt
-#  define uLong         z_uLong
-#  define Bytef         z_Bytef
-#  define charf         z_charf
-#  define intf          z_intf
-#  define uIntf         z_uIntf
-#  define uLongf        z_uLongf
-#  define voidpf        z_voidpf
-#  define voidp         z_voidp
-#endif
-
-#if defined(__MSDOS__) && !defined(MSDOS)
-#  define MSDOS
-#endif
-#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
-#  define OS2
-#endif
-#if defined(_WINDOWS) && !defined(WINDOWS)
-#  define WINDOWS
-#endif
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-#  define WIN32
-#endif
-#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
-#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
-#    ifndef SYS16BIT
-#      define SYS16BIT
-#    endif
-#  endif
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#ifdef SYS16BIT
-#  define MAXSEG_64K
-#endif
-#ifdef MSDOS
-#  define UNALIGNED_OK
-#endif
-
-#ifdef __STDC_VERSION__
-#  ifndef STDC
-#    define STDC
-#  endif
-#  if __STDC_VERSION__ >= 199901L
-#    ifndef STDC99
-#      define STDC99
-#    endif
-#  endif
-#endif
-#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
-#  define STDC
-#endif
-
-#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
-#  define STDC
-#endif
-
-#ifndef STDC
-#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-#    define const       /* note: need a more gentle solution here */
-#  endif
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-#  define NO_DUMMY_DECL
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-#  ifdef MAXSEG_64K
-#    define MAX_MEM_LEVEL 8
-#  else
-#    define MAX_MEM_LEVEL 9
-#  endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-#  define MAX_WBITS   15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
-            (1 << (windowBits+2)) +  (1 << (memLevel+9))
- that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
-     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
-   The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-                        /* Type declarations */
-
-#ifndef OF /* function prototypes */
-#  ifdef STDC
-#    define OF(args)  args
-#  else
-#    define OF(args)  ()
-#  endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#ifdef SYS16BIT
-#  if defined(M_I86SM) || defined(M_I86MM)
-     /* MSC small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef _MSC_VER
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#  if (defined(__SMALL__) || defined(__MEDIUM__))
-     /* Turbo C small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef __BORLANDC__
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#endif
-
-#if defined(WINDOWS) || defined(WIN32)
-   /* If building or using zlib as a DLL, define ZLIB_DLL.
-    * This is not mandatory, but it offers a little performance increase.
-    */
-#  ifdef ZLIB_DLL
-#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
-#      ifdef ZLIB_INTERNAL
-#        define ZEXTERN extern __declspec(dllexport)
-#      else
-#        define ZEXTERN extern __declspec(dllimport)
-#      endif
-#    endif
-#  endif  /* ZLIB_DLL */
-   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
-    * define ZLIB_WINAPI.
-    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
-    */
-#  ifdef ZLIB_WINAPI
-#    ifdef FAR
-#      undef FAR
-#    endif
-#    include <windows.h>
-     /* No need for _export, use ZLIB.DEF instead. */
-     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
-#    define ZEXPORT WINAPI
-#    ifdef WIN32
-#      define ZEXPORTVA WINAPIV
-#    else
-#      define ZEXPORTVA FAR CDECL
-#    endif
-#  endif
-#endif
-
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
-#ifndef ZEXTERN
-#  define ZEXTERN extern
-#endif
-#ifndef ZEXPORT
-#  define ZEXPORT
-#endif
-#ifndef ZEXPORTVA
-#  define ZEXPORTVA
-#endif
-
-#ifndef FAR
-#  define FAR
-#endif
-
-#if !defined(__MACTYPES__)
-typedef unsigned char  Byte;  /* 8 bits */
-#endif
-typedef unsigned int   uInt;  /* 16 bits or more */
-typedef unsigned long  uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
-   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-#  define Bytef Byte FAR
-#else
-   typedef Byte  FAR Bytef;
-#endif
-typedef char  FAR charf;
-typedef int   FAR intf;
-typedef uInt  FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
-   typedef void const *voidpc;
-   typedef void FAR   *voidpf;
-   typedef void       *voidp;
-#else
-   typedef Byte const *voidpc;
-   typedef Byte FAR   *voidpf;
-   typedef Byte       *voidp;
-#endif
-
-#if 0           /* HAVE_UNISTD_H -- this line is updated by ./configure */
-#  include <sys/types.h> /* for off_t */
-#  include <unistd.h>    /* for SEEK_* and off_t */
-#  ifdef VMS
-#    include <unixio.h>   /* for off_t */
-#  endif
-#  define z_off_t  off_t
-#endif
-#ifndef SEEK_SET
-#  define SEEK_SET        0       /* Seek from beginning of file.  */
-#  define SEEK_CUR        1       /* Seek from current position.  */
-#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
-#endif
-#ifndef z_off_t
-#  define  z_off_t long
-#endif
-
-#if defined(__OS400__)
-#define NO_vsnprintf
-#endif
-
-#if defined(__MVS__)
-#  define NO_vsnprintf
-#  ifdef FAR
-#    undef FAR
-#  endif
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-#   pragma map(deflateInit_,"DEIN")
-#   pragma map(deflateInit2_,"DEIN2")
-#   pragma map(deflateEnd,"DEEND")
-#   pragma map(deflateBound,"DEBND")
-#   pragma map(inflateInit_,"ININ")
-#   pragma map(inflateInit2_,"ININ2")
-#   pragma map(inflateEnd,"INEND")
-#   pragma map(inflateSync,"INSY")
-#   pragma map(inflateSetDictionary,"INSEDI")
-#   pragma map(compressBound,"CMBND")
-#   pragma map(inflate_table,"INTABL")
-#   pragma map(inflate_fast,"INFA")
-#   pragma map(inflate_copyright,"INCOPY")
-#endif
-
-#endif /* ZCONF_H */
diff --git a/klibc/klibc/zlib/zconf.in.h b/klibc/klibc/zlib/zconf.in.h
deleted file mode 100644 (file)
index d96c859..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2003 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: zconf.in.h,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#ifndef ZCONF_H
-#define ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- */
-#ifdef Z_PREFIX
-#  define deflateInit_  z_deflateInit_
-#  define deflate       z_deflate
-#  define deflateEnd    z_deflateEnd
-#  define inflateInit_  z_inflateInit_
-#  define inflate       z_inflate
-#  define inflateEnd    z_inflateEnd
-#  define deflateInit2_ z_deflateInit2_
-#  define deflateSetDictionary z_deflateSetDictionary
-#  define deflateCopy   z_deflateCopy
-#  define deflateReset  z_deflateReset
-#  define deflatePrime  z_deflatePrime
-#  define deflateParams z_deflateParams
-#  define deflateBound  z_deflateBound
-#  define inflateInit2_ z_inflateInit2_
-#  define inflateSetDictionary z_inflateSetDictionary
-#  define inflateSync   z_inflateSync
-#  define inflateSyncPoint z_inflateSyncPoint
-#  define inflateCopy   z_inflateCopy
-#  define inflateReset  z_inflateReset
-#  define compress      z_compress
-#  define compress2     z_compress2
-#  define compressBound z_compressBound
-#  define uncompress    z_uncompress
-#  define adler32       z_adler32
-#  define crc32         z_crc32
-#  define get_crc_table z_get_crc_table
-
-#  define Byte          z_Byte
-#  define uInt          z_uInt
-#  define uLong         z_uLong
-#  define Bytef         z_Bytef
-#  define charf         z_charf
-#  define intf          z_intf
-#  define uIntf         z_uIntf
-#  define uLongf        z_uLongf
-#  define voidpf        z_voidpf
-#  define voidp         z_voidp
-#endif
-
-#if defined(__MSDOS__) && !defined(MSDOS)
-#  define MSDOS
-#endif
-#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
-#  define OS2
-#endif
-#if defined(_WINDOWS) && !defined(WINDOWS)
-#  define WINDOWS
-#endif
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-#  define WIN32
-#endif
-#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
-#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
-#    ifndef SYS16BIT
-#      define SYS16BIT
-#    endif
-#  endif
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#ifdef SYS16BIT
-#  define MAXSEG_64K
-#endif
-#ifdef MSDOS
-#  define UNALIGNED_OK
-#endif
-
-#ifdef __STDC_VERSION__
-#  ifndef STDC
-#    define STDC
-#  endif
-#  if __STDC_VERSION__ >= 199901L
-#    ifndef STDC99
-#      define STDC99
-#    endif
-#  endif
-#endif
-#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
-#  define STDC
-#endif
-
-#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
-#  define STDC
-#endif
-
-#ifndef STDC
-#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-#    define const       /* note: need a more gentle solution here */
-#  endif
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-#  define NO_DUMMY_DECL
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-#  ifdef MAXSEG_64K
-#    define MAX_MEM_LEVEL 8
-#  else
-#    define MAX_MEM_LEVEL 9
-#  endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-#  define MAX_WBITS   15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
-            (1 << (windowBits+2)) +  (1 << (memLevel+9))
- that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
-     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
-   The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-                        /* Type declarations */
-
-#ifndef OF /* function prototypes */
-#  ifdef STDC
-#    define OF(args)  args
-#  else
-#    define OF(args)  ()
-#  endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#ifdef SYS16BIT
-#  if defined(M_I86SM) || defined(M_I86MM)
-     /* MSC small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef _MSC_VER
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#  if (defined(__SMALL__) || defined(__MEDIUM__))
-     /* Turbo C small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef __BORLANDC__
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#endif
-
-#if defined(WINDOWS) || defined(WIN32)
-   /* If building or using zlib as a DLL, define ZLIB_DLL.
-    * This is not mandatory, but it offers a little performance increase.
-    */
-#  ifdef ZLIB_DLL
-#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
-#      ifdef ZLIB_INTERNAL
-#        define ZEXTERN extern __declspec(dllexport)
-#      else
-#        define ZEXTERN extern __declspec(dllimport)
-#      endif
-#    endif
-#  endif  /* ZLIB_DLL */
-   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
-    * define ZLIB_WINAPI.
-    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
-    */
-#  ifdef ZLIB_WINAPI
-#    ifdef FAR
-#      undef FAR
-#    endif
-#    include <windows.h>
-     /* No need for _export, use ZLIB.DEF instead. */
-     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
-#    define ZEXPORT WINAPI
-#    ifdef WIN32
-#      define ZEXPORTVA WINAPIV
-#    else
-#      define ZEXPORTVA FAR CDECL
-#    endif
-#  endif
-#endif
-
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
-#ifndef ZEXTERN
-#  define ZEXTERN extern
-#endif
-#ifndef ZEXPORT
-#  define ZEXPORT
-#endif
-#ifndef ZEXPORTVA
-#  define ZEXPORTVA
-#endif
-
-#ifndef FAR
-#  define FAR
-#endif
-
-#if !defined(__MACTYPES__)
-typedef unsigned char  Byte;  /* 8 bits */
-#endif
-typedef unsigned int   uInt;  /* 16 bits or more */
-typedef unsigned long  uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
-   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-#  define Bytef Byte FAR
-#else
-   typedef Byte  FAR Bytef;
-#endif
-typedef char  FAR charf;
-typedef int   FAR intf;
-typedef uInt  FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
-   typedef void const *voidpc;
-   typedef void FAR   *voidpf;
-   typedef void       *voidp;
-#else
-   typedef Byte const *voidpc;
-   typedef Byte FAR   *voidpf;
-   typedef Byte       *voidp;
-#endif
-
-#if 0           /* HAVE_UNISTD_H -- this line is updated by ./configure */
-#  include <sys/types.h> /* for off_t */
-#  include <unistd.h>    /* for SEEK_* and off_t */
-#  ifdef VMS
-#    include <unixio.h>   /* for off_t */
-#  endif
-#  define z_off_t  off_t
-#endif
-#ifndef SEEK_SET
-#  define SEEK_SET        0       /* Seek from beginning of file.  */
-#  define SEEK_CUR        1       /* Seek from current position.  */
-#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
-#endif
-#ifndef z_off_t
-#  define  z_off_t long
-#endif
-
-#if defined(__OS400__)
-#define NO_vsnprintf
-#endif
-
-#if defined(__MVS__)
-#  define NO_vsnprintf
-#  ifdef FAR
-#    undef FAR
-#  endif
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-#   pragma map(deflateInit_,"DEIN")
-#   pragma map(deflateInit2_,"DEIN2")
-#   pragma map(deflateEnd,"DEEND")
-#   pragma map(deflateBound,"DEBND")
-#   pragma map(inflateInit_,"ININ")
-#   pragma map(inflateInit2_,"ININ2")
-#   pragma map(inflateEnd,"INEND")
-#   pragma map(inflateSync,"INSY")
-#   pragma map(inflateSetDictionary,"INSEDI")
-#   pragma map(compressBound,"CMBND")
-#   pragma map(inflate_table,"INTABL")
-#   pragma map(inflate_fast,"INFA")
-#   pragma map(inflate_copyright,"INCOPY")
-#endif
-
-#endif /* ZCONF_H */
diff --git a/klibc/klibc/zlib/zlib.3 b/klibc/klibc/zlib/zlib.3
deleted file mode 100644 (file)
index 8900984..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-.TH ZLIB 3 "17 November 2003"
-.SH NAME
-zlib \- compression/decompression library
-.SH SYNOPSIS
-[see
-.I zlib.h
-for full description]
-.SH DESCRIPTION
-The
-.I zlib
-library is a general purpose data compression library.
-The code is thread safe.
-It provides in-memory compression and decompression functions,
-including integrity checks of the uncompressed data.
-This version of the library supports only one compression method (deflation)
-but other algorithms will be added later
-and will have the same stream interface.
-.LP
-Compression can be done in a single step if the buffers are large enough
-(for example if an input file is mmap'ed),
-or can be done by repeated calls of the compression function.
-In the latter case,
-the application must provide more input and/or consume the output
-(providing more output space) before each call.
-.LP
-The library also supports reading and writing files in
-.IR gzip (1)
-(.gz) format
-with an interface similar to that of stdio.
-.LP
-The library does not install any signal handler.
-The decoder checks the consistency of the compressed data,
-so the library should never crash even in case of corrupted input.
-.LP
-All functions of the compression library are documented in the file
-.IR zlib.h .
-The distribution source includes examples of use of the library
-in the files
-.I example.c
-and
-.IR minigzip.c .
-.LP
-Changes to this version are documented in the file
-.I ChangeLog
-that accompanies the source,
-and are concerned primarily with bug fixes and portability enhancements.
-.LP
-A Java implementation of
-.I zlib
-is available in the Java Development Kit 1.1:
-.IP
-http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html
-.LP
-A Perl interface to
-.IR zlib ,
-written by Paul Marquess (pmqs@cpan.org),
-is available at CPAN (Comprehensive Perl Archive Network) sites,
-including:
-.IP
-http://www.cpan.org/modules/by-module/Compress/
-.LP
-A Python interface to
-.IR zlib ,
-written by A.M. Kuchling (amk@magnet.com),
-is available in Python 1.5 and later versions:
-.IP
-http://www.python.org/doc/lib/module-zlib.html
-.LP
-A
-.I zlib
-binding for
-.IR tcl (1),
-written by Andreas Kupries (a.kupries@westend.com),
-is availlable at:
-.IP
-http://www.westend.com/~kupries/doc/trf/man/man.html
-.LP
-An experimental package to read and write files in .zip format,
-written on top of
-.I zlib
-by Gilles Vollant (info@winimage.com),
-is available at:
-.IP
-http://www.winimage.com/zLibDll/unzip.html
-and also in the
-.I contrib/minizip
-directory of the main
-.I zlib
-web site.
-.SH "SEE ALSO"
-The
-.I zlib
-web site can be found at either of these locations:
-.IP
-http://www.zlib.org
-.br
-http://www.gzip.org/zlib/
-.LP
-The data format used by the zlib library is described by RFC
-(Request for Comments) 1950 to 1952 in the files:
-.IP
-http://www.ietf.org/rfc/rfc1950.txt (concerning zlib format)
-.br
-http://www.ietf.org/rfc/rfc1951.txt (concerning deflate format)
-.br
-http://www.ietf.org/rfc/rfc1952.txt (concerning gzip format)
-.LP
-These documents are also available in other formats from:
-.IP
-ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html
-.LP
-Mark Nelson (markn@ieee.org) wrote an article about
-.I zlib
-for the Jan. 1997 issue of  Dr. Dobb's Journal;
-a copy of the article is available at:
-.IP
-http://dogma.net/markn/articles/zlibtool/zlibtool.htm
-.SH "REPORTING PROBLEMS"
-Before reporting a problem,
-please check the
-.I zlib
-web site to verify that you have the latest version of
-.IR zlib ;
-otherwise,
-obtain the latest version and see if the problem still exists.
-Please read the
-.I zlib
-FAQ at:
-.IP
-http://www.gzip.org/zlib/zlib_faq.html
-.LP
-before asking for help.
-Send questions and/or comments to zlib@gzip.org,
-or (for the Windows DLL version) to Gilles Vollant (info@winimage.com).
-.SH AUTHORS
-Version 1.2.1
-Copyright (C) 1995-2003 Jean-loup Gailly (jloup@gzip.org)
-and Mark Adler (madler@alumni.caltech.edu).
-.LP
-This software is provided "as-is,"
-without any express or implied warranty.
-In no event will the authors be held liable for any damages
-arising from the use of this software.
-See the distribution directory with respect to requirements
-governing redistribution.
-The deflate format used by
-.I zlib
-was defined by Phil Katz.
-The deflate and
-.I zlib
-specifications were written by L. Peter Deutsch.
-Thanks to all the people who reported problems and suggested various
-improvements in
-.IR zlib ;
-who are too numerous to cite here.
-.LP
-UNIX manual page by R. P. C. Rodgers,
-U.S. National Library of Medicine (rodgers@nlm.nih.gov).
-.\" end of man page
diff --git a/klibc/klibc/zlib/zlib.h b/klibc/klibc/zlib/zlib.h
deleted file mode 100644 (file)
index 92edf96..0000000
+++ /dev/null
@@ -1,1200 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.2.1, November 17th, 2003
-
-  Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-
-  The data format used by the zlib library is described by RFCs (Request for
-  Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt
-  (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
-*/
-
-#ifndef ZLIB_H
-#define ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.2.1"
-#define ZLIB_VERNUM 0x1210
-
-/*
-     The 'zlib' compression library provides in-memory compression and
-  decompression functions, including integrity checks of the uncompressed
-  data.  This version of the library supports only one compression method
-  (deflation) but other algorithms will be added later and will have the same
-  stream interface.
-
-     Compression can be done in a single step if the buffers are large
-  enough (for example if an input file is mmap'ed), or can be done by
-  repeated calls of the compression function.  In the latter case, the
-  application must provide more input and/or consume the output
-  (providing more output space) before each call.
-
-     The compressed data format used by the in-memory functions is the zlib
-  format, which is a zlib wrapper documented in RFC 1950, wrapped around a
-  deflate stream, which is itself documented in RFC 1951.
-
-     The library also supports reading and writing files in gzip (.gz) format
-  with an interface similar to that of stdio using the functions that start
-  with "gz".  The gzip format is different from the zlib format.  gzip is a
-  gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
-
-     The zlib format was designed to be compact and fast for use in memory
-  and on communications channels.  The gzip format was designed for single-
-  file compression on file systems, has a larger header than zlib to maintain
-  directory information, and uses a different, slower check method than zlib.
-
-     This library does not provide any functions to write gzip files in memory.
-  However such functions could be easily written using zlib's deflate function,
-  the documentation in the gzip RFC, and the examples in gzio.c.
-
-     The library does not install any signal handler. The decoder checks
-  the consistency of the compressed data, so the library should never
-  crash even in case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void   (*free_func)  OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
-    Bytef    *next_in;  /* next input byte */
-    uInt     avail_in;  /* number of bytes available at next_in */
-    uLong    total_in;  /* total nb of input bytes read so far */
-
-    Bytef    *next_out; /* next output byte should be put there */
-    uInt     avail_out; /* remaining free space at next_out */
-    uLong    total_out; /* total nb of bytes output so far */
-
-    char     *msg;      /* last error message, NULL if no error */
-    struct internal_state FAR *state; /* not visible by applications */
-
-    alloc_func zalloc;  /* used to allocate the internal state */
-    free_func  zfree;   /* used to free the internal state */
-    voidpf     opaque;  /* private data object passed to zalloc and zfree */
-
-    int     data_type;  /* best guess about the data type: ascii or binary */
-    uLong   adler;      /* adler32 value of the uncompressed data */
-    uLong   reserved;   /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
-   The application must update next_in and avail_in when avail_in has
-   dropped to zero. It must update next_out and avail_out when avail_out
-   has dropped to zero. The application must initialize zalloc, zfree and
-   opaque before calling the init function. All other fields are set by the
-   compression library and must not be updated by the application.
-
-   The opaque value provided by the application will be passed as the first
-   parameter for calls of zalloc and zfree. This can be useful for custom
-   memory management. The compression library attaches no meaning to the
-   opaque value.
-
-   zalloc must return Z_NULL if there is not enough memory for the object.
-   If zlib is used in a multi-threaded application, zalloc and zfree must be
-   thread safe.
-
-   On 16-bit systems, the functions zalloc and zfree must be able to allocate
-   exactly 65536 bytes, but will not be required to allocate more than this
-   if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
-   pointers returned by zalloc for objects of exactly 65536 bytes *must*
-   have their offset normalized to zero. The default allocation function
-   provided by this library ensures this (see zutil.c). To reduce memory
-   requirements and avoid any allocation of 64K objects, at the expense of
-   compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-
-   The fields total_in and total_out can be used for statistics or
-   progress reports. After compression, total_in holds the total size of
-   the uncompressed data and may be saved for use in the decompressor
-   (particularly if the decompressor wants to decompress everything in
-   a single step).
-*/
-
-                        /* constants */
-
-#define Z_NO_FLUSH      0
-#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
-#define Z_SYNC_FLUSH    2
-#define Z_FULL_FLUSH    3
-#define Z_FINISH        4
-#define Z_BLOCK         5
-/* Allowed flush values; see deflate() and inflate() below for details */
-
-#define Z_OK            0
-#define Z_STREAM_END    1
-#define Z_NEED_DICT     2
-#define Z_ERRNO        (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR   (-3)
-#define Z_MEM_ERROR    (-4)
-#define Z_BUF_ERROR    (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative
- * values are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION         0
-#define Z_BEST_SPEED             1
-#define Z_BEST_COMPRESSION       9
-#define Z_DEFAULT_COMPRESSION  (-1)
-/* compression levels */
-
-#define Z_FILTERED            1
-#define Z_HUFFMAN_ONLY        2
-#define Z_RLE                 3
-#define Z_DEFAULT_STRATEGY    0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY   0
-#define Z_ASCII    1
-#define Z_UNKNOWN  2
-/* Possible values of the data_type field (though see inflate()) */
-
-#define Z_DEFLATED   8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
-                        /* basic functions */
-
-ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
-   If the first character differs, the library code actually used is
-   not compatible with the zlib.h header file used by the application.
-   This check is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-
-     Initializes the internal stream state for compression. The fields
-   zalloc, zfree and opaque must be initialized before by the caller.
-   If zalloc and zfree are set to Z_NULL, deflateInit updates them to
-   use default allocation functions.
-
-     The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
-   1 gives best speed, 9 gives best compression, 0 gives no compression at
-   all (the input data is simply copied a block at a time).
-   Z_DEFAULT_COMPRESSION requests a default compromise between speed and
-   compression (currently equivalent to level 6).
-
-     deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if level is not a valid compression level,
-   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
-   with the version assumed by the caller (ZLIB_VERSION).
-   msg is set to null if there is no error message.  deflateInit does not
-   perform any compression: this will be done by deflate().
-*/
-
-
-ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-/*
-    deflate compresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full. It may introduce some
-  output latency (reading input without producing any output) except when
-  forced to flush.
-
-    The detailed semantics are as follows. deflate performs one or both of the
-  following actions:
-
-  - Compress more input starting at next_in and update next_in and avail_in
-    accordingly. If not all input can be processed (because there is not
-    enough room in the output buffer), next_in and avail_in are updated and
-    processing will resume at this point for the next call of deflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly. This action is forced if the parameter flush is non zero.
-    Forcing flush frequently degrades the compression ratio, so this parameter
-    should be set only when necessary (in interactive applications).
-    Some output may be provided even if flush is not set.
-
-  Before the call of deflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming
-  more output, and updating avail_in or avail_out accordingly; avail_out
-  should never be zero before the call. The application can consume the
-  compressed output when it wants, for example when the output buffer is full
-  (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
-  and with zero avail_out, it must be called again after making room in the
-  output buffer because there might be more output pending.
-
-    If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
-  flushed to the output buffer and the output is aligned on a byte boundary, so
-  that the decompressor can get all input data available so far. (In particular
-  avail_in is zero after the call if enough output space has been provided
-  before the call.)  Flushing may degrade compression for some compression
-  algorithms and so it should be used only when necessary.
-
-    If flush is set to Z_FULL_FLUSH, all output is flushed as with
-  Z_SYNC_FLUSH, and the compression state is reset so that decompression can
-  restart from this point if previous compressed data has been damaged or if
-  random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
-  the compression.
-
-    If deflate returns with avail_out == 0, this function must be called again
-  with the same value of the flush parameter and more output space (updated
-  avail_out), until the flush is complete (deflate returns with non-zero
-  avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
-  avail_out is greater than six to avoid repeated flush markers due to
-  avail_out == 0 on return.
-
-    If the parameter flush is set to Z_FINISH, pending input is processed,
-  pending output is flushed and deflate returns with Z_STREAM_END if there
-  was enough output space; if deflate returns with Z_OK, this function must be
-  called again with Z_FINISH and more output space (updated avail_out) but no
-  more input data, until it returns with Z_STREAM_END or an error. After
-  deflate has returned Z_STREAM_END, the only possible operations on the
-  stream are deflateReset or deflateEnd.
-
-    Z_FINISH can be used immediately after deflateInit if all the compression
-  is to be done in a single step. In this case, avail_out must be at least
-  the value returned by deflateBound (see below). If deflate does not return
-  Z_STREAM_END, then it must be called again as described above.
-
-    deflate() sets strm->adler to the adler32 checksum of all input read
-  so far (that is, total_in bytes).
-
-    deflate() may update data_type if it can make a good guess about
-  the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
-  binary. This field is only for information purposes and does not affect
-  the compression algorithm in any manner.
-
-    deflate() returns Z_OK if some progress has been made (more input
-  processed or more output produced), Z_STREAM_END if all input has been
-  consumed and all output has been produced (only when flush is set to
-  Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
-  if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible
-  (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not
-  fatal, and deflate() can be called again with more input and more output
-  space to continue compressing.
-*/
-
-
-ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any
-   pending output.
-
-     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
-   stream state was inconsistent, Z_DATA_ERROR if the stream was freed
-   prematurely (some input or output was discarded). In the error case,
-   msg may be set but then points to a static string (which must not be
-   deallocated).
-*/
-
-
-/*
-ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-
-     Initializes the internal stream state for decompression. The fields
-   next_in, avail_in, zalloc, zfree and opaque must be initialized before by
-   the caller. If next_in is not Z_NULL and avail_in is large enough (the exact
-   value depends on the compression method), inflateInit determines the
-   compression method from the zlib header and allocates all data structures
-   accordingly; otherwise the allocation will be deferred to the first call of
-   inflate.  If zalloc and zfree are set to Z_NULL, inflateInit updates them to
-   use default allocation functions.
-
-     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller.  msg is set to null if there is no error
-   message. inflateInit does not perform any decompression apart from reading
-   the zlib header if present: this will be done by inflate().  (So next_in and
-   avail_in may be modified, but next_out and avail_out are unchanged.)
-*/
-
-
-ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-/*
-    inflate decompresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full. It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-  The detailed semantics are as follows. inflate performs one or both of the
-  following actions:
-
-  - Decompress more input starting at next_in and update next_in and avail_in
-    accordingly. If not all input can be processed (because there is not
-    enough room in the output buffer), next_in is updated and processing
-    will resume at this point for the next call of inflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  inflate() provides as much output as possible, until there
-    is no more input data or no more space in the output buffer (see below
-    about the flush parameter).
-
-  Before the call of inflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming
-  more output, and updating the next_* and avail_* values accordingly.
-  The application can consume the uncompressed output when it wants, for
-  example when the output buffer is full (avail_out == 0), or after each
-  call of inflate(). If inflate returns Z_OK and with zero avail_out, it
-  must be called again after making room in the output buffer because there
-  might be more output pending.
-
-    The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH,
-  Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much
-  output as possible to the output buffer. Z_BLOCK requests that inflate() stop
-  if and when it get to the next deflate block boundary. When decoding the zlib
-  or gzip format, this will cause inflate() to return immediately after the
-  header and before the first block. When doing a raw inflate, inflate() will
-  go ahead and process the first block, and will return when it gets to the end
-  of that block, or when it runs out of data.
-
-    The Z_BLOCK option assists in appending to or combining deflate streams.
-  Also to assist in this, on return inflate() will set strm->data_type to the
-  number of unused bits in the last byte taken from strm->next_in, plus 64
-  if inflate() is currently decoding the last block in the deflate stream,
-  plus 128 if inflate() returned immediately after decoding an end-of-block
-  code or decoding the complete header up to just before the first byte of the
-  deflate stream. The end-of-block will not be indicated until all of the
-  uncompressed data from that block has been written to strm->next_out.  The
-  number of unused bits may in general be greater than seven, except when
-  bit 7 of data_type is set, in which case the number of unused bits will be
-  less than eight.
-
-    inflate() should normally be called until it returns Z_STREAM_END or an
-  error. However if all decompression is to be performed in a single step
-  (a single call of inflate), the parameter flush should be set to
-  Z_FINISH. In this case all pending input is processed and all pending
-  output is flushed; avail_out must be large enough to hold all the
-  uncompressed data. (The size of the uncompressed data may have been saved
-  by the compressor for this purpose.) The next operation on this stream must
-  be inflateEnd to deallocate the decompression state. The use of Z_FINISH
-  is never required, but can be used to inform inflate that a faster approach
-  may be used for the single inflate() call.
-
-     In this implementation, inflate() always flushes as much output as
-  possible to the output buffer, and always uses the faster approach on the
-  first call. So the only effect of the flush parameter in this implementation
-  is on the return value of inflate(), as noted below, or when it returns early
-  because Z_BLOCK is used.
-
-     If a preset dictionary is needed after this call (see inflateSetDictionary
-  below), inflate sets strm-adler to the adler32 checksum of the dictionary
-  chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
-  strm->adler to the adler32 checksum of all output produced so far (that is,
-  total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
-  below. At the end of the stream, inflate() checks that its computed adler32
-  checksum is equal to that saved by the compressor and returns Z_STREAM_END
-  only if the checksum is correct.
-
-    inflate() will decompress and check either zlib-wrapped or gzip-wrapped
-  deflate data.  The header type is detected automatically.  Any information
-  contained in the gzip header is not retained, so applications that need that
-  information should instead use raw inflate, see inflateInit2() below, or
-  inflateBack() and perform their own processing of the gzip header and
-  trailer.
-
-    inflate() returns Z_OK if some progress has been made (more input processed
-  or more output produced), Z_STREAM_END if the end of the compressed data has
-  been reached and all uncompressed output has been produced, Z_NEED_DICT if a
-  preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
-  corrupted (input stream not conforming to the zlib format or incorrect check
-  value), Z_STREAM_ERROR if the stream structure was inconsistent (for example
-  if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory,
-  Z_BUF_ERROR if no progress is possible or if there was not enough room in the
-  output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and
-  inflate() can be called again with more input and more output space to
-  continue decompressing. If Z_DATA_ERROR is returned, the application may then
-  call inflateSync() to look for a good compression block if a partial recovery
-  of the data is desired.
-*/
-
-
-ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any
-   pending output.
-
-     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-   was inconsistent. In the error case, msg may be set but then points to a
-   static string (which must not be deallocated).
-*/
-
-                        /* Advanced functions */
-
-/*
-    The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
-                                     int  level,
-                                     int  method,
-                                     int  windowBits,
-                                     int  memLevel,
-                                     int  strategy));
-
-     This is another version of deflateInit with more compression options. The
-   fields next_in, zalloc, zfree and opaque must be initialized before by
-   the caller.
-
-     The method parameter is the compression method. It must be Z_DEFLATED in
-   this version of the library.
-
-     The windowBits parameter is the base two logarithm of the window size
-   (the size of the history buffer). It should be in the range 8..15 for this
-   version of the library. Larger values of this parameter result in better
-   compression at the expense of memory usage. The default value is 15 if
-   deflateInit is used instead.
-
-     windowBits can also be -8..-15 for raw deflate. In this case, -windowBits
-   determines the window size. deflate() will then generate raw deflate data
-   with no zlib header or trailer, and will not compute an adler32 check value.
-
-     windowBits can also be greater than 15 for optional gzip encoding. Add
-   16 to windowBits to write a simple gzip header and trailer around the
-   compressed data instead of a zlib wrapper. The gzip header will have no
-   file name, no extra data, no comment, no modification time (set to zero),
-   no header crc, and the operating system will be set to 255 (unknown).
-
-     The memLevel parameter specifies how much memory should be allocated
-   for the internal compression state. memLevel=1 uses minimum memory but
-   is slow and reduces compression ratio; memLevel=9 uses maximum memory
-   for optimal speed. The default value is 8. See zconf.h for total memory
-   usage as a function of windowBits and memLevel.
-
-     The strategy parameter is used to tune the compression algorithm. Use the
-   value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
-   filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no
-   string match), or Z_RLE to limit match distances to one (run-length
-   encoding). Filtered data consists mostly of small values with a somewhat
-   random distribution. In this case, the compression algorithm is tuned to
-   compress them better. The effect of Z_FILTERED is to force more Huffman
-   coding and less string matching; it is somewhat intermediate between
-   Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as
-   Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy
-   parameter only affects the compression ratio but not the correctness of the
-   compressed output even if it is not set appropriately.
-
-      deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
-   method). msg is set to null if there is no error message.  deflateInit2 does
-   not perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the compression dictionary from the given byte sequence
-   without producing any compressed output. This function must be called
-   immediately after deflateInit, deflateInit2 or deflateReset, before any
-   call of deflate. The compressor and decompressor must use exactly the same
-   dictionary (see inflateSetDictionary).
-
-     The dictionary should consist of strings (byte sequences) that are likely
-   to be encountered later in the data to be compressed, with the most commonly
-   used strings preferably put towards the end of the dictionary. Using a
-   dictionary is most useful when the data to be compressed is short and can be
-   predicted with good accuracy; the data can then be compressed better than
-   with the default empty dictionary.
-
-     Depending on the size of the compression data structures selected by
-   deflateInit or deflateInit2, a part of the dictionary may in effect be
-   discarded, for example if the dictionary is larger than the window size in
-   deflate or deflate2. Thus the strings most likely to be useful should be
-   put at the end of the dictionary, not at the front.
-
-     Upon return of this function, strm->adler is set to the adler32 value
-   of the dictionary; the decompressor may later use this value to determine
-   which dictionary has been used by the compressor. (The adler32 value
-   applies to the whole dictionary even if only a subset of the dictionary is
-   actually used by the compressor.) If a raw deflate was requested, then the
-   adler32 value is not computed and strm->adler is not set.
-
-     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
-   parameter is invalid (such as NULL dictionary) or the stream state is
-   inconsistent (for example if deflate has already been called for this stream
-   or if the compression method is bsort). deflateSetDictionary does not
-   perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when several compression strategies will be
-   tried, for example when there are several ways of pre-processing the input
-   data with a filter. The streams that will be discarded should then be freed
-   by calling deflateEnd.  Note that deflateCopy duplicates the internal
-   compression state which can be quite large, so this strategy is slow and
-   can consume lots of memory.
-
-     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being NULL). msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to deflateEnd followed by deflateInit,
-   but does not free and reallocate all the internal compression state.
-   The stream will keep the same compression level and any other attributes
-   that may have been set by deflateInit2.
-
-      deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
-                                      int level,
-                                      int strategy));
-/*
-     Dynamically update the compression level and compression strategy.  The
-   interpretation of level and strategy is as in deflateInit2.  This can be
-   used to switch between compression and straight copy of the input data, or
-   to switch to a different kind of input data requiring a different
-   strategy. If the compression level is changed, the input available so far
-   is compressed with the old level (and may be flushed); the new level will
-   take effect only at the next call of deflate().
-
-     Before the call of deflateParams, the stream state must be set as for
-   a call of deflate(), since the currently available input may have to
-   be compressed and flushed. In particular, strm->avail_out must be non-zero.
-
-     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
-   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
-   if strm->avail_out was zero.
-*/
-
-ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
-                                       uLong sourceLen));
-/*
-     deflateBound() returns an upper bound on the compressed size after
-   deflation of sourceLen bytes.  It must be called after deflateInit()
-   or deflateInit2().  This would be used to allocate an output buffer
-   for deflation in a single pass, and so would be called before deflate().
-*/
-
-ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     deflatePrime() inserts bits in the deflate output stream.  The intent
-  is that this function is used to start off the deflate output with the
-  bits leftover from a previous deflate stream when appending to it.  As such,
-  this function can only be used for raw deflate, and must be used before the
-  first deflate() call after a deflateInit2() or deflateReset().  bits must be
-  less than or equal to 16, and that many of the least significant bits of
-  value will be inserted in the output.
-
-      deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
-                                     int  windowBits));
-
-     This is another version of inflateInit with an extra parameter. The
-   fields next_in, avail_in, zalloc, zfree and opaque must be initialized
-   before by the caller.
-
-     The windowBits parameter is the base two logarithm of the maximum window
-   size (the size of the history buffer).  It should be in the range 8..15 for
-   this version of the library. The default value is 15 if inflateInit is used
-   instead. windowBits must be greater than or equal to the windowBits value
-   provided to deflateInit2() while compressing, or it must be equal to 15 if
-   deflateInit2() was not used. If a compressed stream with a larger window
-   size is given as input, inflate() will return with the error code
-   Z_DATA_ERROR instead of trying to allocate a larger window.
-
-     windowBits can also be -8..-15 for raw inflate. In this case, -windowBits
-   determines the window size. inflate() will then process raw deflate data,
-   not looking for a zlib or gzip header, not generating a check value, and not
-   looking for any check values for comparison at the end of the stream. This
-   is for use with other formats that use the deflate compressed data format
-   such as zip.  Those formats provide their own check values. If a custom
-   format is developed using the raw deflate format for compressed data, it is
-   recommended that a check value such as an adler32 or a crc32 be applied to
-   the uncompressed data as is done in the zlib, gzip, and zip formats.  For
-   most applications, the zlib format should be used as is. Note that comments
-   above on the use in deflateInit2() applies to the magnitude of windowBits.
-
-     windowBits can also be greater than 15 for optional gzip decoding. Add
-   32 to windowBits to enable zlib and gzip decoding with automatic header
-   detection, or add 16 to decode only the gzip format (the zlib format will
-   return a Z_DATA_ERROR).
-
-     inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative
-   memLevel). msg is set to null if there is no error message.  inflateInit2
-   does not perform any decompression apart from reading the zlib header if
-   present: this will be done by inflate(). (So next_in and avail_in may be
-   modified, but next_out and avail_out are unchanged.)
-*/
-
-ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the decompression dictionary from the given uncompressed byte
-   sequence. This function must be called immediately after a call of inflate
-   if this call returned Z_NEED_DICT. The dictionary chosen by the compressor
-   can be determined from the adler32 value returned by this call of
-   inflate. The compressor and decompressor must use exactly the same
-   dictionary (see deflateSetDictionary).
-
-     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
-   parameter is invalid (such as NULL dictionary) or the stream state is
-   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
-   expected one (incorrect adler32 value). inflateSetDictionary does not
-   perform any decompression: this will be done by subsequent calls of
-   inflate().
-*/
-
-ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-/*
-    Skips invalid compressed data until a full flush point (see above the
-  description of deflate with Z_FULL_FLUSH) can be found, or until all
-  available input is skipped. No output is provided.
-
-    inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
-  if no more input was provided, Z_DATA_ERROR if no flush point has been found,
-  or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
-  case, the application may save the current current value of total_in which
-  indicates where valid compressed data was found. In the error case, the
-  application may repeatedly call inflateSync, providing more input each time,
-  until success or end of the input data.
-*/
-
-ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when randomly accessing a large stream.  The
-   first pass through the stream can periodically record the inflate state,
-   allowing restarting inflate at those points when randomly accessing the
-   stream.
-
-     inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being NULL). msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to inflateEnd followed by inflateInit,
-   but does not free and reallocate all the internal decompression state.
-   The stream will keep attributes that may have been set by inflateInit2.
-
-      inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateBackInit OF((z_stream FAR *strm, int windowBits,
-                                        unsigned char FAR *window));
-
-     Initialize the internal stream state for decompression using inflateBack()
-   calls.  The fields zalloc, zfree and opaque in strm must be initialized
-   before the call.  If zalloc and zfree are Z_NULL, then the default library-
-   derived memory allocation routines are used.  windowBits is the base two
-   logarithm of the window size, in the range 8..15.  window is a caller
-   supplied buffer of that size.  Except for special applications where it is
-   assured that deflate was used with small window sizes, windowBits must be 15
-   and a 32K byte window must be supplied to be able to decompress general
-   deflate streams.
-
-     See inflateBack() for the usage of these routines.
-
-     inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
-   the paramaters are invalid, Z_MEM_ERROR if the internal state could not
-   be allocated, or Z_VERSION_ERROR if the version of the library does not
-   match the version of the header file.
-*/
-
-typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *));
-typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
-
-ZEXTERN int ZEXPORT inflateBack OF((z_stream FAR *strm,
-                                    in_func in, void FAR *in_desc,
-                                    out_func out, void FAR *out_desc));
-/*
-     inflateBack() does a raw inflate with a single call using a call-back
-   interface for input and output.  This is more efficient than inflate() for
-   file i/o applications in that it avoids copying between the output and the
-   sliding window by simply making the window itself the output buffer.  This
-   function trusts the application to not change the output buffer passed by
-   the output function, at least until inflateBack() returns.
-
-     inflateBackInit() must be called first to allocate the internal state
-   and to initialize the state with the user-provided window buffer.
-   inflateBack() may then be used multiple times to inflate a complete, raw
-   deflate stream with each call.  inflateBackEnd() is then called to free
-   the allocated state.
-
-     A raw deflate stream is one with no zlib or gzip header or trailer.
-   This routine would normally be used in a utility that reads zip or gzip
-   files and writes out uncompressed files.  The utility would decode the
-   header and process the trailer on its own, hence this routine expects
-   only the raw deflate stream to decompress.  This is different from the
-   normal behavior of inflate(), which expects either a zlib or gzip header and
-   trailer around the deflate stream.
-
-     inflateBack() uses two subroutines supplied by the caller that are then
-   called by inflateBack() for input and output.  inflateBack() calls those
-   routines until it reads a complete deflate stream and writes out all of the
-   uncompressed data, or until it encounters an error.  The function's
-   parameters and return types are defined above in the in_func and out_func
-   typedefs.  inflateBack() will call in(in_desc, &buf) which should return the
-   number of bytes of provided input, and a pointer to that input in buf.  If
-   there is no input available, in() must return zero--buf is ignored in that
-   case--and inflateBack() will return a buffer error.  inflateBack() will call
-   out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].  out()
-   should return zero on success, or non-zero on failure.  If out() returns
-   non-zero, inflateBack() will return with an error.  Neither in() nor out()
-   are permitted to change the contents of the window provided to
-   inflateBackInit(), which is also the buffer that out() uses to write from.
-   The length written by out() will be at most the window size.  Any non-zero
-   amount of input may be provided by in().
-
-     For convenience, inflateBack() can be provided input on the first call by
-   setting strm->next_in and strm->avail_in.  If that input is exhausted, then
-   in() will be called.  Therefore strm->next_in must be initialized before
-   calling inflateBack().  If strm->next_in is Z_NULL, then in() will be called
-   immediately for input.  If strm->next_in is not Z_NULL, then strm->avail_in
-   must also be initialized, and then if strm->avail_in is not zero, input will
-   initially be taken from strm->next_in[0 .. strm->avail_in - 1].
-
-     The in_desc and out_desc parameters of inflateBack() is passed as the
-   first parameter of in() and out() respectively when they are called.  These
-   descriptors can be optionally used to pass any information that the caller-
-   supplied in() and out() functions need to do their job.
-
-     On return, inflateBack() will set strm->next_in and strm->avail_in to
-   pass back any unused input that was provided by the last in() call.  The
-   return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
-   if in() or out() returned an error, Z_DATA_ERROR if there was a format
-   error in the deflate stream (in which case strm->msg is set to indicate the
-   nature of the error), or Z_STREAM_ERROR if the stream was not properly
-   initialized.  In the case of Z_BUF_ERROR, an input or output error can be
-   distinguished using strm->next_in which will be Z_NULL only if in() returned
-   an error.  If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to
-   out() returning non-zero.  (in() will always be called before out(), so
-   strm->next_in is assured to be defined if out() returns non-zero.)  Note
-   that inflateBack() cannot return Z_OK.
-*/
-
-ZEXTERN int ZEXPORT inflateBackEnd OF((z_stream FAR *strm));
-/*
-     All memory allocated by inflateBackInit() is freed.
-
-     inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
-   state was inconsistent.
-*/
-
-ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
-/* Return flags indicating compile-time options.
-
-    Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:
-     1.0: size of uInt
-     3.2: size of uLong
-     5.4: size of voidpf (pointer)
-     7.6: size of z_off_t
-
-    Compiler, assembler, and debug options:
-     8: DEBUG
-     9: ASMV or ASMINF -- use ASM code
-     10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
-     11: 0 (reserved)
-
-    One-time table building (smaller code, but not thread-safe if true):
-     12: BUILDFIXED -- build static block decoding tables when needed
-     13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
-     14,15: 0 (reserved)
-
-    Library content (indicates missing functionality):
-     16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
-                          deflate code when not needed)
-     17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
-                    and decode gzip streams (to avoid linking crc code)
-     18-19: 0 (reserved)
-
-    Operation variations (changes in library functionality):
-     20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
-     21: FASTEST -- deflate algorithm with only one, lowest compression level
-     22,23: 0 (reserved)
-
-    The sprintf variant used by gzprintf (zero is best):
-     24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
-     25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
-     26: 0 = returns value, 1 = void -- 1 means inferred string length returned
-
-    Remainder:
-     27-31: 0 (reserved)
- */
-
-
-                        /* utility functions */
-
-/*
-     The following utility functions are implemented on top of the
-   basic stream-oriented functions. To simplify the interface, some
-   default options are assumed (compression level and memory usage,
-   standard memory allocation functions). The source code of these
-   utility functions can easily be modified if you need special options.
-*/
-
-ZEXTERN int ZEXPORT compress OF((Bytef *dest,   uLongf *destLen,
-                                 const Bytef *source, uLong sourceLen));
-/*
-     Compresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer. Upon entry, destLen is the total
-   size of the destination buffer, which must be at least the value returned
-   by compressBound(sourceLen). Upon exit, destLen is the actual size of the
-   compressed buffer.
-     This function can be used to compress a whole file at once if the
-   input file is mmap'ed.
-     compress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer.
-*/
-
-ZEXTERN int ZEXPORT compress2 OF((Bytef *dest,   uLongf *destLen,
-                                  const Bytef *source, uLong sourceLen,
-                                  int level));
-/*
-     Compresses the source buffer into the destination buffer. The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer. Upon entry, destLen is the total size of the
-   destination buffer, which must be at least the value returned by
-   compressBound(sourceLen). Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));
-/*
-     compressBound() returns an upper bound on the compressed size after
-   compress() or compress2() on sourceLen bytes.  It would be used before
-   a compress() or compress2() call to allocate the destination buffer.
-*/
-
-ZEXTERN int ZEXPORT uncompress OF((Bytef *dest,   uLongf *destLen,
-                                   const Bytef *source, uLong sourceLen));
-/*
-     Decompresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer. Upon entry, destLen is the total
-   size of the destination buffer, which must be large enough to hold the
-   entire uncompressed data. (The size of the uncompressed data must have
-   been saved previously by the compressor and transmitted to the decompressor
-   by some mechanism outside the scope of this compression library.)
-   Upon exit, destLen is the actual size of the compressed buffer.
-     This function can be used to decompress a whole file at once if the
-   input file is mmap'ed.
-
-     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete.
-*/
-
-
-typedef voidp gzFile;
-
-ZEXTERN gzFile ZEXPORT gzopen  OF((const char *path, const char *mode));
-/*
-     Opens a gzip (.gz) file for reading or writing. The mode parameter
-   is as in fopen ("rb" or "wb") but can also include a compression level
-   ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for
-   Huffman only compression as in "wb1h", or 'R' for run-length encoding
-   as in "wb1R". (See the description of deflateInit2 for more information
-   about the strategy parameter.)
-
-     gzopen can be used to read a file which is not in gzip format; in this
-   case gzread will directly read from the file without decompression.
-
-     gzopen returns NULL if the file could not be opened or if there was
-   insufficient memory to allocate the (de)compression state; errno
-   can be checked to distinguish the two cases (if errno is zero, the
-   zlib error is Z_MEM_ERROR).  */
-
-ZEXTERN gzFile ZEXPORT gzdopen  OF((int fd, const char *mode));
-/*
-     gzdopen() associates a gzFile with the file descriptor fd.  File
-   descriptors are obtained from calls like open, dup, creat, pipe or
-   fileno (in the file has been previously opened with fopen).
-   The mode parameter is as in gzopen.
-     The next call of gzclose on the returned gzFile will also close the
-   file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
-   descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
-     gzdopen returns NULL if there was insufficient memory to allocate
-   the (de)compression state.
-*/
-
-ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-/*
-     Dynamically update the compression level or strategy. See the description
-   of deflateInit2 for the meaning of these parameters.
-     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
-   opened for writing.
-*/
-
-ZEXTERN int ZEXPORT    gzread  OF((gzFile file, voidp buf, unsigned len));
-/*
-     Reads the given number of uncompressed bytes from the compressed file.
-   If the input file was not in gzip format, gzread copies the given number
-   of bytes into the buffer.
-     gzread returns the number of uncompressed bytes actually read (0 for
-   end of file, -1 for error). */
-
-ZEXTERN int ZEXPORT    gzwrite OF((gzFile file,
-                                   voidpc buf, unsigned len));
-/*
-     Writes the given number of uncompressed bytes into the compressed file.
-   gzwrite returns the number of uncompressed bytes actually written
-   (0 in case of error).
-*/
-
-ZEXTERN int ZEXPORTVA   gzprintf OF((gzFile file, const char *format, ...));
-/*
-     Converts, formats, and writes the args to the compressed file under
-   control of the format string, as in fprintf. gzprintf returns the number of
-   uncompressed bytes actually written (0 in case of error).  The number of
-   uncompressed bytes written is limited to 4095. The caller should assure that
-   this limit is not exceeded. If it is exceeded, then gzprintf() will return
-   return an error (0) with nothing written. In this case, there may also be a
-   buffer overflow with unpredictable consequences, which is possible only if
-   zlib was compiled with the insecure functions sprintf() or vsprintf()
-   because the secure snprintf() or vsnprintf() functions were not available.
-*/
-
-ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-/*
-      Writes the given null-terminated string to the compressed file, excluding
-   the terminating null character.
-      gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-/*
-      Reads bytes from the compressed file until len-1 characters are read, or
-   a newline character is read and transferred to buf, or an end-of-file
-   condition is encountered.  The string is then terminated with a null
-   character.
-      gzgets returns buf, or Z_NULL in case of error.
-*/
-
-ZEXTERN int ZEXPORT    gzputc OF((gzFile file, int c));
-/*
-      Writes c, converted to an unsigned char, into the compressed file.
-   gzputc returns the value that was written, or -1 in case of error.
-*/
-
-ZEXTERN int ZEXPORT    gzgetc OF((gzFile file));
-/*
-      Reads one byte from the compressed file. gzgetc returns this byte
-   or -1 in case of end of file or error.
-*/
-
-ZEXTERN int ZEXPORT    gzungetc OF((int c, gzFile file));
-/*
-      Push one character back onto the stream to be read again later.
-   Only one character of push-back is allowed.  gzungetc() returns the
-   character pushed, or -1 on failure.  gzungetc() will fail if a
-   character has been pushed but not read yet, or if c is -1. The pushed
-   character will be discarded if the stream is repositioned with gzseek()
-   or gzrewind().
-*/
-
-ZEXTERN int ZEXPORT    gzflush OF((gzFile file, int flush));
-/*
-     Flushes all pending output into the compressed file. The parameter
-   flush is as in the deflate() function. The return value is the zlib
-   error number (see function gzerror below). gzflush returns Z_OK if
-   the flush parameter is Z_FINISH and all output could be flushed.
-     gzflush should be called only when strictly necessary because it can
-   degrade compression.
-*/
-
-ZEXTERN z_off_t ZEXPORT    gzseek OF((gzFile file,
-                                      z_off_t offset, int whence));
-/*
-      Sets the starting position for the next gzread or gzwrite on the
-   given compressed file. The offset represents a number of bytes in the
-   uncompressed data stream. The whence parameter is defined as in lseek(2);
-   the value SEEK_END is not supported.
-     If the file is opened for reading, this function is emulated but can be
-   extremely slow. If the file is opened for writing, only forward seeks are
-   supported; gzseek then compresses a sequence of zeroes up to the new
-   starting position.
-
-      gzseek returns the resulting offset location as measured in bytes from
-   the beginning of the uncompressed stream, or -1 in case of error, in
-   particular if the file is opened for writing and the new starting position
-   would be before the current position.
-*/
-
-ZEXTERN int ZEXPORT    gzrewind OF((gzFile file));
-/*
-     Rewinds the given file. This function is supported only for reading.
-
-   gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-ZEXTERN z_off_t ZEXPORT    gztell OF((gzFile file));
-/*
-     Returns the starting position for the next gzread or gzwrite on the
-   given compressed file. This position represents a number of bytes in the
-   uncompressed data stream.
-
-   gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-/*
-     Returns 1 when EOF has previously been detected reading the given
-   input stream, otherwise zero.
-*/
-
-ZEXTERN int ZEXPORT    gzclose OF((gzFile file));
-/*
-     Flushes all pending output if necessary, closes the compressed file
-   and deallocates all the (de)compression state. The return value is the zlib
-   error number (see function gzerror below).
-*/
-
-ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-/*
-     Returns the error message for the last error which occurred on the
-   given compressed file. errnum is set to zlib error number. If an
-   error occurred in the file system and not in the compression library,
-   errnum is set to Z_ERRNO and the application may consult errno
-   to get the exact error code.
-*/
-
-ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
-/*
-     Clears the error and end-of-file flags for file. This is analogous to the
-   clearerr() function in stdio. This is useful for continuing to read a gzip
-   file that is being written concurrently.
-*/
-
-                        /* checksum functions */
-
-/*
-     These functions are not related to compression but are exported
-   anyway because they might be useful in applications using the
-   compression library.
-*/
-
-ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-
-/*
-     Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-   return the updated checksum. If buf is NULL, this function returns
-   the required initial value for the checksum.
-   An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-   much faster. Usage example:
-
-     uLong adler = adler32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       adler = adler32(adler, buffer, length);
-     }
-     if (adler != original_adler) error();
-*/
-
-ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len));
-/*
-     Update a running crc with the bytes buf[0..len-1] and return the updated
-   crc. If buf is NULL, this function returns the required initial value
-   for the crc. Pre- and post-conditioning (one's complement) is performed
-   within this function so it shouldn't be done by the application.
-   Usage example:
-
-     uLong crc = crc32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       crc = crc32(crc, buffer, length);
-     }
-     if (crc != original_crc) error();
-*/
-
-
-                        /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int  level, int  method,
-                                      int windowBits, int memLevel,
-                                      int strategy, const char *version,
-                                      int stream_size));
-ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits,
-                                      const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateBackInit_ OF((z_stream FAR *strm, int windowBits,
-                                         unsigned char FAR *window,
-                                         const char *version,
-                                         int stream_size));
-#define deflateInit(strm, level) \
-        deflateInit_((strm), (level),       ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit(strm) \
-        inflateInit_((strm),                ZLIB_VERSION, sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
-        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
-                      (strategy),           ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
-        inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
-#define inflateBackInit(strm, windowBits, window) \
-        inflateBackInit_((strm), (windowBits), (window), \
-        ZLIB_VERSION, sizeof(z_stream))
-
-
-#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
-    struct internal_state {int dummy;}; /* hack for buggy compilers */
-#endif
-
-ZEXTERN const char   * ZEXPORT zError           OF((int err));
-ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp z));
-ZEXTERN const uLongf * ZEXPORT get_crc_table    OF((void));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ZLIB_H */
diff --git a/klibc/klibc/zlib/zutil.c b/klibc/klibc/zlib/zutil.c
deleted file mode 100644 (file)
index 253a1cc..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-2003 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: zutil.c,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#include "zutil.h"
-
-#ifndef NO_DUMMY_DECL
-struct internal_state      {int dummy;}; /* for buggy compilers */
-#endif
-
-#ifndef STDC
-extern void exit OF((int));
-#endif
-
-const char * const z_errmsg[10] = {
-"need dictionary",     /* Z_NEED_DICT       2  */
-"stream end",          /* Z_STREAM_END      1  */
-"",                    /* Z_OK              0  */
-"file error",          /* Z_ERRNO         (-1) */
-"stream error",        /* Z_STREAM_ERROR  (-2) */
-"data error",          /* Z_DATA_ERROR    (-3) */
-"insufficient memory", /* Z_MEM_ERROR     (-4) */
-"buffer error",        /* Z_BUF_ERROR     (-5) */
-"incompatible version",/* Z_VERSION_ERROR (-6) */
-""};
-
-
-const char * ZEXPORT zlibVersion()
-{
-    return ZLIB_VERSION;
-}
-
-uLong ZEXPORT zlibCompileFlags()
-{
-    uLong flags;
-
-    flags = 0;
-    switch (sizeof(uInt)) {
-    case 2:     break;
-    case 4:     flags += 1;     break;
-    case 8:     flags += 2;     break;
-    default:    flags += 3;
-    }
-    switch (sizeof(uLong)) {
-    case 2:     break;
-    case 4:     flags += 1 << 2;        break;
-    case 8:     flags += 2 << 2;        break;
-    default:    flags += 3 << 2;
-    }
-    switch (sizeof(voidpf)) {
-    case 2:     break;
-    case 4:     flags += 1 << 4;        break;
-    case 8:     flags += 2 << 4;        break;
-    default:    flags += 3 << 4;
-    }
-    switch (sizeof(z_off_t)) {
-    case 2:     break;
-    case 4:     flags += 1 << 6;        break;
-    case 8:     flags += 2 << 6;        break;
-    default:    flags += 3 << 6;
-    }
-#ifdef DEBUG
-    flags += 1 << 8;
-#endif
-#if defined(ASMV) || defined(ASMINF)
-    flags += 1 << 9;
-#endif
-#ifdef ZLIB_WINAPI
-    flags += 1 << 10;
-#endif
-#ifdef BUILDFIXED
-    flags += 1 << 12;
-#endif
-#ifdef DYNAMIC_CRC_TABLE
-    flags += 1 << 13;
-#endif
-#ifdef NO_GZCOMPRESS
-    flags += 1 << 16;
-#endif
-#ifdef NO_GZIP
-    flags += 1 << 17;
-#endif
-#ifdef PKZIP_BUG_WORKAROUND
-    flags += 1 << 20;
-#endif
-#ifdef FASTEST
-    flags += 1 << 21;
-#endif
-#ifdef STDC
-#  ifdef NO_vsnprintf
-        flags += 1 << 25;
-#    ifdef HAS_vsprintf_void
-        flags += 1 << 26;
-#    endif
-#  else
-#    ifdef HAS_vsnprintf_void
-        flags += 1 << 26;
-#    endif
-#  endif
-#else
-        flags += 1 << 24;
-#  ifdef NO_snprintf
-        flags += 1 << 25;
-#    ifdef HAS_sprintf_void
-        flags += 1 << 26;
-#    endif
-#  else
-#    ifdef HAS_snprintf_void
-        flags += 1 << 26;
-#    endif
-#  endif
-#endif
-    return flags;
-}
-
-#ifdef DEBUG
-
-#  ifndef verbose
-#    define verbose 0
-#  endif
-int z_verbose = verbose;
-
-void z_error (m)
-    char *m;
-{
-    fprintf(stderr, "%s\n", m);
-    exit(1);
-}
-#endif
-
-/* exported to allow conversion of error code to string for compress() and
- * uncompress()
- */
-const char * ZEXPORT zError(err)
-    int err;
-{
-    return ERR_MSG(err);
-}
-
-#if defined(_WIN32_WCE)
-    /* does not exist on WCE */
-    int errno = 0;
-#endif
-
-#ifndef HAVE_MEMCPY
-
-void zmemcpy(dest, source, len)
-    Bytef* dest;
-    const Bytef* source;
-    uInt  len;
-{
-    if (len == 0) return;
-    do {
-        *dest++ = *source++; /* ??? to be unrolled */
-    } while (--len != 0);
-}
-
-int zmemcmp(s1, s2, len)
-    const Bytef* s1;
-    const Bytef* s2;
-    uInt  len;
-{
-    uInt j;
-
-    for (j = 0; j < len; j++) {
-        if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
-    }
-    return 0;
-}
-
-void zmemzero(dest, len)
-    Bytef* dest;
-    uInt  len;
-{
-    if (len == 0) return;
-    do {
-        *dest++ = 0;  /* ??? to be unrolled */
-    } while (--len != 0);
-}
-#endif
-
-
-#ifdef SYS16BIT
-
-#ifdef __TURBOC__
-/* Turbo C in 16-bit mode */
-
-#  define MY_ZCALLOC
-
-/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
- * and farmalloc(64K) returns a pointer with an offset of 8, so we
- * must fix the pointer. Warning: the pointer must be put back to its
- * original form in order to free it, use zcfree().
- */
-
-#define MAX_PTR 10
-/* 10*64K = 640K */
-
-local int next_ptr = 0;
-
-typedef struct ptr_table_s {
-    voidpf org_ptr;
-    voidpf new_ptr;
-} ptr_table;
-
-local ptr_table table[MAX_PTR];
-/* This table is used to remember the original form of pointers
- * to large buffers (64K). Such pointers are normalized with a zero offset.
- * Since MSDOS is not a preemptive multitasking OS, this table is not
- * protected from concurrent access. This hack doesn't work anyway on
- * a protected system like OS/2. Use Microsoft C instead.
- */
-
-voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
-    voidpf buf = opaque; /* just to make some compilers happy */
-    ulg bsize = (ulg)items*size;
-
-    /* If we allocate less than 65520 bytes, we assume that farmalloc
-     * will return a usable pointer which doesn't have to be normalized.
-     */
-    if (bsize < 65520L) {
-        buf = farmalloc(bsize);
-        if (*(ush*)&buf != 0) return buf;
-    } else {
-        buf = farmalloc(bsize + 16L);
-    }
-    if (buf == NULL || next_ptr >= MAX_PTR) return NULL;
-    table[next_ptr].org_ptr = buf;
-
-    /* Normalize the pointer to seg:0 */
-    *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4;
-    *(ush*)&buf = 0;
-    table[next_ptr++].new_ptr = buf;
-    return buf;
-}
-
-void  zcfree (voidpf opaque, voidpf ptr)
-{
-    int n;
-    if (*(ush*)&ptr != 0) { /* object < 64K */
-        farfree(ptr);
-        return;
-    }
-    /* Find the original pointer */
-    for (n = 0; n < next_ptr; n++) {
-        if (ptr != table[n].new_ptr) continue;
-
-        farfree(table[n].org_ptr);
-        while (++n < next_ptr) {
-            table[n-1] = table[n];
-        }
-        next_ptr--;
-        return;
-    }
-    ptr = opaque; /* just to make some compilers happy */
-    Assert(0, "zcfree: ptr not found");
-}
-
-#endif /* __TURBOC__ */
-
-
-#ifdef M_I86
-/* Microsoft C in 16-bit mode */
-
-#  define MY_ZCALLOC
-
-#if (!defined(_MSC_VER) || (_MSC_VER <= 600))
-#  define _halloc  halloc
-#  define _hfree   hfree
-#endif
-
-voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
-    if (opaque) opaque = 0; /* to make compiler happy */
-    return _halloc((long)items, size);
-}
-
-void  zcfree (voidpf opaque, voidpf ptr)
-{
-    if (opaque) opaque = 0; /* to make compiler happy */
-    _hfree(ptr);
-}
-
-#endif /* M_I86 */
-
-#endif /* SYS16BIT */
-
-
-#ifndef MY_ZCALLOC /* Any system without a special alloc function */
-
-#ifndef STDC
-extern voidp  malloc OF((uInt size));
-extern voidp  calloc OF((uInt items, uInt size));
-extern void   free   OF((voidpf ptr));
-#endif
-
-voidpf zcalloc (opaque, items, size)
-    voidpf opaque;
-    unsigned items;
-    unsigned size;
-{
-    if (opaque) items += size - size; /* make compiler happy */
-    return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) :
-                              (voidpf)calloc(items, size);
-}
-
-void  zcfree (opaque, ptr)
-    voidpf opaque;
-    voidpf ptr;
-{
-    free(ptr);
-    if (opaque) return; /* make compiler happy */
-}
-
-#endif /* MY_ZCALLOC */
diff --git a/klibc/klibc/zlib/zutil.h b/klibc/klibc/zlib/zutil.h
deleted file mode 100644 (file)
index 1294528..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2003 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id: zutil.h,v 1.1 2005/02/27 23:15:39 hpa Exp $ */
-
-#ifndef ZUTIL_H
-#define ZUTIL_H
-
-#define ZLIB_INTERNAL
-#include "zlib.h"
-
-#ifdef STDC
-#  include <stddef.h>
-#  include <string.h>
-#  include <stdlib.h>
-#endif
-#ifdef NO_ERRNO_H
-    extern int errno;
-#else
-#   include <errno.h>
-#endif
-
-#ifndef local
-#  define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-typedef unsigned char  uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long  ulg;
-
-extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
-/* (size given to avoid silly warnings with Visual C++) */
-
-#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
-
-#define ERR_RETURN(strm,err) \
-  return (strm->msg = (char*)ERR_MSG(err), (err))
-/* To be used only when the state is known to be valid */
-
-        /* common constants */
-
-#ifndef DEF_WBITS
-#  define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-#  define DEF_MEM_LEVEL 8
-#else
-#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES    2
-/* The three kinds of block type */
-
-#define MIN_MATCH  3
-#define MAX_MATCH  258
-/* The minimum and maximum match lengths */
-
-#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-
-        /* target dependencies */
-
-#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
-#  define OS_CODE  0x00
-#  if defined(__TURBOC__) || defined(__BORLANDC__)
-#    if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
-       /* Allow compilation with ANSI keywords only enabled */
-       void _Cdecl farfree( void *block );
-       void *_Cdecl farmalloc( unsigned long nbytes );
-#    else
-#      include <alloc.h>
-#    endif
-#  else /* MSC or DJGPP */
-#    include <malloc.h>
-#  endif
-#endif
-
-#ifdef AMIGA
-#  define OS_CODE  0x01
-#endif
-
-#if defined(VAXC) || defined(VMS)
-#  define OS_CODE  0x02
-#  define F_OPEN(name, mode) \
-     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
-#endif
-
-#if defined(ATARI) || defined(atarist)
-#  define OS_CODE  0x05
-#endif
-
-#ifdef OS2
-#  define OS_CODE  0x06
-#endif
-
-#if defined(MACOS) || defined(TARGET_OS_MAC)
-#  define OS_CODE  0x07
-#  if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-#    include <unix.h> /* for fdopen */
-#  else
-#    ifndef fdopen
-#      define fdopen(fd,mode) NULL /* No fdopen() */
-#    endif
-#  endif
-#endif
-
-#ifdef TOPS20
-#  define OS_CODE  0x0a
-#endif
-
-#ifdef WIN32
-#  ifndef __CYGWIN__  /* Cygwin is Unix, not Win32 */
-#    define OS_CODE  0x0b
-#  endif
-#endif
-
-#ifdef __50SERIES /* Prime/PRIMOS */
-#  define OS_CODE  0x0f
-#endif
-
-#if defined(_BEOS_) || defined(RISCOS)
-#  define fdopen(fd,mode) NULL /* No fdopen() */
-#endif
-
-#if (defined(_MSC_VER) && (_MSC_VER > 600))
-#  if defined(_WIN32_WCE)
-#    define fdopen(fd,mode) NULL /* No fdopen() */
-#    ifndef _PTRDIFF_T_DEFINED
-       typedef int ptrdiff_t;
-#      define _PTRDIFF_T_DEFINED
-#    endif
-#  else
-#    define fdopen(fd,type)  _fdopen(fd,type)
-#  endif
-#endif
-
-        /* common defaults */
-
-#ifndef OS_CODE
-#  define OS_CODE  0x03  /* assume Unix */
-#endif
-
-#ifndef F_OPEN
-#  define F_OPEN(name, mode) fopen((name), (mode))
-#endif
-
-         /* functions */
-
-#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-#if defined(__CYGWIN__)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-#ifndef HAVE_VSNPRINTF
-#  ifdef MSDOS
-     /* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
-        but for now we just assume it doesn't. */
-#    define NO_vsnprintf
-#  endif
-#  ifdef __TURBOC__
-#    define NO_vsnprintf
-#  endif
-#  ifdef WIN32
-     /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
-#    if !defined(vsnprintf) && !defined(NO_vsnprintf)
-#      define vsnprintf _vsnprintf
-#    endif
-#  endif
-#  ifdef __SASC
-#    define NO_vsnprintf
-#  endif
-#endif
-
-#ifdef HAVE_STRERROR
-   extern char *strerror OF((int));
-#  define zstrerror(errnum) strerror(errnum)
-#else
-#  define zstrerror(errnum) ""
-#endif
-
-#if defined(pyr)
-#  define NO_MEMCPY
-#endif
-#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
- /* Use our own functions for small and medium model with MSC <= 5.0.
-  * You may have to use the same strategy for Borland C (untested).
-  * The __SC__ check is for Symantec.
-  */
-#  define NO_MEMCPY
-#endif
-#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-#  define HAVE_MEMCPY
-#endif
-#ifdef HAVE_MEMCPY
-#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
-#    define zmemcpy _fmemcpy
-#    define zmemcmp _fmemcmp
-#    define zmemzero(dest, len) _fmemset(dest, 0, len)
-#  else
-#    define zmemcpy memcpy
-#    define zmemcmp memcmp
-#    define zmemzero(dest, len) memset(dest, 0, len)
-#  endif
-#else
-   extern void zmemcpy  OF((Bytef* dest, const Bytef* source, uInt len));
-   extern int  zmemcmp  OF((const Bytef* s1, const Bytef* s2, uInt len));
-   extern void zmemzero OF((Bytef* dest, uInt len));
-#endif
-
-/* Diagnostic functions */
-#ifdef DEBUG
-#  include <stdio.h>
-   extern int z_verbose;
-   extern void z_error    OF((char *m));
-#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
-#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
-#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
-#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
-#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
-#else
-#  define Assert(cond,msg)
-#  define Trace(x)
-#  define Tracev(x)
-#  define Tracevv(x)
-#  define Tracec(c,x)
-#  define Tracecv(c,x)
-#endif
-
-
-voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
-void   zcfree  OF((voidpf opaque, voidpf ptr));
-
-#define ZALLOC(strm, items, size) \
-           (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
-#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
-
-#endif /* ZUTIL_H */
diff --git a/klibc/makeklcc.pl b/klibc/makeklcc.pl
deleted file mode 100755 (executable)
index 7404595..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/perl
-#
-# Combine klibc.config, klcc.in to produce a klcc script
-#
-# Usage: makeklcc klcc.in klibc.config perlpath
-#
-
-use File::Spec;
-
-($klccin, $klibcconf, $perlpath) = @ARGV;
-
-sub pathsearch($) {
-    my($file) = @_;
-    my(@path);
-    my($p,$pp);
-
-    if ( $file =~ /\// ) {
-       return File::Spec->rel2abs($file);
-    }
-    
-    foreach $p ( split(/\:/, $ENV{'PATH'}) ) {
-       $pp = File::Spec->rel2abs(File::Spec->catpath(undef, $p, $file));
-       return $pp if ( -x $pp );
-    }
-
-    return undef;
-}
-
-print "#!${perlpath}\n";
-
-open(KLIBCCONF, '<', $klibcconf) or die "$0: cannot open $klibcconf: $!\n";
-while ( defined($l = <KLIBCCONF>) ) {
-    chomp $l;
-    if ( $l =~ /^([^=]+)\=(.*)$/ ) {
-       $n = $1;  $s = $2;
-
-       if ( $n eq 'CC' || $n eq 'LD' || $n eq 'STRIP' ) {
-           $s1 = pathsearch($s);
-           die "$0: Cannot find $n: $s\n" unless ( defined($s1) );
-           $s = $s1;
-       }
-
-       print "\$$n = \"\Q$s\E\";\n";
-       print "\@$n = qw($s);\n";
-       print "\$conf{\'\L$n\E\'} = \\\$$n;\n";
-    }
-}
-close(KLIBCCONF);
-
-open(KLCCIN, '<', $klccin) or die "$0: cannot open $klccin: $!\n";
-while ( defined($l = <KLCCIN>) ) {
-    print $l;
-}
-close(KLCCIN);
-
diff --git a/klibc/version b/klibc/version
deleted file mode 100644 (file)
index 45a1b3f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-1.1.2
index daf0b7526940427879a49b9203007232594f9183..d1c28749fb7117b2aed55056d33c6bbf6d3789b6 100755 (executable)
@@ -12,9 +12,6 @@ EXTRAS="\
        extras/run_directory \
        extras/firmware"
 
        extras/run_directory \
        extras/firmware"
 
-[ -z "$KERNEL_DIR" ] && KERNEL_DIR=/lib/modules/`uname -r`/build
-echo KERNEL_DIR: "$KERNEL_DIR"
-
 # with debug
 make clean EXTRAS="$EXTRAS" >/dev/null
 make all -j4 $MAKEOPTS DEBUG=true EXTRAS="$EXTRAS" || exit
 # with debug
 make clean EXTRAS="$EXTRAS" >/dev/null
 make all -j4 $MAKEOPTS DEBUG=true EXTRAS="$EXTRAS" || exit
@@ -25,10 +22,14 @@ make clean EXTRAS="$EXTRAS" >/dev/null
 make all $MAKEOPTS USE_LOG=false EXTRAS="$EXTRAS" || exit
 echo -e "\n\n"
 
 make all $MAKEOPTS USE_LOG=false EXTRAS="$EXTRAS" || exit
 echo -e "\n\n"
 
-# klibc and debug
-make clean EXTRAS="$EXTRAS" >/dev/null
-make all -j4 $MAKEOPTS USE_KLIBC=true DEBUG=true EXTRAS="$EXTRAS" KERNEL_DIR="$KERNEL_DIR" || exit
-echo -e "\n\n"
+# klibc build
+[ -z "$KLCC" ] && KLCC=/usr/bin/klcc
+if [ -e "$KLCC" ]; then
+       echo KLCC: "$KLCC"
+       make clean EXTRAS="$EXTRAS" >/dev/null
+       make all -j4 $MAKEOPTS USE_KLIBC=true DEBUG=true EXTRAS="$EXTRAS" KLCC="$KLCC" || exit
+       echo -e "\n\n"
+fi
 
 # install in temporary dir and show it
 TEMPDIR="`pwd`/.tmp"
 
 # install in temporary dir and show it
 TEMPDIR="`pwd`/.tmp"