summaryrefslogtreecommitdiff
path: root/mit-pthreads/pthreads/fd_kern.c
diff options
context:
space:
mode:
authorunknown <bk@work.mysql.com>2000-07-31 21:29:14 +0200
committerunknown <bk@work.mysql.com>2000-07-31 21:29:14 +0200
commit84626f52fb1ca40ebe0175dfda8cc1a2931651c7 (patch)
treed253a359142dfc1ed247d5d4365d86972ea31109 /mit-pthreads/pthreads/fd_kern.c
parent3be46690f46f27f3e671de9a615d24d1554b9991 (diff)
downloadmariadb-git-84626f52fb1ca40ebe0175dfda8cc1a2931651c7.tar.gz
Import changeset
Docs/Flags/australia.eps: First import - 3.23.10 Docs/Flags/australia.gif: First import - 3.23.10 Docs/Flags/australia.txt: First import - 3.23.10 Docs/Flags/austria.eps: First import - 3.23.10 Docs/Flags/austria.gif: First import - 3.23.10 Docs/Flags/austria.txt: First import - 3.23.10 Docs/Flags/brazil.eps: First import - 3.23.10 Docs/Flags/brazil.gif: First import - 3.23.10 Docs/Flags/brazil.txt: First import - 3.23.10 Docs/Flags/bulgaria.eps: First import - 3.23.10 Docs/Flags/bulgaria.gif: First import - 3.23.10 Docs/Flags/bulgaria.txt: First import - 3.23.10 Docs/Flags/canada.eps: First import - 3.23.10 Docs/Flags/canada.gif: First import - 3.23.10 Docs/Flags/canada.txt: First import - 3.23.10 Docs/Flags/chile.eps: First import - 3.23.10 Docs/Flags/chile.gif: First import - 3.23.10 Docs/Flags/chile.txt: First import - 3.23.10 Docs/Flags/china.eps: First import - 3.23.10 Docs/Flags/china.gif: First import - 3.23.10 Docs/Flags/china.txt: First import - 3.23.10 Docs/Flags/croatia.eps: First import - 3.23.10 Docs/Flags/croatia.gif: First import - 3.23.10 Docs/Flags/croatia.txt: First import - 3.23.10 Docs/Flags/czech-republic.eps: First import - 3.23.10 Docs/Flags/czech-republic.gif: First import - 3.23.10 Docs/Flags/czech-republic.txt: First import - 3.23.10 Docs/Flags/denmark.eps: First import - 3.23.10 Docs/Flags/denmark.gif: First import - 3.23.10 Docs/Flags/denmark.txt: First import - 3.23.10 Docs/Flags/estonia.eps: First import - 3.23.10 Docs/Flags/estonia.gif: First import - 3.23.10 Docs/Flags/estonia.txt: First import - 3.23.10 Docs/Flags/finland.eps: First import - 3.23.10 Docs/Flags/finland.gif: First import - 3.23.10 Docs/Flags/finland.txt: First import - 3.23.10 Docs/Flags/france.eps: First import - 3.23.10 Docs/Flags/france.gif: First import - 3.23.10 Docs/Flags/france.txt: First import - 3.23.10 Docs/Flags/germany.eps: First import - 3.23.10 Docs/Flags/germany.gif: First import - 3.23.10 Docs/Flags/germany.txt: First import - 3.23.10 Docs/Flags/great-britain.eps: First import - 3.23.10 Docs/Flags/great-britain.gif: First import - 3.23.10 Docs/Flags/great-britain.txt: First import - 3.23.10 Docs/Flags/greece.eps: First import - 3.23.10 Docs/Flags/greece.gif: First import - 3.23.10 Docs/Flags/greece.txt: First import - 3.23.10 Docs/Flags/hungary.eps: First import - 3.23.10 Docs/Flags/hungary.gif: First import - 3.23.10 Docs/Flags/hungary.txt: First import - 3.23.10 Docs/Flags/iceland.eps: First import - 3.23.10 Docs/Flags/iceland.gif: First import - 3.23.10 Docs/Flags/iceland.txt: First import - 3.23.10 Docs/Flags/ireland.eps: First import - 3.23.10 Docs/Flags/ireland.gif: First import - 3.23.10 Docs/Flags/ireland.txt: First import - 3.23.10 Docs/Flags/island.eps: First import - 3.23.10 Docs/Flags/island.gif: First import - 3.23.10 Docs/Flags/island.txt: First import - 3.23.10 Docs/Flags/israel.eps: First import - 3.23.10 Docs/Flags/israel.gif: First import - 3.23.10 Docs/Flags/israel.txt: First import - 3.23.10 Docs/Flags/italy.eps: First import - 3.23.10 Docs/Flags/italy.gif: First import - 3.23.10 Docs/Flags/italy.txt: First import - 3.23.10 Docs/Flags/japan.eps: First import - 3.23.10 Docs/Flags/japan.gif: First import - 3.23.10 Docs/Flags/japan.txt: First import - 3.23.10 Docs/Flags/kroatia.eps: First import - 3.23.10 Docs/Flags/kroatia.gif: First import - 3.23.10 Docs/Flags/kroatia.txt: First import - 3.23.10 Docs/Flags/netherlands.eps: First import - 3.23.10 Docs/Flags/netherlands.gif: First import - 3.23.10 Docs/Flags/netherlands.txt: First import - 3.23.10 Docs/Flags/poland.eps: First import - 3.23.10 Docs/Flags/poland.gif: First import - 3.23.10 Docs/Flags/poland.txt: First import - 3.23.10 Docs/Flags/portugal.eps: First import - 3.23.10 Docs/Flags/portugal.gif: First import - 3.23.10 Docs/Flags/portugal.txt: First import - 3.23.10 Docs/Flags/romania.eps: First import - 3.23.10 Docs/Flags/romania.gif: First import - 3.23.10 Docs/Flags/romania.txt: First import - 3.23.10 Docs/Flags/russia.eps: First import - 3.23.10 Docs/Flags/russia.gif: First import - 3.23.10 Docs/Flags/russia.txt: First import - 3.23.10 Docs/Flags/singapore.eps: First import - 3.23.10 Docs/Flags/singapore.gif: First import - 3.23.10 Docs/Flags/singapore.txt: First import - 3.23.10 Docs/Flags/south-africa.eps: First import - 3.23.10 Docs/Flags/south-africa.gif: First import - 3.23.10 Docs/Flags/south-africa.txt: First import - 3.23.10 Docs/Flags/south-africa1.eps: First import - 3.23.10 Docs/Flags/south-africa1.gif: First import - 3.23.10 Docs/Flags/south-africa1.txt: First import - 3.23.10 Docs/Flags/south-korea.eps: First import - 3.23.10 Docs/Flags/south-korea.gif: First import - 3.23.10 Docs/Flags/south-korea.txt: First import - 3.23.10 Docs/Flags/spain.eps: First import - 3.23.10 Docs/Flags/spain.gif: First import - 3.23.10 Docs/Flags/spain.txt: First import - 3.23.10 Docs/Flags/sweden.eps: First import - 3.23.10 Docs/Flags/sweden.gif: First import - 3.23.10 Docs/Flags/sweden.txt: First import - 3.23.10 Docs/Flags/switzerland.eps: First import - 3.23.10 Docs/Flags/switzerland.gif: First import - 3.23.10 Docs/Flags/switzerland.txt: First import - 3.23.10 Docs/Flags/taiwan.eps: First import - 3.23.10 Docs/Flags/taiwan.gif: First import - 3.23.10 Docs/Flags/taiwan.txt: First import - 3.23.10 Docs/Flags/ukraine.eps: First import - 3.23.10 Docs/Flags/ukraine.gif: First import - 3.23.10 Docs/Flags/ukraine.txt: First import - 3.23.10 Docs/Flags/usa.eps: First import - 3.23.10 Docs/Flags/usa.gif: First import - 3.23.10 Docs/Flags/usa.txt: First import - 3.23.10 Docs/Images/mysql-logo.gif: First import - 3.23.10 Docs/To-be-included-in-the-manual/MySQL-for-dummies: First import - 3.23.10 README: First import - 3.23.10 config.guess: First import - 3.23.10 dbug/dbug_long.h: First import - 3.23.10 dbug/example1.c: First import - 3.23.10 dbug/example2.c: First import - 3.23.10 dbug/example3.c: First import - 3.23.10 dbug/factorial.c: First import - 3.23.10 dbug/main.c: First import - 3.23.10 dbug/monty.doc: First import - 3.23.10 dbug/readme.prof: First import - 3.23.10 dbug/sanity.c: First import - 3.23.10 dbug/user.r: First import - 3.23.10 heap/ChangeLog: First import - 3.23.10 install-sh: First import - 3.23.10 ltconfig: First import - 3.23.10 ltmain.sh: First import - 3.23.10 missing: First import - 3.23.10 mit-pthreads/COPYRIGHT: First import - 3.23.10 mit-pthreads/FAQ: First import - 3.23.10 mit-pthreads/NOTES_OSR5_BUILD_SKUNKWARE97: First import - 3.23.10 mit-pthreads/NOTES: First import - 3.23.10 mit-pthreads/README: First import - 3.23.10 mit-pthreads/TODO-mysql: First import - 3.23.10 mit-pthreads/Whats_New: First import - 3.23.10 mit-pthreads/bin/Makefile.in: First import - 3.23.10 mit-pthreads/bin/finger/Makefile.in: First import - 3.23.10 mit-pthreads/bin/finger/finger.c: First import - 3.23.10 mit-pthreads/bin/finger/net.c: First import - 3.23.10 mit-pthreads/config/COPYING.GNU: First import - 3.23.10 mit-pthreads/config/COPYRIGHT: First import - 3.23.10 mit-pthreads/config/GNUmakefile.in: First import - 3.23.10 mit-pthreads/config/Makefile.in: First import - 3.23.10 mit-pthreads/config/acconfig.h: First import - 3.23.10 mit-pthreads/config/aclocal.m4: First import - 3.23.10 mit-pthreads/config/config.flags.in: First import - 3.23.10 mit-pthreads/config/config.guess: First import - 3.23.10 mit-pthreads/config/config.sub: First import - 3.23.10 mit-pthreads/config/configure.org: First import - 3.23.10 mit-pthreads/config/install-sh: First import - 3.23.10 mit-pthreads/configure: First import - 3.23.10 mit-pthreads/gen/GNUmakefile.inc: First import - 3.23.10 mit-pthreads/gen/Makefile.inc: First import - 3.23.10 mit-pthreads/gen/ctime.c: First import - 3.23.10 mit-pthreads/gen/difftime.c: First import - 3.23.10 mit-pthreads/gen/directory.c: First import - 3.23.10 mit-pthreads/gen/eprintf.c: First import - 3.23.10 mit-pthreads/gen/getcwd.c: First import - 3.23.10 mit-pthreads/gen/getpwent.c: First import - 3.23.10 mit-pthreads/gen/getpwnamuid.c: First import - 3.23.10 mit-pthreads/gen/getwd.c: First import - 3.23.10 mit-pthreads/gen/isatty.c: First import - 3.23.10 mit-pthreads/gen/popen.c: First import - 3.23.10 mit-pthreads/gen/pwd_internal.c: First import - 3.23.10 mit-pthreads/gen/pwd_internal.h: First import - 3.23.10 mit-pthreads/gen/syslog.c: First import - 3.23.10 mit-pthreads/gen/time.c: First import - 3.23.10 mit-pthreads/include/Makefile.inc: First import - 3.23.10 mit-pthreads/include/arpa/inet.h: First import - 3.23.10 mit-pthreads/include/arpa/nameser.h: First import - 3.23.10 mit-pthreads/include/dirent.h: First import - 3.23.10 mit-pthreads/include/endian.h: First import - 3.23.10 mit-pthreads/include/errno.h: First import - 3.23.10 mit-pthreads/include/math.h: First import - 3.23.10 mit-pthreads/include/netdb.h: First import - 3.23.10 mit-pthreads/include/pthread.h: First import - 3.23.10 mit-pthreads/include/pthread/cleanup.h: First import - 3.23.10 mit-pthreads/include/pthread/debug_out.h: First import - 3.23.10 mit-pthreads/include/pthread/fd.h: First import - 3.23.10 mit-pthreads/include/pthread/fd_pipe.h: First import - 3.23.10 mit-pthreads/include/pthread/kernel.h: First import - 3.23.10 mit-pthreads/include/pthread/kthread.h: First import - 3.23.10 mit-pthreads/include/pthread/mutex.h: First import - 3.23.10 mit-pthreads/include/pthread/prio_queue.h: First import - 3.23.10 mit-pthreads/include/pthread/pthread_attr.h: First import - 3.23.10 mit-pthreads/include/pthread/pthread_once.h: First import - 3.23.10 mit-pthreads/include/pthread/queue.h: First import - 3.23.10 mit-pthreads/include/pthread/sleep.h: First import - 3.23.10 mit-pthreads/include/pthread/specific.h: First import - 3.23.10 mit-pthreads/include/pthread/state.def: First import - 3.23.10 mit-pthreads/include/pthread/types.h: First import - 3.23.10 mit-pthreads/include/pthread/unistd.h: First import - 3.23.10 mit-pthreads/include/pthread/util.h: First import - 3.23.10 mit-pthreads/include/pthread/version.h: First import - 3.23.10 mit-pthreads/include/pthread/xtypes.h: First import - 3.23.10 mit-pthreads/include/pwd.h: First import - 3.23.10 mit-pthreads/include/resolv.h: First import - 3.23.10 mit-pthreads/include/sched.h: First import - 3.23.10 mit-pthreads/include/signal.h: First import - 3.23.10 mit-pthreads/include/stdio.h: First import - 3.23.10 mit-pthreads/include/stdlib.h: First import - 3.23.10 mit-pthreads/include/string.h: First import - 3.23.10 mit-pthreads/include/syslog.h: First import - 3.23.10 mit-pthreads/include/time.h: First import - 3.23.10 mit-pthreads/include/timers.h: First import - 3.23.10 mit-pthreads/include/tzfile.h: First import - 3.23.10 mit-pthreads/include/unistd.h: First import - 3.23.10 mit-pthreads/lib/Makefile.in: First import - 3.23.10 mit-pthreads/lib/libpthreadutil/Makefile.in: First import - 3.23.10 mit-pthreads/lib/libpthreadutil/pthread_atexit.c: First import - 3.23.10 mit-pthreads/lib/libpthreadutil/pthread_tad.c: First import - 3.23.10 mit-pthreads/lib/libpthreadutil/pthreadutil.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/__math.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/__signal.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/__string.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/__time.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/cdefs.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/compat.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/dirent.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/signal.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/socket.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/timers.h: First import - 3.23.10 mit-pthreads/machdep/alpha-osf1/uio.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-1.1/compat.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-1.1/dirent.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-1.1/errno.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-1.1/socket.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-1.1/timers.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/__math.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/__path.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/__signal.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/__string.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/__time.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/compat.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/dirent.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/errno.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/time.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/timers.h: First import - 3.23.10 mit-pthreads/machdep/bsdi-2.0/wait.h: First import - 3.23.10 mit-pthreads/machdep/engine-alpha-netbsd-1.1.c: First import - 3.23.10 mit-pthreads/machdep/engine-alpha-netbsd-1.1.h: First import - 3.23.10 mit-pthreads/machdep/engine-alpha-netbsd-1.3.c: First import - 3.23.10 mit-pthreads/machdep/engine-alpha-netbsd-1.3.h: First import - 3.23.10 mit-pthreads/machdep/engine-alpha-osf1.c: First import - 3.23.10 mit-pthreads/machdep/engine-alpha-osf1.h: First import - 3.23.10 mit-pthreads/machdep/engine-arm32-netbsd-1.3.c: First import - 3.23.10 mit-pthreads/machdep/engine-arm32-netbsd-1.3.h: First import - 3.23.10 mit-pthreads/machdep/engine-hppa-hpux-10.20.c: First import - 3.23.10 mit-pthreads/machdep/engine-hppa-hpux-10.20.h: First import - 3.23.10 mit-pthreads/machdep/engine-hppa-hpux-9.03.c: First import - 3.23.10 mit-pthreads/machdep/engine-hppa-hpux-9.03.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-bsdi-1.1.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-bsdi-1.1.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-bsdi-2.0.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-bsdi-2.0.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-freebsd-1.1.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-freebsd-1.1.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-freebsd-2.0.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-freebsd-2.0.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-linux-1.0.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-linux-1.0.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-netbsd-0.9.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-netbsd-0.9.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-netbsd-1.0.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-netbsd-1.0.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-netbsd-1.3.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-netbsd-1.3.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-openbsd-2.0.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-openbsd-2.0.h: First import - 3.23.10 mit-pthreads/machdep/engine-i386-sco-3.2v5.c: First import - 3.23.10 mit-pthreads/machdep/engine-i386-sco-3.2v5.h: First import - 3.23.10 mit-pthreads/machdep/engine-ip22-irix-5.2.c: First import - 3.23.10 mit-pthreads/machdep/engine-ip22-irix-5.2.h: First import - 3.23.10 mit-pthreads/machdep/engine-m68000-netbsd.c: First import - 3.23.10 mit-pthreads/machdep/engine-m68000-netbsd.h: First import - 3.23.10 mit-pthreads/machdep/engine-r2000-ultrix-4.2.c: First import - 3.23.10 mit-pthreads/machdep/engine-r2000-ultrix-4.2.h: First import - 3.23.10 mit-pthreads/machdep/engine-romp-bsd.c: First import - 3.23.10 mit-pthreads/machdep/engine-romp-bsd.h: First import - 3.23.10 mit-pthreads/machdep/engine-sparc-netbsd-1.3.c: First import - 3.23.10 mit-pthreads/machdep/engine-sparc-netbsd-1.3.h: First import - 3.23.10 mit-pthreads/machdep/engine-sparc-sunos-4.1.3.c: First import - 3.23.10 mit-pthreads/machdep/engine-sparc-sunos-4.1.3.h: First import - 3.23.10 mit-pthreads/machdep/engine-sparc-sunos-5.3.c: First import - 3.23.10 mit-pthreads/machdep/engine-sparc-sunos-5.3.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-1.1/compat.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-1.1/dirent.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-1.1/socket.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-1.1/timers.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/__math.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/__path.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/__signal.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/__string.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/__time.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/compat.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/dirent.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/errno.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/timers.h: First import - 3.23.10 mit-pthreads/machdep/freebsd-2.0/wait.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/__math.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/__signal.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/__string.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/__time.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/cdefs.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/compat.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/dirent.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/socket.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/stdtypes.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/time.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/timers.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/uio.h: First import - 3.23.10 mit-pthreads/machdep/hpux-10.20/wait.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/__math.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/__signal.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/__string.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/__time.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/cdefs.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/compat.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/dirent.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/socket.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/stdtypes.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/time.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/timers.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/uio.h: First import - 3.23.10 mit-pthreads/machdep/hpux-9.03/wait.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/__math.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/__signal.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/__string.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/__time.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/compat.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/dirent.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/posix/__signal.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/socket.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/syscall.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/timers.h: First import - 3.23.10 mit-pthreads/machdep/i386-sco-3.2v5/trash.can: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/__math.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/__signal.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/__string.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/__time.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/compat.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/dirent.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/socket.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/timers.h: First import - 3.23.10 mit-pthreads/machdep/irix-5.2/wait.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/__math.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/__path.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/__signal.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/__string.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/__time.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/cdefs.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/compat.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/dirent.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/errno.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/socket.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/timers.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/uio.h: First import - 3.23.10 mit-pthreads/machdep/linux-1.0/wait.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-0.9/dirent.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/__math.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/__path.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/__signal.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/__string.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/__time.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/compat.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/dirent.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/errno.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/time.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/timers.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.0/wait.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/__math.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/__path.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/__signal.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/__string.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/__time.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/compat.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/dirent.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/errno.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/time.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/timers.h: First import - 3.23.10 mit-pthreads/machdep/netbsd-1.1/wait.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/__math.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/__path.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/__signal.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/__string.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/__time.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/compat.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/dirent.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/errno.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/timers.h: First import - 3.23.10 mit-pthreads/machdep/openbsd-2.0/wait.h: First import - 3.23.10 mit-pthreads/machdep/posix-alpha-osf1.h: First import - 3.23.10 mit-pthreads/machdep/posix-bsdi-1.1.h: First import - 3.23.10 mit-pthreads/machdep/posix-bsdi-2.0.h: First import - 3.23.10 mit-pthreads/machdep/posix-freebsd-1.1.h: First import - 3.23.10 mit-pthreads/machdep/posix-freebsd-2.0.h: First import - 3.23.10 mit-pthreads/machdep/posix-hpux-10.20.h: First import - 3.23.10 mit-pthreads/machdep/posix-hpux-9.03.h: First import - 3.23.10 mit-pthreads/machdep/posix-i386-sco-3.2v5.h: First import - 3.23.10 mit-pthreads/machdep/posix-irix-5.2.h: First import - 3.23.10 mit-pthreads/machdep/posix-linux-1.0.h: First import - 3.23.10 mit-pthreads/machdep/posix-netbsd-0.9.h: First import - 3.23.10 mit-pthreads/machdep/posix-netbsd-1.0.h: First import - 3.23.10 mit-pthreads/machdep/posix-netbsd-1.1.h: First import - 3.23.10 mit-pthreads/machdep/posix-openbsd-2.0.h: First import - 3.23.10 mit-pthreads/machdep/posix-romp-bsd.h: First import - 3.23.10 mit-pthreads/machdep/posix-sco-3.2v5.h: First import - 3.23.10 mit-pthreads/machdep/posix-sunos-4.1.3.h: First import - 3.23.10 mit-pthreads/machdep/posix-sunos-5.3.h: First import - 3.23.10 mit-pthreads/machdep/posix-sunos-5.5.h: First import - 3.23.10 mit-pthreads/machdep/posix-ultrix-4.2.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/__math.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/__signal.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/__string.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/__time.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/compat.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/dirent.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/posix/__signal.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/socket.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/syscall.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/timers.h: First import - 3.23.10 mit-pthreads/machdep/sco-3.2v5/trash.can: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/__math.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/__path.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/__signal.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/__string.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/__time.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/cdefs.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/compat.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/dirent.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/fcntlcom.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/signal.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/stat.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/time.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/timers.h: First import - 3.23.10 mit-pthreads/machdep/sunos-4.1.3/wait.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/__math.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/__signal.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/__string.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/__time.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/cdefs.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/compat.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/dirent.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/socket.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/timers.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.3/uio.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/__math.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/__signal.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/__string.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/__time.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/cdefs.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/compat.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/dirent.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/socket.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/timers.h: First import - 3.23.10 mit-pthreads/machdep/sunos-5.5/uio.h: First import - 3.23.10 mit-pthreads/machdep/syscall-alpha-netbsd-1.1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-alpha-netbsd-1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-alpha-osf1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-arm32-netbsd-1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-hppa-hpux-10.20.S: First import - 3.23.10 mit-pthreads/machdep/syscall-hppa-hpux-9.03.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-bsdi-1.1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-bsdi-2.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-freebsd-1.1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-freebsd-2.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-linux-1.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-netbsd-0.9.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-netbsd-1.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-netbsd-1.1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-netbsd-1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-openbsd-2.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-i386-sco-3.2v5.S: First import - 3.23.10 mit-pthreads/machdep/syscall-ip22-irix-5.2.S: First import - 3.23.10 mit-pthreads/machdep/syscall-m68000-netbsd.S: First import - 3.23.10 mit-pthreads/machdep/syscall-r2000-ultrix-4.2.S: First import - 3.23.10 mit-pthreads/machdep/syscall-romp-bsd.S: First import - 3.23.10 mit-pthreads/machdep/syscall-sparc-netbsd-1.1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-sparc-netbsd-1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-sparc-sunos-4.1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-sparc-sunos-5.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-sparc-sunos4.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-alpha-netbsd-1.1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-alpha-netbsd-1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-alpha-osf1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-arm32-netbsd-1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-hppa-hpux-10.20.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-hppa-hpux-9.03.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-i386-bsdi-2.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-i386-freebsd-2.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-i386-netbsd-1.1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-i386-netbsd-1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-i386-netbsd1.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-i386-openbsd-2.0.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-i386-sco-3.2v5.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-ip22-irix-5.2.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-m68000-netbsd.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-r2000-ultrix-4.2.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-sparc-netbsd-1.1.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-sparc-netbsd-1.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-sparc-sunos-5.3.S: First import - 3.23.10 mit-pthreads/machdep/syscall-template-sparc-sunos4.S: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/__math.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/__signal.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/__stdio.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/__stdlib.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/__string.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/__time.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/__unistd.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/cdefs.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/compat.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/dirent.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/errno.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/time.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/timers.h: First import - 3.23.10 mit-pthreads/machdep/ultrix-4.2/wait.h: First import - 3.23.10 mit-pthreads/machdep/unistd-i386-freebsd-1.1.h: First import - 3.23.10 mit-pthreads/machdep/unistd-i386-linux-1.0.h: First import - 3.23.10 mit-pthreads/machdep/unistd-sparc-sunos-4.1.3.h: First import - 3.23.10 mit-pthreads/net/GNUmakefile.inc: First import - 3.23.10 mit-pthreads/net/gethostbyaddr.c: First import - 3.23.10 mit-pthreads/net/gethostbyname.c: First import - 3.23.10 mit-pthreads/net/gethostent.c: First import - 3.23.10 mit-pthreads/net/getnetbyaddr.c: First import - 3.23.10 mit-pthreads/net/getnetbyname.c: First import - 3.23.10 mit-pthreads/net/getnetent.c: First import - 3.23.10 mit-pthreads/net/getproto.c: First import - 3.23.10 mit-pthreads/net/getprotoent.c: First import - 3.23.10 mit-pthreads/net/getprotoname.c: First import - 3.23.10 mit-pthreads/net/getservbyname.c: First import - 3.23.10 mit-pthreads/net/getservbyport.c: First import - 3.23.10 mit-pthreads/net/getservent.c: First import - 3.23.10 mit-pthreads/net/herror.c: First import - 3.23.10 mit-pthreads/net/inet_addr.c: First import - 3.23.10 mit-pthreads/net/inet_lnaof.c: First import - 3.23.10 mit-pthreads/net/inet_makeaddr.c: First import - 3.23.10 mit-pthreads/net/inet_netof.c: First import - 3.23.10 mit-pthreads/net/inet_network.c: First import - 3.23.10 mit-pthreads/net/inet_ntoa.c: First import - 3.23.10 mit-pthreads/net/net_internal.c: First import - 3.23.10 mit-pthreads/net/net_internal.h: First import - 3.23.10 mit-pthreads/net/proto_internal.c: First import - 3.23.10 mit-pthreads/net/proto_internal.h: First import - 3.23.10 mit-pthreads/net/res_comp.c: First import - 3.23.10 mit-pthreads/net/res_debug.c: First import - 3.23.10 mit-pthreads/net/res_init.c: First import - 3.23.10 mit-pthreads/net/res_internal.c: First import - 3.23.10 mit-pthreads/net/res_internal.h: First import - 3.23.10 mit-pthreads/net/res_mkquery.c: First import - 3.23.10 mit-pthreads/net/res_query.c: First import - 3.23.10 mit-pthreads/net/res_querydomain.c: First import - 3.23.10 mit-pthreads/net/res_search.c: First import - 3.23.10 mit-pthreads/net/res_send.c: First import - 3.23.10 mit-pthreads/net/serv_internal.c: First import - 3.23.10 mit-pthreads/net/serv_internal.h: First import - 3.23.10 mit-pthreads/patches/Streepy.html: First import - 3.23.10 mit-pthreads/patches/Streepy2.html: First import - 3.23.10 mit-pthreads/patches/bill_lear: First import - 3.23.10 mit-pthreads/patches/chris_demetriou: First import - 3.23.10 mit-pthreads/patches/mevans: First import - 3.23.10 mit-pthreads/patches/p153: First import - 3.23.10 mit-pthreads/patches/p155: First import - 3.23.10 mit-pthreads/pg++: First import - 3.23.10 mit-pthreads/pgcc: First import - 3.23.10 mit-pthreads/pthreads/GNUmakefile.inc: First import - 3.23.10 mit-pthreads/pthreads/Makefile.inc: First import - 3.23.10 mit-pthreads/pthreads/_exit.c: First import - 3.23.10 mit-pthreads/pthreads/cleanup.c: First import - 3.23.10 mit-pthreads/pthreads/cond.c: First import - 3.23.10 mit-pthreads/pthreads/condattr.c: First import - 3.23.10 mit-pthreads/pthreads/dump_state.c: First import - 3.23.10 mit-pthreads/pthreads/errno.c: First import - 3.23.10 mit-pthreads/pthreads/fd_pipe.c: First import - 3.23.10 mit-pthreads/pthreads/file.c: First import - 3.23.10 mit-pthreads/pthreads/globals.c: First import - 3.23.10 mit-pthreads/pthreads/info.c: First import - 3.23.10 mit-pthreads/pthreads/init.cc: First import - 3.23.10 mit-pthreads/pthreads/malloc.c: First import - 3.23.10 mit-pthreads/pthreads/mutex.c: First import - 3.23.10 mit-pthreads/pthreads/mutexattr.c: First import - 3.23.10 mit-pthreads/pthreads/panic.c: First import - 3.23.10 mit-pthreads/pthreads/prio_queue.c: First import - 3.23.10 mit-pthreads/pthreads/process.c: First import - 3.23.10 mit-pthreads/pthreads/pthread.c: First import - 3.23.10 mit-pthreads/pthreads/pthread_attr.c: First import - 3.23.10 mit-pthreads/pthreads/pthread_cancel.c: First import - 3.23.10 mit-pthreads/pthreads/pthread_detach.c: First import - 3.23.10 mit-pthreads/pthreads/pthread_init.c: First import - 3.23.10 mit-pthreads/pthreads/pthread_join.c: First import - 3.23.10 mit-pthreads/pthreads/pthread_kill.c: First import - 3.23.10 mit-pthreads/pthreads/pthread_once.c: First import - 3.23.10 mit-pthreads/pthreads/queue.c: First import - 3.23.10 mit-pthreads/pthreads/readv.c: First import - 3.23.10 mit-pthreads/pthreads/schedparam.c: First import - 3.23.10 mit-pthreads/pthreads/select.c: First import - 3.23.10 mit-pthreads/pthreads/sig.c: First import - 3.23.10 mit-pthreads/pthreads/sleep.c: First import - 3.23.10 mit-pthreads/pthreads/specific.c: First import - 3.23.10 mit-pthreads/pthreads/stat.c: First import - 3.23.10 mit-pthreads/pthreads/wait.c: First import - 3.23.10 mit-pthreads/pthreads/writev.c: First import - 3.23.10 mit-pthreads/scripts/GNUmakefile.inc: First import - 3.23.10 mit-pthreads/scripts/Makefile.inc: First import - 3.23.10 mit-pthreads/scripts/pgcc.sh: First import - 3.23.10 mit-pthreads/stdio/GNUmakefile.inc: First import - 3.23.10 mit-pthreads/stdio/Makefile.inc: First import - 3.23.10 mit-pthreads/stdio/README: First import - 3.23.10 mit-pthreads/stdio/clrerr.c: First import - 3.23.10 mit-pthreads/stdio/fclose.c: First import - 3.23.10 mit-pthreads/stdio/fdopen.c: First import - 3.23.10 mit-pthreads/stdio/feof.c: First import - 3.23.10 mit-pthreads/stdio/ferror.c: First import - 3.23.10 mit-pthreads/stdio/fflush.c: First import - 3.23.10 mit-pthreads/stdio/fgetc.c: First import - 3.23.10 mit-pthreads/stdio/fgetline.c: First import - 3.23.10 mit-pthreads/stdio/fgetpos.c: First import - 3.23.10 mit-pthreads/stdio/fgets.c: First import - 3.23.10 mit-pthreads/stdio/fileno.c: First import - 3.23.10 mit-pthreads/stdio/findfp.c: First import - 3.23.10 mit-pthreads/stdio/flags.c: First import - 3.23.10 mit-pthreads/stdio/floatio.h: First import - 3.23.10 mit-pthreads/stdio/fopen.c: First import - 3.23.10 mit-pthreads/stdio/fprintf.c: First import - 3.23.10 mit-pthreads/stdio/fpurge.c: First import - 3.23.10 mit-pthreads/stdio/fputc.c: First import - 3.23.10 mit-pthreads/stdio/fputs.c: First import - 3.23.10 mit-pthreads/stdio/fread.c: First import - 3.23.10 mit-pthreads/stdio/freopen.c: First import - 3.23.10 mit-pthreads/stdio/fscanf.c: First import - 3.23.10 mit-pthreads/stdio/fseek.c: First import - 3.23.10 mit-pthreads/stdio/fsetpos.c: First import - 3.23.10 mit-pthreads/stdio/ftell.c: First import - 3.23.10 mit-pthreads/stdio/funopen.c: First import - 3.23.10 mit-pthreads/stdio/fvwrite.c: First import - 3.23.10 mit-pthreads/stdio/fvwrite.h: First import - 3.23.10 mit-pthreads/stdio/fwalk.c: First import - 3.23.10 mit-pthreads/stdio/fwrite.c: First import - 3.23.10 mit-pthreads/stdio/getc.c: First import - 3.23.10 mit-pthreads/stdio/getc_unlocked.c: First import - 3.23.10 mit-pthreads/stdio/getchar.c: First import - 3.23.10 mit-pthreads/stdio/getchar_unlocked.c: First import - 3.23.10 mit-pthreads/stdio/gets.c: First import - 3.23.10 mit-pthreads/stdio/getw.c: First import - 3.23.10 mit-pthreads/stdio/glue.h: First import - 3.23.10 mit-pthreads/stdio/local.h: First import - 3.23.10 mit-pthreads/stdio/makebuf.c: First import - 3.23.10 mit-pthreads/stdio/mktemp.c: First import - 3.23.10 mit-pthreads/stdio/perror.c: First import - 3.23.10 mit-pthreads/stdio/printf.c: First import - 3.23.10 mit-pthreads/stdio/putc.c: First import - 3.23.10 mit-pthreads/stdio/putc_unlocked.c: First import - 3.23.10 mit-pthreads/stdio/putchar.c: First import - 3.23.10 mit-pthreads/stdio/putchar_unlocked.c: First import - 3.23.10 mit-pthreads/stdio/puts.c: First import - 3.23.10 mit-pthreads/stdio/putw.c: First import - 3.23.10 mit-pthreads/stdio/refill.c: First import - 3.23.10 mit-pthreads/stdio/remove.c: First import - 3.23.10 mit-pthreads/stdio/rewind.c: First import - 3.23.10 mit-pthreads/stdio/rget.c: First import - 3.23.10 mit-pthreads/stdio/scanf.c: First import - 3.23.10 mit-pthreads/stdio/setbuf.c: First import - 3.23.10 mit-pthreads/stdio/setbuffer.c: First import - 3.23.10 mit-pthreads/stdio/setvbuf.c: First import - 3.23.10 mit-pthreads/stdio/snprintf.c: First import - 3.23.10 mit-pthreads/stdio/sprintf.c: First import - 3.23.10 mit-pthreads/stdio/sscanf.c: First import - 3.23.10 mit-pthreads/stdio/stdio.c: First import - 3.23.10 mit-pthreads/stdio/strerror.c: First import - 3.23.10 mit-pthreads/stdio/tempnam.c: First import - 3.23.10 mit-pthreads/stdio/tmpfile.c: First import - 3.23.10 mit-pthreads/stdio/tmpnam.c: First import - 3.23.10 mit-pthreads/stdio/ungetc.c: First import - 3.23.10 mit-pthreads/stdio/vfprintf.c: First import - 3.23.10 mit-pthreads/stdio/vfscanf.c: First import - 3.23.10 mit-pthreads/stdio/vprintf.c: First import - 3.23.10 mit-pthreads/stdio/vscanf.c: First import - 3.23.10 mit-pthreads/stdio/vsnprintf.c: First import - 3.23.10 mit-pthreads/stdio/vsprintf.c: First import - 3.23.10 mit-pthreads/stdio/vsscanf.c: First import - 3.23.10 mit-pthreads/stdio/wbuf.c: First import - 3.23.10 mit-pthreads/stdio/wsetup.c: First import - 3.23.10 mit-pthreads/stdio/xprintf.c: First import - 3.23.10 mit-pthreads/stdlib/GNUmakefile.inc: First import - 3.23.10 mit-pthreads/stdlib/Makefile.inc: First import - 3.23.10 mit-pthreads/stdlib/abort.c: First import - 3.23.10 mit-pthreads/stdlib/atexit.h: First import - 3.23.10 mit-pthreads/stdlib/exit.c: First import - 3.23.10 mit-pthreads/stdlib/rand.c: First import - 3.23.10 mit-pthreads/stdlib/random.c: First import - 3.23.10 mit-pthreads/stdlib/strtod.c: First import - 3.23.10 mit-pthreads/stdlib/strtol.c: First import - 3.23.10 mit-pthreads/stdlib/strtoul.c: First import - 3.23.10 mit-pthreads/stdlib/system.c: First import - 3.23.10 mit-pthreads/string/GNUmakefile.inc: First import - 3.23.10 mit-pthreads/string/Makefile.inc: First import - 3.23.10 mit-pthreads/string/strtok.c: First import - 3.23.10 mit-pthreads/tests/Makefile.in: First import - 3.23.10 mit-pthreads/tests/README: First import - 3.23.10 mit-pthreads/tests/bench_fcntl.c: First import - 3.23.10 mit-pthreads/tests/bench_pipe.c: First import - 3.23.10 mit-pthreads/tests/bench_read.c: First import - 3.23.10 mit-pthreads/tests/p_bench_getpid.c: First import - 3.23.10 mit-pthreads/tests/p_bench_mutex.c: First import - 3.23.10 mit-pthreads/tests/p_bench_pthread_create.c: First import - 3.23.10 mit-pthreads/tests/p_bench_read.c: First import - 3.23.10 mit-pthreads/tests/p_bench_semaphore.c: First import - 3.23.10 mit-pthreads/tests/p_bench_yield.c: First import - 3.23.10 mit-pthreads/tests/test_create.c: First import - 3.23.10 mit-pthreads/tests/test_cwd.c: First import - 3.23.10 mit-pthreads/tests/test_execve.c: First import - 3.23.10 mit-pthreads/tests/test_fcntl.c: First import - 3.23.10 mit-pthreads/tests/test_fork.c: First import - 3.23.10 mit-pthreads/tests/test_netdb.c: First import - 3.23.10 mit-pthreads/tests/test_pause.c: First import - 3.23.10 mit-pthreads/tests/test_preemption.c: First import - 3.23.10 mit-pthreads/tests/test_preemption_float.c: First import - 3.23.10 mit-pthreads/tests/test_pthread_cond_timedwait.c: First import - 3.23.10 mit-pthreads/tests/test_pthread_join.c: First import - 3.23.10 mit-pthreads/tests/test_pthread_mutex.c: First import - 3.23.10 mit-pthreads/tests/test_pw.c: First import - 3.23.10 mit-pthreads/tests/test_readdir.c: First import - 3.23.10 mit-pthreads/tests/test_select.c: First import - 3.23.10 mit-pthreads/tests/test_setjmp.c: First import - 3.23.10 mit-pthreads/tests/test_sleep.c: First import - 3.23.10 mit-pthreads/tests/test_sock_1.c: First import - 3.23.10 mit-pthreads/tests/test_sock_2.c: First import - 3.23.10 mit-pthreads/tests/test_sock_2a.c: First import - 3.23.10 mit-pthreads/tests/test_stdio_1.c: First import - 3.23.10 mit-pthreads/tests/test_switch.c: First import - 3.23.10 mysys/COPYING.LIB: First import - 3.23.10 mysys/getopt.c: First import - 3.23.10 readline/COPYING: First import - 3.23.10 readline/INSTALL: First import - 3.23.10 readline/Makefile.am: First import - 3.23.10 readline/README: First import - 3.23.10 readline/ansi_stdlib.h: First import - 3.23.10 readline/bind.c: First import - 3.23.10 readline/callback.c: First import - 3.23.10 readline/chardefs.h: First import - 3.23.10 readline/configure.in: First import - 3.23.10 readline/configure: First import - 3.23.10 readline/display.c: First import - 3.23.10 readline/emacs_keymap.c: First import - 3.23.10 readline/funmap.c: First import - 3.23.10 readline/histexpand.c: First import - 3.23.10 readline/histfile.c: First import - 3.23.10 readline/histlib.h: First import - 3.23.10 readline/history.c: First import - 3.23.10 readline/history.h: First import - 3.23.10 readline/histsearch.c: First import - 3.23.10 readline/input.c: First import - 3.23.10 readline/isearch.c: First import - 3.23.10 readline/keymaps.c: First import - 3.23.10 readline/keymaps.h: First import - 3.23.10 readline/kill.c: First import - 3.23.10 readline/macro.c: First import - 3.23.10 readline/nls.c: First import - 3.23.10 readline/parens.c: First import - 3.23.10 readline/posixdir.h: First import - 3.23.10 readline/posixjmp.h: First import - 3.23.10 readline/posixstat.h: First import - 3.23.10 readline/readline.c: First import - 3.23.10 readline/readline.h: First import - 3.23.10 readline/rlconf.h: First import - 3.23.10 readline/rldefs.h: First import - 3.23.10 readline/rltty.c: First import - 3.23.10 readline/rltty.h: First import - 3.23.10 readline/rlwinsize.h: First import - 3.23.10 readline/search.c: First import - 3.23.10 readline/shell.c: First import - 3.23.10 readline/signals.c: First import - 3.23.10 readline/tcap.h: First import - 3.23.10 readline/terminal.c: First import - 3.23.10 readline/tilde.c: First import - 3.23.10 readline/tilde.h: First import - 3.23.10 readline/undo.c: First import - 3.23.10 readline/util.c: First import - 3.23.10 readline/vi_keymap.c: First import - 3.23.10 readline/vi_mode.c: First import - 3.23.10 readline/xmalloc.c: First import - 3.23.10 regex/CHANGES: First import - 3.23.10 regex/COPYRIGHT: First import - 3.23.10 regex/README: First import - 3.23.10 regex/WHATSNEW: First import - 3.23.10 regex/cclass.h: First import - 3.23.10 regex/cname.h: First import - 3.23.10 regex/debug.c: First import - 3.23.10 regex/debug.ih: First import - 3.23.10 regex/engine.c: First import - 3.23.10 regex/engine.ih: First import - 3.23.10 regex/main.ih: First import - 3.23.10 regex/regcomp.ih: First import - 3.23.10 regex/regerror.c: First import - 3.23.10 regex/regerror.ih: First import - 3.23.10 regex/regex.3: First import - 3.23.10 regex/regex.7: First import - 3.23.10 regex/regex.h: First import - 3.23.10 regex/regfree.c: First import - 3.23.10 regex/reginit.c: First import - 3.23.10 regex/split.c: First import - 3.23.10 regex/tests: First import - 3.23.10 scripts/msql2mysql.sh: First import - 3.23.10 scripts/mysql_fix_privilege_tables.sh: First import - 3.23.10 scripts/mysql_setpermission.sh: First import - 3.23.10 scripts/mysqlaccess.conf: First import - 3.23.10 scripts/mysqlbug.sh: First import - 3.23.10 sql-bench/Data/ATIS/aircraft.txt: First import - 3.23.10 sql-bench/Data/ATIS/airline.txt: First import - 3.23.10 sql-bench/Data/ATIS/airport.txt: First import - 3.23.10 sql-bench/Data/ATIS/airport_service.txt: First import - 3.23.10 sql-bench/Data/ATIS/city.txt: First import - 3.23.10 sql-bench/Data/ATIS/class_of_service.txt: First import - 3.23.10 sql-bench/Data/ATIS/code_description.txt: First import - 3.23.10 sql-bench/Data/ATIS/compound_class.txt: First import - 3.23.10 sql-bench/Data/ATIS/connect_leg.txt: First import - 3.23.10 sql-bench/Data/ATIS/connection.txt: First import - 3.23.10 sql-bench/Data/ATIS/date_day.txt: First import - 3.23.10 sql-bench/Data/ATIS/day_name.txt: First import - 3.23.10 sql-bench/Data/ATIS/dual_carrier.txt: First import - 3.23.10 sql-bench/Data/ATIS/fare.txt: First import - 3.23.10 sql-bench/Data/ATIS/flight.txt: First import - 3.23.10 sql-bench/Data/ATIS/flight_class.txt: First import - 3.23.10 sql-bench/Data/ATIS/flight_day.txt: First import - 3.23.10 sql-bench/Data/ATIS/flight_fare.txt: First import - 3.23.10 sql-bench/Data/ATIS/food_service.txt: First import - 3.23.10 sql-bench/Data/ATIS/ground_service.txt: First import - 3.23.10 sql-bench/Data/ATIS/month_name.txt: First import - 3.23.10 sql-bench/Data/ATIS/restrict_carrier.txt: First import - 3.23.10 sql-bench/Data/ATIS/restrict_class.txt: First import - 3.23.10 sql-bench/Data/ATIS/restriction.txt: First import - 3.23.10 sql-bench/Data/ATIS/state.txt: First import - 3.23.10 sql-bench/Data/ATIS/stop.txt: First import - 3.23.10 sql-bench/Data/ATIS/stop1.txt: First import - 3.23.10 sql-bench/Data/ATIS/time_interval.txt: First import - 3.23.10 sql-bench/Data/ATIS/time_zone.txt: First import - 3.23.10 sql-bench/Data/ATIS/transport.txt: First import - 3.23.10 sql-bench/Data/Wisconsin/onek.data: First import - 3.23.10 sql-bench/Data/Wisconsin/tenk.data: First import - 3.23.10 sql-bench/README: First import - 3.23.10 sql-bench/Results/ATIS-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/ATIS-AdabasD-Linux_2.0.35_i686-cmp-adabasd,mysql: First import - 3.23.10 sql-bench/Results/ATIS-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/ATIS-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/ATIS-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql-bench/Results/ATIS-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/ATIS-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/ATIS-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/ATIS-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/ATIS-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/ATIS-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/ATIS-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/ATIS-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/ATIS-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/ATIS-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/ATIS-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/ATIS-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/ATIS-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/ATIS-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/ATIS-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/ATIS-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/ATIS-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/RUN-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/RUN-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/RUN-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/RUN-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql-bench/Results/RUN-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/RUN-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/RUN-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/RUN-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/RUN-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/RUN-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/RUN-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/RUN-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/RUN-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/RUN-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/RUN-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/RUN-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/RUN-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/RUN-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/RUN-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/RUN-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/RUN-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/alter-table-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/alter-table-AdabasD-Linux_2.0.35_i686-cmp-adabasd,mysql: First import - 3.23.10 sql-bench/Results/alter-table-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/alter-table-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/alter-table-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql-bench/Results/alter-table-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/alter-table-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/alter-table-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/alter-table-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/alter-table-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/alter-table-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/alter-table-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/alter-table-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/alter-table-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/alter-table-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/alter-table-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/alter-table-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/alter-table-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/alter-table-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/alter-table-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/alter-table-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/alter-table-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/big-tables-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/big-tables-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/big-tables-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/big-tables-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql-bench/Results/big-tables-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/big-tables-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/big-tables-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/big-tables-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/big-tables-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/big-tables-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/big-tables-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/big-tables-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/big-tables-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/big-tables-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/big-tables-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/big-tables-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/big-tables-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/big-tables-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/big-tables-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/big-tables-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/big-tables-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/connect-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/connect-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/connect-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/connect-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql-bench/Results/connect-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/connect-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/connect-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/connect-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/connect-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/connect-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/connect-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/connect-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/connect-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/connect-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/connect-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/connect-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/connect-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/connect-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/connect-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/connect-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/create-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/create-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/create-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/create-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql-bench/Results/create-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/create-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/create-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/create-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/create-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/create-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/create-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/create-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/create-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/create-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/create-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/create-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/create-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/create-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/create-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/create-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/insert-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql-bench/Results/select-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-HP_UX_B.10.20_9000_778: First import - 3.23.10 sql/md5.c: First import - 3.23.10 sql/share/norwegian-ny/.cvsignore: First import - 3.23.10 sql/share/norwegian/.cvsignore: First import - 3.23.10 stamp-h.in: First import - 3.23.10 strings/ChangeLog: First import - 3.23.10 strings/bfill.c: First import - 3.23.10 strings/bmove.c: First import - 3.23.10 strings/strend.c: First import - 3.23.10 strings/strstr.c: First import - 3.23.10 strings/strxnmov.c: First import - 3.23.10 tests/auto_increment.res: First import - 3.23.10 tests/auto_increment.tst: First import - 3.23.10 tests/function.res: First import - 3.23.10 tests/function.tst: First import - 3.23.10 tests/grant.res: First import - 3.23.10 tests/lock_test.res: First import - 3.23.10 tests/table_types.pl: First import - 3.23.10 tests/udf_test.res: First import - 3.23.10 tests/udf_test: First import - 3.23.10 sql-bench/Results-linux/ATIS-mysql-Linux_2.0.33_i586-cmp-access,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/ATIS-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase: ***MISSING WEAVE*** sql-bench/Results-linux/RUN-mysql-Linux_2.0.33_i586-cmp-access,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/RUN-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase: ***MISSING WEAVE*** sql-bench/Results-linux/big-tables-mysql-Linux_2.0.33_i586-cmp-access,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/big-tables-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase: ***MISSING WEAVE*** sql-bench/Results-linux/connect-mysql-Linux_2.0.33_i586-cmp-access,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/connect-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase: ***MISSING WEAVE*** sql-bench/Results-linux/create-mysql-Linux_2.0.33_i586-cmp-access,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/create-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase: ***MISSING WEAVE*** sql-bench/Results-linux/insert-mysql-Linux_2.0.33_i586-cmp-access,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/insert-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase: ***MISSING WEAVE*** sql-bench/Results-linux/select-mysql-Linux_2.0.33_i586-cmp-access,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/select-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase: ***MISSING WEAVE*** sql-bench/Results-linux/wisconsin-mysql-Linux_2.0.33_i586-cmp-access,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/wisconsin-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase: ***MISSING WEAVE*** sql-bench/Results-win32/ATIS-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/ATIS-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/ATIS-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/ATIS-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/ATIS-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/ATIS-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/ATIS-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/ATIS-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/RUN-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/RUN-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/RUN-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/RUN-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/RUN-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/RUN-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/RUN-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/RUN-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/alter-table-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/alter-table-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/alter-table-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/alter-table-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/alter-table-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/alter-table-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/alter-table-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/alter-table-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/big-tables-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/big-tables-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/big-tables-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/big-tables-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/big-tables-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/big-tables-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/big-tables-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/big-tables-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/connect-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/connect-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/connect-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/connect-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/connect-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/connect-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/connect-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/connect-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/create-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/create-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/create-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/create-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/create-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/create-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/create-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/create-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/insert-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/insert-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/insert-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/insert-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/insert-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/insert-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/insert-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/insert-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/select-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/select-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/select-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/select-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/select-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/select-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/select-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/wisconsin-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/wisconsin-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/wisconsin-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/wisconsin-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/wisconsin-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/wisconsin-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results-win32/wisconsin-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase: First import - 3.23.10 sql-bench/Results/create-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/insert-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/insert-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/insert-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/insert-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/insert-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/insert-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/insert-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/insert-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/insert-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/insert-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/insert-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/insert-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/insert-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/insert-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/insert-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/insert-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/insert-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/insert-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/insert-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/insert-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/select-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/select-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/select-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/select-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/select-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/select-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/select-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/select-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/select-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/select-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/select-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/select-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/select-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/select-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/select-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/select-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/select-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/select-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/select-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/select-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/wisconsin-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/wisconsin-msql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-3.21-Linux_2.2.1_i686: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-Linux_2.0.35_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-Linux_2.2.10_i686: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-Linux_2.2.1_i686-cmp-adabas,mysql: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-SunOS_5.5.1_sun4u: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-SunOS_5.6_sun4m: ***MISSING WEAVE*** sql-bench/Results/wisconsin-mysql-SunOS_5.7_sun4m: First import - 3.23.10 sql-bench/Results/wisconsin-mysql-SunOS_5.7_sun4u: First import - 3.23.10 sql-bench/Results/wisconsin-mysql_3.21-Linux_2.0.35_i686: First import - 3.23.10 sql-bench/Results/wisconsin-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql: First import - 3.23.10 sql-bench/Results/wisconsin-mysql_odbc-win98: First import - 3.23.10 sql-bench/Results/wisconsin-oracle-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/wisconsin-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle: First import - 3.23.10 sql-bench/Results/wisconsin-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/wisconsin-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/Results/wisconsin-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid: First import - 3.23.10 sql-bench/limits/Adabas.cfg: First import - 3.23.10 sql-bench/limits/Adabas.comment: First import - 3.23.10 sql-bench/limits/Informix.cfg: First import - 3.23.10 sql-bench/limits/Informix.comment: First import - 3.23.10 sql-bench/limits/access.comment: First import - 3.23.10 sql-bench/limits/access_odbc.cfg: First import - 3.23.10 sql-bench/limits/db2.cfg: First import - 3.23.10 sql-bench/limits/empress.cfg: First import - 3.23.10 sql-bench/limits/empress.comment: First import - 3.23.10 sql-bench/limits/ms-sql65.cfg: First import - 3.23.10 sql-bench/limits/msql.cfg: First import - 3.23.10 sql-bench/limits/mysql-3.22.cfg: First import - 3.23.10 sql-bench/limits/pg.comment: First import - 3.23.10 sql-bench/limits/solid-nt4.cfg: First import - 3.23.10 sql-bench/limits/solid.cfg: First import - 3.23.10 sql-bench/limits/sybase.cfg: First import - 3.23.10 support-files/binary-configure.sh: First import - 3.23.10 support-files/mysql-log-rotate.sh: First import - 3.23.10 mkinstalldirs: Update to 3.23.11 Docs/mysqld_error.txt: Update to 3.23.11 man/mysql.1: Update to 3.23.11 mysys/ChangeLog: Update to 3.23.11 scripts/mysqlaccess.sh: Update to 3.23.11 strings/Attic/ptr_cmp.c: Update to 3.23.11 dbug/dbug_analyze.c: Update for 3.23.12 dbug/doinstall.sh: Update for 3.23.12 dbug/install.sh: Update for 3.23.12 dbug/mklintlib.sh: Update for 3.23.12 dbug/qmake.cmd: Update for 3.23.12 dbug/vargs.h: Update for 3.23.12 isam/test_all.res: Update for 3.23.12 isam/test_all: Update for 3.23.12 myisam/NEWS: Update for 3.23.12 myisam/common_words: ***MISSING WEAVE*** myisam/mi_test_all.res: Update for 3.23.12 myisam/test_pack: Update for 3.23.12 scripts/safe_mysqld-watch.sh: Update for 3.23.12 sql/ha_hash.h: Update for 3.23.12 sql/nt_servc.h: Update for 3.23.12 strings/READ-ME: Update for 3.23.12 strings/bzero.c: Update for 3.23.12 strings/latin2.def: Update for 3.23.12 strings/memset.c: Update for 3.23.12 strings/strcat.c: Update for 3.23.12 strings/strchr.c: Update for 3.23.12 strings/strcmp.c: Update for 3.23.12 strings/string.doc: Update for 3.23.12 strings/strings-not-used.h: Update for 3.23.12 strings/strlen.c: Update for 3.23.12 strings/strrchr.c: Update for 3.23.12 strings/t_ctype.h: Update for 3.23.12 Build-tools/Do-create-perl-rpms: Initial checkin of MySQL build environment. Build-tools/Do-local-patch-file: Initial checkin of MySQL build environment. Build-tools/newest: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-01.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-02.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-03.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-04.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-05.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-06.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-07.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-08.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-09.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-10.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-11.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-12.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-13.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-14.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-15.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-16.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-17.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql-compatible.jpg: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql_anim-01.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql_anim-02.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql_anim-03.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql_anim-04.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql_anim-05.gif: Initial checkin of MySQL build environment. Docs/MySQL-logos/mysql_anim-06.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/afghanistan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/albania.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/algeria.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/andorra.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/angola.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/antartica.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/antigua-and-barbuda.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/argentina.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/armenia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/australia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/austria.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/azerbaijan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/bahamas.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/bahrein.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/bangladesh.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/barbados.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/belarus.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/belgium.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/belize.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/benin.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/bermuda.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/bhutan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/bolivia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/bosnia-and-herzegovina.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/botswana.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/brazil.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/brunei.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/bulgaria.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/burkina-faso.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/burma.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/burundi.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/cambodia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/cameroon.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/canada.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/cape-verde.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/central-african-republic.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/chad.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/chile.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/china.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/colombia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/comoros.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/congo.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/costa-rica.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/cote-d-ivoire.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/croatia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/cuba.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/cyprus.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/czech-republic.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/denmark-original-incorrect.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/denmark.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/djibouti.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/dominica.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/dominican-republic.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/ecuador.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/egypt.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/el-salvador.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/equatorial-guinea.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/eritrea.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/estonia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/ethiopia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/fiji.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/finland.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/france.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/gabon.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/gambia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/georgia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/germany.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/ghana.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/great-britain.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/greece.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/greenland.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/grenada.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/guatemala.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/guinea-bissau.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/guinea.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/guyana.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/haiti.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/honduras.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/hungary.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/iceland.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/india.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/indonesia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/iran.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/iraq.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/ireland.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/israel.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/italy.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/jamaica.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/japan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/jordan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/kazakhstan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/kenya.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/kiribati.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/kuwait.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/kyrgyzstan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/laos.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/latvia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/lebanon.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/lesotho.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/liberia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/libya.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/liechtenstein.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/lithuania.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/luxembourg.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/macedonia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/madagascar.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/malawi.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/malaysia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/maldives.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/mali.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/malta.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/marshall.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/mauritania.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/mauritius.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/mexico.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/micronesia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/moldova.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/monaco.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/mongolia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/morocco.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/mozambique.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/namibia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/nauru.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/nepal.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/netherlands.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/new-zealand.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/nicaragua.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/niger.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/nigeria.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/north-korea.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/norway.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/oman.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/pakistan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/panama.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/papua-new-guinea.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/paraguay.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/peru.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/philippines.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/poland.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/portugal.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/qatar.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/romania.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/russia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/rwanda.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/saint-kitts-and-nevis.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/saint-lucia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/samoa.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/sao-tome-and-principe.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/saudi-arabia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/senegal.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/seychelles.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/sierra-leone.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/singapore.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/slovakia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/slovenia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/solomon-islands.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/somalia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/south-africa.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/south-korea.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/spain.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/sri-lanka.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/sudan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/suriname.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/swaziland.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/sweden.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/sweden2.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/switzerland.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/syria.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/taiwan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/tajikistan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/tanzania.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/thailand.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/togo.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/tonga.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/trinidad-and-tobago.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/tunisia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/turkey.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/turkmenistan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/tuvalu.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/uganda.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/ukraine.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/united-arab-emirates.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/united-states-of-america.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/uruguay.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/usa.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/uzbekistan.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/vanuatu.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/venezuela.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/vietnam.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/vincent-and-grenadines.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/yemen.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/yugoslavia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/zaire.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/zambia.gif: Initial checkin of MySQL build environment. Docs/Raw-Flags/zimbabwe.gif: Initial checkin of MySQL build environment. Docs/Support/generate-flag-images: Initial checkin of MySQL build environment. Docs/Support/generate-mirror-listing.pl: Initial checkin of MySQL build environment. Docs/Support/generate-text-files.pl: Initial checkin of MySQL build environment. Docs/Support/make-makefile: Initial checkin of MySQL build environment. Docs/Support/texinfo.tex: Initial checkin of MySQL build environment. Docs/Translations/myodbc-br.texi: Initial checkin of MySQL build environment. man/.cvsignore: Initial checkin of MySQL build environment. mit-pthreads/include/pthread/config.h: Initial checkin of MySQL build environment. readline/.cvsignore: Initial checkin of MySQL build environment. sql/share/.cvsignore: Initial checkin of MySQL build environment. tests/.cvsignore: Initial checkin of MySQL build environment. libmysql/acconfig.h: ***MISSING WEAVE*** libmysql/acinclude.m4: Configure stuff for libmysql. libmysql/configure.in: Configure stuff for libmysql. mit-pthreads/.cvsignore: More work on initial build mit-pthreads/include/pthread/cond.h: Update to 3.23.12 mit-pthreads/machdep/engine-i386-linux-2.0.c: Update to 3.23.12 mit-pthreads/machdep/engine-i386-linux-2.0.h: Update to 3.23.12 mit-pthreads/machdep/posix-linux-2.0.h: Update to 3.23.12 mit-pthreads/machdep/unistd-i386-linux-2.0.h: Update to 3.23.12 sql/add_errmsg: Update to 3.23.12 sql/watchdog_mysqld: Update to 3.23.12 strings/Attic/memory.h: Update to 3.23.12 dbug/.cvsignore: Update to 3.23.12 heap/.cvsignore: Update to 3.23.12 merge/.cvsignore: Update to 3.23.12 mit-pthreads/bin/.cvsignore: Update to 3.23.12 mit-pthreads/bin/finger/.cvsignore: Update to 3.23.12 mit-pthreads/lib/.cvsignore: Update to 3.23.12 mit-pthreads/lib/libpthreadutil/.cvsignore: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/__math.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/__path.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/__signal.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/__stdio.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/__stdlib.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/__string.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/__time.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/cdefs.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/compat.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/dirent.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/errno.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/socket.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/socketcall.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/timers.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/uio.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/wait.h: Update to 3.23.12 mit-pthreads/tests/.cvsignore: Update to 3.23.12 myisammrg/.cvsignore: Update to 3.23.12 regex/.cvsignore: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/extra/bits/local_lim.h: Update to 3.23.12 mit-pthreads/machdep/linux-2.0/extra/bits/socket.h: Update to 3.23.12 vio/.cvsignore: Update for 3.23.12 vio/Vio.cc: Update for 3.23.12 vio/VioAcceptorFd.cc: Update for 3.23.12 vio/VioAcceptorFd.h: Update for 3.23.12 vio/VioConnectorFd.cc: Update for 3.23.12 vio/VioConnectorFd.h: Update for 3.23.12 vio/VioFd.cc: Update for 3.23.12 vio/VioFd.h: Update for 3.23.12 vio/VioPipe.cc: Update for 3.23.12 vio/VioSSL.cc: Update for 3.23.12 vio/VioSSL.h: Update for 3.23.12 vio/VioSSLAcceptorFd.cc: Update for 3.23.12 vio/VioSSLFactoriesFd.cc: Update for 3.23.12 vio/VioSSLFactoriesFd.h: Update for 3.23.12 vio/VioSocket.cc: Update for 3.23.12 vio/VioSocket.h: Update for 3.23.12 vio/version.cc: Update for 3.23.12 vio/vio-global.h: Update for 3.23.12 vio/vioelitexx.cc: Update for 3.23.12 vio/viotest-ssl.cc: Update for 3.23.12 vio/viotest-sslconnect.cc: Update for 3.23.12 vio/viotest.cc: Update for 3.23.12 vio/viotypes.h: Update for 3.23.12 strings/strxmov.c: Update to 3.23.12a sql/md5.h: Lots of patches for Alpha-Linux Docs/Images/empty.png: *** empty log message *** Docs/Images/flag-background.pnm: *** empty log message *** NEW-RPMS/.cvsignore: Changes for new build environment sql-bench/example.bat: Update for 3.23.12a sql-bench/pwd.bat: Update for 3.23.12a sql-bench/uname.bat: Update for 3.23.12a sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results/Attic/RUN-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results/Attic/connect-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results/Attic/create-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results/Attic/insert-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results/Attic/select-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results-linux/ATIS-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/ATIS-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/ATIS-mysql-Linux_dynamic: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/ATIS-mysql-Linux_pgcc: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/ATIS-mysql-Linux_static: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/ATIS-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/ATIS-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/ATIS-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/RUN-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/RUN-mysql-Linux_dynamic: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/RUN-mysql-Linux_pgcc: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/RUN-mysql-Linux_static: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/RUN-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/RUN-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/RUN-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/big-tables-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/big-tables-mysql-Linux_dynamic: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/big-tables-mysql-Linux_pgcc: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/big-tables-mysql-Linux_static: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/big-tables-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/big-tables-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/big-tables-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/connect-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/connect-mysql-Linux_dynamic: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/connect-mysql-Linux_pgcc: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/connect-mysql-Linux_static: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/connect-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/connect-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/connect-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/create-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/create-mysql-Linux_dynamic: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/create-mysql-Linux_pgcc: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/create-mysql-Linux_static: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/create-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/create-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/create-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/insert-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/insert-mysql-Linux_dynamic: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/insert-mysql-Linux_pgcc: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/insert-mysql-Linux_static: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/insert-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/insert-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/insert-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/select-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/select-mysql-Linux_dynamic: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/select-mysql-Linux_pgcc: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/select-mysql-Linux_static: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/select-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/select-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/select-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_dynamic: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_pgcc: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_static: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/wisconsin-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/wisconsin-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/Attic/wisconsin-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** sql-bench/Results-linux/alter-table-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results-linux/big-tables-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results-linux/connect-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results-linux/insert-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results-linux/select-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/.cvsignore: Update of benchmarks sql-bench/Results-win32/ATIS-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/ATIS-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/RUN-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/RUN-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/alter-table-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/alter-table-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/big-tables-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/big-tables-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/connect-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/connect-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/create-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/create-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/insert-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/insert-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/select-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/select-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/wisconsin-access_odbc-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-win32/wisconsin-mysql-win98-cmp-access,mysql: Update of benchmarks sql-bench/Results-linux/RUN-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** sql-bench/Results-linux/create-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** Docs/Images/Attic/mysql5.gif: Second copy Docs/Images/Attic/html-fs.gif: Moved to web...icons Docs/Images/Attic/mysql-01.gif: Moved to web...icons Docs/Images/Attic/mysql-02.gif: Moved to web...icons Docs/Images/Attic/mysql-03.gif: Moved to web...icons Docs/Images/Attic/mysql-04.gif: Moved to web...icons Docs/Images/Attic/mysql-05.gif: Moved to web...icons Docs/Images/Attic/mysql-06.gif: Moved to web...icons Docs/Images/Attic/mysql-07.gif: Moved to web...icons Docs/Images/Attic/mysql-08.gif: Moved to web...icons Docs/Images/Attic/mysql-09.gif: Moved to web...icons Docs/Images/Attic/mysql-10.gif: Moved to web...icons Docs/Images/Attic/mysql-11.gif: Moved to web...icons Docs/Images/Attic/mysql-12.gif: Moved to web...icons Docs/Images/Attic/mysql-13.gif: Moved to web...icons Docs/Images/Attic/mysql-14.gif: Moved to web...icons Docs/Images/Attic/mysql-15.gif: Moved to web...icons Docs/Images/Attic/mysql-16.gif: Moved to web...icons Docs/Images/Attic/mysql-17.gif: Moved to web...icons Docs/Images/Attic/mysql-18.gif: Moved to web...icons Docs/Images/Attic/mysql-19.gif: Moved to web...icons Docs/Images/Attic/mysql-compatible.jpg: Moved to web...icons Docs/Images/Attic/mysql_anim-01.gif: Moved to web...icons Docs/Images/Attic/mysql_anim-02.gif: Moved to web...icons Docs/Images/Attic/mysql_anim-03.gif: Moved to web...icons Docs/Images/Attic/mysql_anim-04.gif: Moved to web...icons Docs/Images/Attic/mysql_anim-05.gif: Moved to web...icons Docs/Images/Attic/mysql_anim-06.gif: Moved to web...icons Docs/Images/Attic/powered-by-MySQL-transparent.gif: Moved to web...icons scripts/mysql_zap.sh: Fixes from the Debian maintainer Build-tools/Do-patch-file: Update at work myisam/TODO: Fixes for raid + other things regex/utils.h: Renamed some portability defines heap/make-ccc: First version isam/make-ccc: First version merge/make-ccc: First version myisam/make-ccc: First version myisammrg/make-ccc: First version mysys/make-ccc: First version regex/make-ccc: First version strings/make-ccc: First version sql/share/romanian/errmsg.sys: ***MISSING WEAVE*** Docs/manual-license-spanish.texi: Update to 3.23.13 BUILD/test-alpha-ccc: Bug patches from mailing list sql-bench/Results-win32/ATIS-mysql-win98: Bug patches from mailing list sql-bench/Results-win32/RUN-mysql-win98: Bug patches from mailing list sql-bench/Results-win32/alter-table-mysql-win98: Bug patches from mailing list sql-bench/Results-win32/big-tables-mysql-win98: Bug patches from mailing list sql-bench/Results-win32/connect-mysql-win98: Bug patches from mailing list sql-bench/Results-win32/create-mysql-win98: Bug patches from mailing list sql-bench/Results-win32/insert-mysql-win98: Bug patches from mailing list sql-bench/Results-win32/select-mysql-win98: Bug patches from mailing list sql-bench/Results-win32/wisconsin-mysql-win98: Bug patches from mailing list mit-pthreads/Changes-mysql: Updated for Linux mit-pthreads/config/config.h.in: Updated for Linux mit-pthreads/config/configure.in: Updated for Linux mit-pthreads/config/configure: Updated for Linux mit-pthreads/gen/ttyname.c: Updated for Linux mit-pthreads/machdep/syscall-i386-linux-2.0.S: Updated for Linux mit-pthreads/machdep/linux-2.0/__unistd.h: Updated for Linux mit-pthreads/net/Makefile.inc: Updated for Linux mit-pthreads/pthreads/fd.c: Updated for Linux mit-pthreads/pthreads/fd_kern.c: Updated for Linux mit-pthreads/pthreads/fd_sysv.c: Updated for Linux mit-pthreads/pthreads/signal.c: Updated for Linux mit-pthreads/pthreads/wrapper.c: Updated for Linux mit-pthreads/stdlib/getopt.c: Updated for Linux sql/share/charsets/cp1251.conf: Updates for 3.23.14 sql/share/charsets/croat.conf: Updates for 3.23.14 sql/share/charsets/danish.conf: Updates for 3.23.14 sql/share/charsets/dec8.conf: Updates for 3.23.14 sql/share/charsets/dos.conf: Updates for 3.23.14 sql/share/charsets/german1.conf: Updates for 3.23.14 sql/share/charsets/greek.conf: Updates for 3.23.14 sql/share/charsets/hebrew.conf: Updates for 3.23.14 sql/share/charsets/hp8.conf: Updates for 3.23.14 sql/share/charsets/hungarian.conf: Updates for 3.23.14 sql/share/charsets/koi8_ru.conf: Updates for 3.23.14 sql/share/charsets/koi8_ukr.conf: Updates for 3.23.14 sql/share/charsets/latin1.conf: Updates for 3.23.14 sql/share/charsets/latin2.conf: Updates for 3.23.14 sql/share/charsets/swe7.conf: Updates for 3.23.14 sql/share/charsets/usa7.conf: Updates for 3.23.14 sql/share/charsets/win1251.conf: Updates for 3.23.14 sql/share/charsets/win1251ukr.conf: Updates for 3.23.14 sql/Attic/mybinlogdump.cc: Fix for binary log include/Attic/m_ctype.h.in: Update for dynamic character sets strings/Attic/ct_init.c: Update for dynamic character sets strings/Attic/ctype-cp1251.c: Update for dynamic character sets strings/Attic/ctype-cp1257.c: Update for dynamic character sets strings/Attic/ctype-croat.c: Update for dynamic character sets strings/Attic/ctype-danish.c: Update for dynamic character sets strings/Attic/ctype-dec8.c: Update for dynamic character sets strings/Attic/ctype-dos.c: Update for dynamic character sets strings/Attic/ctype-estonia.c: Update for dynamic character sets strings/Attic/ctype-german1.c: Update for dynamic character sets strings/Attic/ctype-greek.c: Update for dynamic character sets strings/Attic/ctype-hebrew.c: Update for dynamic character sets strings/Attic/ctype-hp8.c: Update for dynamic character sets strings/Attic/ctype-hungarian.c: Update for dynamic character sets strings/Attic/ctype-koi8_ru.c: Update for dynamic character sets strings/Attic/ctype-koi8_ukr.c: Update for dynamic character sets strings/Attic/ctype-latin1.c: Update for dynamic character sets strings/Attic/ctype-latin2.c: Update for dynamic character sets strings/Attic/ctype-swe7.c: Update for dynamic character sets strings/Attic/ctype-usa7.c: Update for dynamic character sets strings/Attic/ctype-win1250.c: Update for dynamic character sets strings/Attic/ctype-win1251.c: Update for dynamic character sets strings/Attic/ctype-win1251ukr.c: Update for dynamic character sets mysys/.cvsignore: Update for dynamic character set handling client/Attic/libmysql.c: Update of new character sets. sql/share/charsets/Index: Update to 3.23.14 sql/share/charsets/README: Update to 3.23.14 sql/share/charsets/cp1257.conf: Update to 3.23.14 sql/share/charsets/estonia.conf: Update to 3.23.14 sql/share/charsets/win1250.conf: Update to 3.23.14 strings/.cvsignore: Update to 3.23.14 strings/Attic/bootstrap-ctype.c: Update to 3.23.14 strings/Attic/ctype.c.in: Update to 3.23.14 strings/ctype-ujis.c: Update to 3.23.14 BUILD/.cvsignore: Portability changes libmysql/.cvsignore: Portability changes mit-pthreads/GNUmakefile: Modifications to get MySQL 3.23.14 to build mit-pthreads/config.flags: ***MISSING WEAVE*** mit-pthreads/include/pthread/ac-types.h: Modifications to get MySQL 3.23.14 to build mit-pthreads/include/pthread/paths.h: Modifications to get MySQL 3.23.14 to build regex/main.c: Portability fixes sql/Attic/mini_client_errors.c: fixed up dependencies and symlinking in mini_client Build-tools/cvs-sanity-check: added a script to do a build from fresh CVS for sanity checking - make Tim, Tonu, and everybody else who has had problems with the stuff out of CVS not compiling happy include/t_ctype.h: Small updates by monty include/.cvsignore: Update to 3.23.15 include/mysql_version.h.in: Update to 3.23.15 isam/ChangeLog: Update to 3.23.15 sql-bench/limits/interbase.cfg: character sets patches + fix of order by sql-bench/Results-linux/ATIS-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results-linux/RUN-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results-linux/alter-table-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results-linux/big-tables-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results-linux/create-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results-linux/insert-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results-linux/select-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results-linux/wisconsin-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** Docs/net_doc.txt: Fixes for Win32 sql/share/Makefile.am: Update at work to get MySQL to configure include/Attic/mysql_com.h.in: Update of benchmarks and other small stuff sql-bench/Results-linux/ATIS-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/RUN-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/RUN-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/alter-table-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/alter-table-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/big-tables-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/connect-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/connect-interbase-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results-linux/connect-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/create-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/create-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/insert-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/insert-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/select-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/select-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/wisconsin-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql: ***MISSING WEAVE*** sql-bench/limits/mimer.cfg: Update of benchmarks and other small stuff sql/Attic/mini_client.c: Update to get Berkeley db to work. sql/Attic/net_serv.c: Update to get Berkeley db to work. sql/Attic/lex_hash.h: lex_hash.h is a pain in the neck for cvs diff scripts/mysql_convert_table_format.sh: Update for 3.23.16 include/getopt.h: Update for 3.23.16 Docs/Support/.cvsignore: Update for build scripts/mysqlhotcopy.sh: Update for 3.23.16 Docs/Attic/myisam.doc: Mirror addition, Broken Image fix, renamed myisam.doc -> myisam.txt (because it's really text. :). Docs/myisam.txt: Mirror addition, Broken Image fix, renamed myisam.doc -> myisam.txt (because it's really text. :). sql-bench/ChangeLog: Updates for 3.23.17 tests/big_record.pl: Updates for 3.23.17 tests/export.pl: Updates for 3.23.17 tests/fork2_test.pl: Updates for 3.23.17 tests/fork3_test.pl: Updates for 3.23.17 tests/fork_test.pl: Updates for 3.23.17 tests/grant.pl: Updates for 3.23.17 tests/insert_and_repair.pl: Updates for 3.23.17 tests/lock_test.pl: Updates for 3.23.17 tests/pmail.pl: Updates for 3.23.17 sql/.cvsignore: Update for 3.23.17 sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/ATIS-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/ATIS-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/ATIS-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/RUN-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/RUN-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/RUN-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/RUN-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/RUN-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/alter-table-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/alter-table-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/alter-table-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/big-tables-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/big-tables-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/big-tables-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/connect-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/connect-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/connect-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/connect-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/connect-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/create-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/create-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/create-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/create-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/create-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/insert-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/insert-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/insert-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/insert-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/insert-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/select-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/select-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/select-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/select-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/select-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/wisconsin-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/wisconsin-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/Attic/wisconsin-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/ATIS-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/RUN-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/alter-table-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/big-tables-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/connect-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/create-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/insert-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/select-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/wisconsin-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** support-files/Attic/my-example.cnf.sh: Updates to 3.23.17 support-files/Attic/my-huge.cfg.sh: Update for 3.23.17 support-files/Attic/my-large.cfg.sh: Update for 3.23.17 support-files/Attic/my-medium.cfg.sh: Update for 3.23.17 support-files/Attic/my-small.cfg.sh: Update for 3.23.17 sql-bench/limits/pg.cfg: Updates to 3.23.17 support-files/my-small.cnf.sh: Updates to 3.23.17 dbug/dbug.c: update 3.23.17 for Monty mysys/getopt1.c: update 3.23.17 for Monty readline/complete.c: update 3.23.17 for Monty regex/regcomp.c: update 3.23.17 for Monty regex/regex2.h: update 3.23.17 for Monty regex/regexec.c: update 3.23.17 for Monty regex/regexp.c: update 3.23.17 for Monty sql-bench/Results/ATIS-mysql-win98: update 3.23.17 for Monty sql-bench/Results/RUN-mysql-win98: update 3.23.17 for Monty sql-bench/Results/alter-table-mysql-win98: update 3.23.17 for Monty sql-bench/Results/big-tables-mysql-win98: update 3.23.17 for Monty sql-bench/Results/connect-mysql-win98: update 3.23.17 for Monty sql-bench/Results/create-mysql-win98: update 3.23.17 for Monty sql-bench/Results/insert-mysql-win98: update 3.23.17 for Monty sql-bench/Results/select-mysql-win98: update 3.23.17 for Monty sql-bench/Results/wisconsin-mysql-win98: update 3.23.17 for Monty sql-bench/Results-linux/ATIS-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/alter-table-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/big-tables-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/create-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/insert-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/wisconsin-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** tests/test_delayed_insert.pl: update 3.23.17 for Monty vio/Vio.h: update 3.23.17 for Monty vio/VioPipe.h: update 3.23.17 for Monty vio/violite.h: update 3.23.17 for Monty sql-bench/limits/access.cfg: Update for 3.23.17 sql-bench/limits/ms-sql.cfg: Update for 3.23.17 sql-bench/limits/oracle.cfg: Update for 3.23.17 BUILD/compile-alpha-ccc: Update to 3.23.18 BUILD/compile-alpha-debug: Update to 3.23.18 BUILD/compile-alpha: Update to 3.23.18 BUILD/compile-pentium-gcov: Update to 3.23.18 BUILD/compile-pentium-myodbc: Update to 3.23.18 BUILD/compile-pentium: Update to 3.23.18 BUILD/compile-solaris-sparc-purify: Update to 3.23.18 BUILD/compile-solaris-sparc: Update to 3.23.18 client/Attic/net.c: Update to 3.23.18 sql-bench/Results/ATIS-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results/RUN-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results/alter-table-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results/big-tables-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results/connect-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results/create-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results/insert-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results/select-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results/wisconsin-mysql-Linux_2.2.14_i686_xeon: Update to 3.23.18 sql-bench/Results-linux/RUN-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/connect-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/select-mysql_fast-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** mysql-test/mybin/mysql-test_install_db: Initial checkin of mysql-test subdir. mysql-test/mysql-test-run: Quick commit before I checkout a new tree. Docs/Tutorial-MySQL-final.txt: Update for 3.23.19-beta Build-tools/Do-rpm: Fix of wrong CVS update sql-bench/Results/ATIS-mysql-NT_4.0: Fix of wrong CVS update sql-bench/Results/RUN-mysql-NT_4.0: Fix of wrong CVS update sql-bench/Results/alter-table-mysql-NT_4.0: Fix of wrong CVS update sql-bench/Results/big-tables-mysql-NT_4.0: Fix of wrong CVS update sql-bench/Results/connect-mysql-NT_4.0: Fix of wrong CVS update sql-bench/Results/create-mysql-NT_4.0: Fix of wrong CVS update sql-bench/Results/insert-mysql-NT_4.0: Fix of wrong CVS update sql-bench/Results/select-mysql-NT_4.0: Fix of wrong CVS update sql-bench/Results/wisconsin-mysql-NT_4.0: Fix of wrong CVS update acconfig.h: Change of copyright to GPL/LGPL client/.cvsignore: Change of copyright to GPL/LGPL client/completion_hash.h: Change of copyright to GPL/LGPL client/connect_test.c: Change of copyright to GPL/LGPL client/errmsg.c: Change of copyright to GPL/LGPL client/insert_test.c: Change of copyright to GPL/LGPL client/list_test.c: Change of copyright to GPL/LGPL client/my_readline.h: Change of copyright to GPL/LGPL client/password.c: Change of copyright to GPL/LGPL client/readline.cc: Change of copyright to GPL/LGPL client/select_test.c: Change of copyright to GPL/LGPL client/showdb_test.c: Change of copyright to GPL/LGPL client/sql_string.cc: Change of copyright to GPL/LGPL client/sql_string.h: Change of copyright to GPL/LGPL client/ssl_test.c: Change of copyright to GPL/LGPL client/thread_test.c: Change of copyright to GPL/LGPL client/violite.c: Change of copyright to GPL/LGPL dbug/Makefile.am: Change of copyright to GPL/LGPL extra/comp_err.c: Change of copyright to GPL/LGPL extra/perror.c: Change of copyright to GPL/LGPL extra/replace.c: Change of copyright to GPL/LGPL extra/resolveip.c: Change of copyright to GPL/LGPL heap/Makefile.am: Change of copyright to GPL/LGPL heap/_check.c: Change of copyright to GPL/LGPL heap/_rectest.c: Change of copyright to GPL/LGPL heap/heapdef.h: Change of copyright to GPL/LGPL heap/hp_block.c: Change of copyright to GPL/LGPL heap/hp_clear.c: Change of copyright to GPL/LGPL heap/hp_close.c: Change of copyright to GPL/LGPL heap/hp_create.c: Change of copyright to GPL/LGPL heap/hp_delete.c: Change of copyright to GPL/LGPL heap/hp_extra.c: Change of copyright to GPL/LGPL heap/hp_hash.c: Change of copyright to GPL/LGPL heap/hp_info.c: Change of copyright to GPL/LGPL heap/hp_open.c: Change of copyright to GPL/LGPL heap/hp_panic.c: Change of copyright to GPL/LGPL heap/hp_rename.c: Change of copyright to GPL/LGPL heap/hp_rfirst.c: Change of copyright to GPL/LGPL heap/hp_rlast.c: Change of copyright to GPL/LGPL heap/hp_rnext.c: Change of copyright to GPL/LGPL heap/hp_rprev.c: Change of copyright to GPL/LGPL heap/hp_rrnd.c: Change of copyright to GPL/LGPL heap/hp_rsame.c: Change of copyright to GPL/LGPL heap/hp_scan.c: Change of copyright to GPL/LGPL heap/hp_static.c: Change of copyright to GPL/LGPL heap/hp_test1.c: Change of copyright to GPL/LGPL heap/hp_test2.c: Change of copyright to GPL/LGPL heap/hp_update.c: Change of copyright to GPL/LGPL heap/hp_write.c: Change of copyright to GPL/LGPL include/dbug.h: Change of copyright to GPL/LGPL include/hash.h: Change of copyright to GPL/LGPL include/heap.h: Change of copyright to GPL/LGPL include/m_ctype.h: Change of copyright to GPL/LGPL include/m_string.h: Change of copyright to GPL/LGPL include/merge.h: Change of copyright to GPL/LGPL include/my_alarm.h: Change of copyright to GPL/LGPL include/my_dir.h: Change of copyright to GPL/LGPL include/my_list.h: Change of copyright to GPL/LGPL include/my_net.h: Change of copyright to GPL/LGPL include/my_no_pthread.h: Change of copyright to GPL/LGPL include/my_nosys.h: Change of copyright to GPL/LGPL include/my_pthread.h: Change of copyright to GPL/LGPL include/my_sys.h: Change of copyright to GPL/LGPL include/my_tree.h: Change of copyright to GPL/LGPL include/myisammrg.h: Change of copyright to GPL/LGPL include/myisampack.h: Change of copyright to GPL/LGPL include/mysys_err.h: Change of copyright to GPL/LGPL include/nisam.h: Change of copyright to GPL/LGPL include/queues.h: Change of copyright to GPL/LGPL include/raid.h: Change of copyright to GPL/LGPL include/sslopt-case.h: Change of copyright to GPL/LGPL include/sslopt-longopts.h: Change of copyright to GPL/LGPL include/sslopt-usage.h: Change of copyright to GPL/LGPL include/sslopt-vars.h: Change of copyright to GPL/LGPL include/thr_alarm.h: Change of copyright to GPL/LGPL include/thr_lock.h: Change of copyright to GPL/LGPL include/violite.h: Change of copyright to GPL/LGPL isam/Makefile.am: Change of copyright to GPL/LGPL isam/_cache.c: Change of copyright to GPL/LGPL isam/_dynrec.c: Change of copyright to GPL/LGPL isam/_key.c: Change of copyright to GPL/LGPL isam/_locking.c: Change of copyright to GPL/LGPL isam/_packrec.c: Change of copyright to GPL/LGPL isam/_page.c: Change of copyright to GPL/LGPL isam/_search.c: Change of copyright to GPL/LGPL isam/_statrec.c: Change of copyright to GPL/LGPL isam/changed.c: Change of copyright to GPL/LGPL isam/close.c: Change of copyright to GPL/LGPL isam/create.c: Change of copyright to GPL/LGPL isam/delete.c: Change of copyright to GPL/LGPL isam/extra.c: Change of copyright to GPL/LGPL isam/isamchk.c: Change of copyright to GPL/LGPL isam/isamlog.c: Change of copyright to GPL/LGPL isam/log.c: Change of copyright to GPL/LGPL isam/open.c: Change of copyright to GPL/LGPL isam/pack_isam.c: Change of copyright to GPL/LGPL isam/panic.c: Change of copyright to GPL/LGPL isam/range.c: Change of copyright to GPL/LGPL isam/rfirst.c: Change of copyright to GPL/LGPL isam/rkey.c: Change of copyright to GPL/LGPL isam/rlast.c: Change of copyright to GPL/LGPL isam/rnext.c: Change of copyright to GPL/LGPL isam/rprev.c: Change of copyright to GPL/LGPL isam/rrnd.c: Change of copyright to GPL/LGPL isam/rsame.c: Change of copyright to GPL/LGPL isam/rsamepos.c: Change of copyright to GPL/LGPL isam/sort.c: Change of copyright to GPL/LGPL isam/static.c: Change of copyright to GPL/LGPL isam/test1.c: Change of copyright to GPL/LGPL isam/test3.c: Change of copyright to GPL/LGPL libmysql/Makefile.am: Change of copyright to GPL/LGPL libmysql/conf_to_src.c: Change of copyright to GPL/LGPL libmysql/dll.c: Change of copyright to GPL/LGPL libmysql/get_password.c: Change of copyright to GPL/LGPL libmysql/password.c: Change of copyright to GPL/LGPL libmysql/violite.c: Change of copyright to GPL/LGPL man/Makefile.am: Change of copyright to GPL/LGPL merge/Makefile.am: Change of copyright to GPL/LGPL merge/_locking.c: Change of copyright to GPL/LGPL merge/close.c: Change of copyright to GPL/LGPL merge/create.c: Change of copyright to GPL/LGPL merge/delete.c: Change of copyright to GPL/LGPL merge/extra.c: Change of copyright to GPL/LGPL merge/info.c: Change of copyright to GPL/LGPL merge/mrgdef.h: Change of copyright to GPL/LGPL merge/open.c: Change of copyright to GPL/LGPL merge/panic.c: Change of copyright to GPL/LGPL merge/rrnd.c: Change of copyright to GPL/LGPL merge/rsame.c: Change of copyright to GPL/LGPL merge/static.c: Change of copyright to GPL/LGPL merge/update.c: Change of copyright to GPL/LGPL myisam/ft_eval.c: Change of copyright to GPL/LGPL myisam/ft_eval.h: Change of copyright to GPL/LGPL myisam/ft_parser.c: Change of copyright to GPL/LGPL myisam/ft_static.c: Change of copyright to GPL/LGPL myisam/ft_stem.c: Change of copyright to GPL/LGPL myisam/ft_stopwords.c: Change of copyright to GPL/LGPL myisam/ft_test1.c: Change of copyright to GPL/LGPL myisam/ft_test1.h: Change of copyright to GPL/LGPL myisam/ftdefs.h: Change of copyright to GPL/LGPL myisam/fulltext.h: Change of copyright to GPL/LGPL myisam/mi_cache.c: Change of copyright to GPL/LGPL myisam/mi_changed.c: Change of copyright to GPL/LGPL myisam/mi_checksum.c: Change of copyright to GPL/LGPL myisam/mi_dbug.c: Change of copyright to GPL/LGPL myisam/mi_delete_all.c: Change of copyright to GPL/LGPL myisam/mi_delete_table.c: Change of copyright to GPL/LGPL myisam/mi_dynrec.c: Change of copyright to GPL/LGPL myisam/mi_info.c: Change of copyright to GPL/LGPL myisam/mi_key.c: Change of copyright to GPL/LGPL myisam/mi_packrec.c: Change of copyright to GPL/LGPL myisam/mi_page.c: Change of copyright to GPL/LGPL myisam/mi_range.c: Change of copyright to GPL/LGPL myisam/mi_rename.c: Change of copyright to GPL/LGPL myisam/mi_rfirst.c: Change of copyright to GPL/LGPL myisam/mi_rkey.c: Change of copyright to GPL/LGPL myisam/mi_rlast.c: Change of copyright to GPL/LGPL myisam/mi_rnext.c: Change of copyright to GPL/LGPL myisam/mi_rprev.c: Change of copyright to GPL/LGPL myisam/mi_rrnd.c: Change of copyright to GPL/LGPL myisam/mi_rsame.c: Change of copyright to GPL/LGPL myisam/mi_rsamepos.c: Change of copyright to GPL/LGPL myisam/mi_scan.c: Change of copyright to GPL/LGPL myisam/mi_static.c: Change of copyright to GPL/LGPL myisam/mi_statrec.c: Change of copyright to GPL/LGPL myisam/mi_test1.c: Change of copyright to GPL/LGPL myisam/mi_test2.c: Change of copyright to GPL/LGPL myisam/mi_test3.c: Change of copyright to GPL/LGPL myisam/mi_unique.c: Change of copyright to GPL/LGPL myisam/myisamlog.c: Change of copyright to GPL/LGPL myisam/sort.c: Change of copyright to GPL/LGPL myisammrg/Makefile.am: Change of copyright to GPL/LGPL myisammrg/mymrgdef.h: Change of copyright to GPL/LGPL myisammrg/myrg_close.c: Change of copyright to GPL/LGPL myisammrg/myrg_create.c: Change of copyright to GPL/LGPL myisammrg/myrg_delete.c: Change of copyright to GPL/LGPL myisammrg/myrg_extra.c: Change of copyright to GPL/LGPL myisammrg/myrg_info.c: Change of copyright to GPL/LGPL myisammrg/myrg_locking.c: Change of copyright to GPL/LGPL myisammrg/myrg_open.c: Change of copyright to GPL/LGPL myisammrg/myrg_panic.c: Change of copyright to GPL/LGPL myisammrg/myrg_rrnd.c: Change of copyright to GPL/LGPL myisammrg/myrg_rsame.c: Change of copyright to GPL/LGPL myisammrg/myrg_static.c: Change of copyright to GPL/LGPL myisammrg/myrg_update.c: Change of copyright to GPL/LGPL mysys/Makefile.am: Change of copyright to GPL/LGPL mysys/array.c: Change of copyright to GPL/LGPL mysys/charset.c: Change of copyright to GPL/LGPL mysys/checksum.c: Change of copyright to GPL/LGPL mysys/default.c: Change of copyright to GPL/LGPL mysys/errors.c: Change of copyright to GPL/LGPL mysys/getvar.c: Change of copyright to GPL/LGPL mysys/hash.c: Change of copyright to GPL/LGPL mysys/list.c: Change of copyright to GPL/LGPL mysys/make-conf.c: Change of copyright to GPL/LGPL mysys/mf_brkhant.c: Change of copyright to GPL/LGPL mysys/mf_cache.c: Change of copyright to GPL/LGPL mysys/mf_casecnv.c: Change of copyright to GPL/LGPL mysys/mf_dirname.c: Change of copyright to GPL/LGPL mysys/mf_fn_ext.c: Change of copyright to GPL/LGPL mysys/mf_format.c: Change of copyright to GPL/LGPL mysys/mf_getdate.c: Change of copyright to GPL/LGPL mysys/mf_iocache.c: Change of copyright to GPL/LGPL mysys/mf_keycache.c: Change of copyright to GPL/LGPL mysys/mf_loadpath.c: Change of copyright to GPL/LGPL mysys/mf_pack2.c: Change of copyright to GPL/LGPL mysys/mf_path.c: Change of copyright to GPL/LGPL mysys/mf_qsort.c: Change of copyright to GPL/LGPL mysys/mf_qsort2.c: Change of copyright to GPL/LGPL mysys/mf_radix.c: Change of copyright to GPL/LGPL mysys/mf_reccache.c: ***MISSING WEAVE*** mysys/mf_same.c: Change of copyright to GPL/LGPL mysys/mf_sleep.c: Change of copyright to GPL/LGPL mysys/mf_sort.c: Change of copyright to GPL/LGPL mysys/mf_soundex.c: Change of copyright to GPL/LGPL mysys/mf_stripp.c: Change of copyright to GPL/LGPL mysys/mf_unixpath.c: Change of copyright to GPL/LGPL mysys/mf_util.c: Change of copyright to GPL/LGPL mysys/mf_wcomp.c: Change of copyright to GPL/LGPL mysys/mf_wfile.c: Change of copyright to GPL/LGPL mysys/mulalloc.c: Change of copyright to GPL/LGPL mysys/my_alarm.c: Change of copyright to GPL/LGPL mysys/my_alloc.c: Change of copyright to GPL/LGPL mysys/my_append.c: Change of copyright to GPL/LGPL mysys/my_chsize.c: Change of copyright to GPL/LGPL mysys/my_clock.c: Change of copyright to GPL/LGPL mysys/my_compress.c: Change of copyright to GPL/LGPL mysys/my_copy.c: Change of copyright to GPL/LGPL mysys/my_create.c: Change of copyright to GPL/LGPL mysys/my_delete.c: Change of copyright to GPL/LGPL mysys/my_div.c: Change of copyright to GPL/LGPL mysys/my_error.c: Change of copyright to GPL/LGPL mysys/my_fopen.c: Change of copyright to GPL/LGPL mysys/my_fstream.c: Change of copyright to GPL/LGPL mysys/my_getwd.c: Change of copyright to GPL/LGPL mysys/my_init.c: Change of copyright to GPL/LGPL mysys/my_lib.c: Change of copyright to GPL/LGPL mysys/my_lock.c: Change of copyright to GPL/LGPL mysys/my_lockmem.c: Change of copyright to GPL/LGPL mysys/my_lread.c: Change of copyright to GPL/LGPL mysys/my_lwrite.c: Change of copyright to GPL/LGPL mysys/my_malloc.c: Change of copyright to GPL/LGPL mysys/my_messnc.c: Change of copyright to GPL/LGPL mysys/my_mkdir.c: Change of copyright to GPL/LGPL mysys/my_net.c: Change of copyright to GPL/LGPL mysys/my_once.c: Change of copyright to GPL/LGPL mysys/my_open.c: Change of copyright to GPL/LGPL mysys/my_pread.c: Change of copyright to GPL/LGPL mysys/my_pthread.c: Change of copyright to GPL/LGPL mysys/my_quick.c: Change of copyright to GPL/LGPL mysys/my_read.c: Change of copyright to GPL/LGPL mysys/my_realloc.c: Change of copyright to GPL/LGPL mysys/my_redel.c: Change of copyright to GPL/LGPL mysys/my_rename.c: Change of copyright to GPL/LGPL mysys/my_seek.c: Change of copyright to GPL/LGPL mysys/my_static.c: Change of copyright to GPL/LGPL mysys/my_static.h: Change of copyright to GPL/LGPL mysys/my_tempnam.c: Change of copyright to GPL/LGPL mysys/my_vsnprintf.c: Change of copyright to GPL/LGPL mysys/my_wincond.c: Change of copyright to GPL/LGPL mysys/my_winthread.c: Change of copyright to GPL/LGPL mysys/my_write.c: Change of copyright to GPL/LGPL mysys/mysys_priv.h: Change of copyright to GPL/LGPL mysys/ptr_cmp.c: Change of copyright to GPL/LGPL mysys/queues.c: Change of copyright to GPL/LGPL mysys/raid.cc: Change of copyright to GPL/LGPL mysys/safemalloc.c: Change of copyright to GPL/LGPL mysys/string.c: Change of copyright to GPL/LGPL mysys/test_charset.c: Change of copyright to GPL/LGPL mysys/test_dir.c: Change of copyright to GPL/LGPL mysys/test_fn.c: Change of copyright to GPL/LGPL mysys/test_vsnprintf.c: Change of copyright to GPL/LGPL mysys/testhash.c: Change of copyright to GPL/LGPL mysys/thr_alarm.c: Change of copyright to GPL/LGPL mysys/thr_lock.c: Change of copyright to GPL/LGPL mysys/thr_mutex.c: Change of copyright to GPL/LGPL mysys/thr_rwlock.c: Change of copyright to GPL/LGPL mysys/tree.c: Change of copyright to GPL/LGPL mysys/typelib.c: Change of copyright to GPL/LGPL regex/Makefile.am: Change of copyright to GPL/LGPL sql/cache_manager.cc: Change of copyright to GPL/LGPL sql/cache_manager.h: Change of copyright to GPL/LGPL sql/convert.cc: Change of copyright to GPL/LGPL sql/custom_conf.h: Change of copyright to GPL/LGPL sql/derror.cc: Change of copyright to GPL/LGPL sql/field_conv.cc: Change of copyright to GPL/LGPL sql/frm_crypt.cc: Change of copyright to GPL/LGPL sql/ha_heap.cc: Change of copyright to GPL/LGPL sql/ha_heap.h: Change of copyright to GPL/LGPL sql/ha_isam.cc: Change of copyright to GPL/LGPL sql/ha_isammrg.cc: Change of copyright to GPL/LGPL sql/hash_filo.cc: Change of copyright to GPL/LGPL sql/hash_filo.h: Change of copyright to GPL/LGPL sql/hostname.cc: Change of copyright to GPL/LGPL sql/init.cc: Change of copyright to GPL/LGPL sql/item_buff.cc: Change of copyright to GPL/LGPL sql/item_cmpfunc.h: Change of copyright to GPL/LGPL sql/item_create.cc: Change of copyright to GPL/LGPL sql/item_create.h: Change of copyright to GPL/LGPL sql/item_strfunc.cc: Change of copyright to GPL/LGPL sql/item_strfunc.h: Change of copyright to GPL/LGPL sql/item_sum.cc: Change of copyright to GPL/LGPL sql/item_sum.h: Change of copyright to GPL/LGPL sql/item_uniq.cc: Change of copyright to GPL/LGPL sql/item_uniq.h: Change of copyright to GPL/LGPL sql/key.cc: Change of copyright to GPL/LGPL sql/lex_symbol.h: Change of copyright to GPL/LGPL sql/lock.cc: Change of copyright to GPL/LGPL sql/matherr.c: Change of copyright to GPL/LGPL sql/mf_iocache.cc: Change of copyright to GPL/LGPL sql/mini_client.h: Change of copyright to GPL/LGPL sql/my_lock.c: Change of copyright to GPL/LGPL sql/opt_sum.cc: Change of copyright to GPL/LGPL sql/password.c: Change of copyright to GPL/LGPL sql/procedure.cc: Change of copyright to GPL/LGPL sql/procedure.h: Change of copyright to GPL/LGPL sql/sql_acl.h: Change of copyright to GPL/LGPL sql/sql_analyse.cc: Change of copyright to GPL/LGPL sql/sql_cache.cc: Change of copyright to GPL/LGPL sql/sql_crypt.cc: Change of copyright to GPL/LGPL sql/sql_crypt.h: Change of copyright to GPL/LGPL sql/sql_list.cc: Change of copyright to GPL/LGPL sql/sql_list.h: Change of copyright to GPL/LGPL sql/sql_map.cc: Change of copyright to GPL/LGPL sql/sql_map.h: Change of copyright to GPL/LGPL sql/sql_string.h: Change of copyright to GPL/LGPL sql/sql_test.cc: Change of copyright to GPL/LGPL sql/sql_udf.cc: Change of copyright to GPL/LGPL sql/sql_udf.h: Change of copyright to GPL/LGPL sql/thr_malloc.cc: Change of copyright to GPL/LGPL sql/udf_example.cc: Change of copyright to GPL/LGPL sql/unireg.cc: Change of copyright to GPL/LGPL sql/unireg.h: Change of copyright to GPL/LGPL sql/violite.c: Change of copyright to GPL/LGPL sql-bench/Makefile.am: Change of copyright to GPL/LGPL sql-bench/bench-init.pl.sh: Change of copyright to GPL/LGPL sql-bench/copy-db.sh: Change of copyright to GPL/LGPL sql-bench/run-all-tests.sh: Change of copyright to GPL/LGPL sql-bench/server-cfg.sh: Change of copyright to GPL/LGPL sql-bench/test-ATIS.sh: Change of copyright to GPL/LGPL sql-bench/test-alter-table.sh: Change of copyright to GPL/LGPL sql-bench/test-big-tables.sh: Change of copyright to GPL/LGPL sql-bench/test-connect.sh: Change of copyright to GPL/LGPL sql-bench/test-create.sh: Change of copyright to GPL/LGPL sql-bench/test-insert.sh: Change of copyright to GPL/LGPL sql-bench/test-select.sh: Change of copyright to GPL/LGPL sql-bench/test-wisconsin.sh: Change of copyright to GPL/LGPL sql-bench/Results/ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/ATIS-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/ATIS-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/ATIS-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results/RUN-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/RUN-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/RUN-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/RUN-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results/alter-table-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/alter-table-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/alter-table-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/alter-table-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results/big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/big-tables-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/big-tables-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/big-tables-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results/connect-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/connect-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/connect-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/connect-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results/create-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/create-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/create-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/create-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results/insert-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/insert-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/insert-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/select-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/select-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/select-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/wisconsin-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/wisconsin-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** strings/Makefile.am: Change of copyright to GPL/LGPL strings/README: Change of copyright to GPL/LGPL strings/atof.c: Change of copyright to GPL/LGPL strings/bchange.c: Change of copyright to GPL/LGPL strings/bcmp.c: Change of copyright to GPL/LGPL strings/bcopy-duff.c: Change of copyright to GPL/LGPL strings/bmove512.c: Change of copyright to GPL/LGPL strings/bmove_upp-sparc.s: Change of copyright to GPL/LGPL strings/bmove_upp.c: Change of copyright to GPL/LGPL strings/conf_to_src.c: Change of copyright to GPL/LGPL strings/ctype-big5.c: Change of copyright to GPL/LGPL strings/ctype-euc_kr.c: Change of copyright to GPL/LGPL strings/ctype-gb2312.c: Change of copyright to GPL/LGPL strings/ctype-sjis.c: Change of copyright to GPL/LGPL strings/ctype.c: Change of copyright to GPL/LGPL strings/do_ctype.c: Change of copyright to GPL/LGPL strings/int2str.c: Change of copyright to GPL/LGPL strings/is_prefix.c: Change of copyright to GPL/LGPL strings/llstr.c: Change of copyright to GPL/LGPL strings/longlong2str-x86.s: Change of copyright to GPL/LGPL strings/longlong2str.c: Change of copyright to GPL/LGPL strings/macros.asm: Change of copyright to GPL/LGPL strings/memcmp.c: Change of copyright to GPL/LGPL strings/memcpy.c: Change of copyright to GPL/LGPL strings/ptr_cmp.asm: Change of copyright to GPL/LGPL strings/str2int.c: Change of copyright to GPL/LGPL strings/str_test.c: Change of copyright to GPL/LGPL strings/strappend-sparc.s: Change of copyright to GPL/LGPL strings/strappend.c: Change of copyright to GPL/LGPL strings/strcend.c: Change of copyright to GPL/LGPL strings/strcont.c: Change of copyright to GPL/LGPL strings/strend-sparc.s: Change of copyright to GPL/LGPL strings/strfill.c: Change of copyright to GPL/LGPL strings/strings-x86.s: Change of copyright to GPL/LGPL strings/strings.asm: Change of copyright to GPL/LGPL strings/strinstr-sparc.s: Change of copyright to GPL/LGPL strings/strinstr.c: Change of copyright to GPL/LGPL strings/strmake-sparc.s: Change of copyright to GPL/LGPL strings/strmake.c: Change of copyright to GPL/LGPL strings/strmov-sparc.s: Change of copyright to GPL/LGPL strings/strmov.c: Change of copyright to GPL/LGPL strings/strnmov-sparc.s: Change of copyright to GPL/LGPL strings/strnmov.c: Change of copyright to GPL/LGPL strings/strstr-sparc.s: Change of copyright to GPL/LGPL strings/strto.c: Change of copyright to GPL/LGPL strings/strtol.c: Change of copyright to GPL/LGPL strings/strtoll.c: Change of copyright to GPL/LGPL strings/strtoul.c: Change of copyright to GPL/LGPL strings/strtoull.c: Change of copyright to GPL/LGPL strings/strxmov-sparc.s: Change of copyright to GPL/LGPL strings/strxmov.asm: Change of copyright to GPL/LGPL strings/udiv.c: Change of copyright to GPL/LGPL support-files/Makefile.am: Change of copyright to GPL/LGPL tests/Makefile.am: Change of copyright to GPL/LGPL vio/Makefile.am: Change of copyright to GPL/LGPL isam/.cvsignore: Updates for 3.23.19 myisam/.cvsignore: Updates for 3.23.19 sql-bench/Results/insert-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results/select-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** sql/sql_analyse.h: Fix bug when memory wasn't freed sql/mysqlbinlog.cc: Small fixes sql/share/romanian/errmsg.txt: ***MISSING WEAVE*** include/mysql_com.h: Replication update/LOAD TABLE FROM MASTER + other fixes client/mysql-test.c: ***MISSING WEAVE*** myisam/Attic/ft_global.h: This file is now in include/ extra/Attic/print_defaults.c: Updates for text search + ORDER BY extra/Makefile.am: Updates for text search + ORDER BY extra/my_print_defaults.c: Updates for text search + ORDER BY include/mysqld_error.h: Updates for text search + ORDER BY sql/item_cmpfunc.cc: Updates for text search + ORDER BY sql/opt_range.h: Updates for text search + ORDER BY sql/sql_lex.cc: Updates for text search + ORDER BY sql-bench/crash-me.sh: Updates for text search + ORDER BY sql-bench/limits/mysql.cfg: Updates for text search + ORDER BY sql/share/czech/errmsg.sys: Updates for text search + ORDER BY sql/share/czech/errmsg.txt: Updates for text search + ORDER BY sql/share/danish/errmsg.sys: Updates for text search + ORDER BY sql/share/danish/errmsg.txt: Updates for text search + ORDER BY sql/share/dutch/errmsg.sys: Updates for text search + ORDER BY sql/share/dutch/errmsg.txt: Updates for text search + ORDER BY sql/share/english/errmsg.sys: Updates for text search + ORDER BY sql/share/english/errmsg.txt: Updates for text search + ORDER BY sql/share/estonia/errmsg.sys: Updates for text search + ORDER BY sql/share/estonia/errmsg.txt: Updates for text search + ORDER BY sql/share/french/errmsg.sys: Updates for text search + ORDER BY sql/share/french/errmsg.txt: Updates for text search + ORDER BY sql/share/german/errmsg.sys: Updates for text search + ORDER BY sql/share/german/errmsg.txt: Updates for text search + ORDER BY sql/share/greek/errmsg.sys: Updates for text search + ORDER BY sql/share/greek/errmsg.txt: Updates for text search + ORDER BY sql/share/hungarian/errmsg.sys: Updates for text search + ORDER BY sql/share/hungarian/errmsg.txt: Updates for text search + ORDER BY sql/share/japanese/errmsg.sys: Updates for text search + ORDER BY sql/share/japanese/errmsg.txt: Updates for text search + ORDER BY sql/share/korean/errmsg.sys: Updates for text search + ORDER BY sql/share/korean/errmsg.txt: Updates for text search + ORDER BY sql/share/norwegian/errmsg.txt: Updates for text search + ORDER BY sql/share/norwegian-ny/errmsg.txt: Updates for text search + ORDER BY sql/share/polish/errmsg.sys: Updates for text search + ORDER BY sql/share/polish/errmsg.txt: Updates for text search + ORDER BY sql/share/portuguese/errmsg.sys: Updates for text search + ORDER BY sql/share/portuguese/errmsg.txt: Updates for text search + ORDER BY sql/share/romania/errmsg.sys: Updates for text search + ORDER BY sql/share/romania/errmsg.txt: Updates for text search + ORDER BY sql/share/russian/errmsg.sys: Updates for text search + ORDER BY sql/share/russian/errmsg.txt: Updates for text search + ORDER BY sql/share/slovak/errmsg.sys: Updates for text search + ORDER BY sql/share/slovak/errmsg.txt: Updates for text search + ORDER BY sql/share/spanish/errmsg.sys: Updates for text search + ORDER BY sql/share/spanish/errmsg.txt: Updates for text search + ORDER BY sql/share/swedish/errmsg.OLD: Updates for text search + ORDER BY sql/share/swedish/errmsg.sys: Updates for text search + ORDER BY sql/share/swedish/errmsg.txt: Updates for text search + ORDER BY support-files/mysql.server-sys5.sh: Updates for text search + ORDER BY extra/.cvsignore: Fix for update + BDB tables isam/_dbug.c: Fix for update + BDB tables myisam/mi_delete.c: Fix for update + BDB tables myisam/mi_rnext_same.c: Fix for update + BDB tables myisam/mi_search.c: Fix for update + BDB tables sql/table.cc: Fix of core dump bugs myisam/Makefile.am: Aded missing file sql/ha_berkeley.h: Fix DELETE FROM table_name problem Build-tools/Do-all-build-steps: Update to final 3.23.20 Build-tools/mysql-copyright-2: Update to final 3.23.20 Build-tools/mysql-copyright: Update to final 3.23.20 Docs/.cvsignore: Update to final 3.23.20 scripts/make_binary_distribution.sh: Update to final 3.23.20 Docs/internals.texi: Fix of licenses issues. sql/ha_isam.h: Added patch by Sergei for MATCH + some bug fixes. sql/ha_isammrg.h: Added patch by Sergei for MATCH + some bug fixes. sql/ha_myisammrg.h: Added patch by Sergei for MATCH + some bug fixes. myisam/ft_search.c: Fix of portability bug include/ft_global.h: Fix of portability bug sql/log_event.cc: One more safety fix sql/log_event.h: One more safety fix isam/test2.c: Update to 3.23.21 isam/update.c: Update to 3.23.21 myisam/ChangeLog: Update to 3.23.21 myisam/mi_test_all.sh: Update to 3.23.21 myisam/mi_update.c: Update to 3.23.21 myisam/mi_write.c: Update to 3.23.21 scripts/.cvsignore: Update to 3.23.21 scripts/mysql_config.sh: Update to 3.23.21 sql/filesort.cc: Update to 3.23.21 Docs/Support/texi2html: removed NOSAVE attrib from TABLE tags, non-standard HTML. include/Attic/config-win32.h: Made update log ASCII 0 safe myisam/mi_test_all: ***MISSING WEAVE*** sql/sql_acl.cc: Made update log ASCII 0 safe sql/sql_db.cc: Made update log ASCII 0 safe sql/sql_delete.cc: Made update log ASCII 0 safe sql/sql_insert.cc: Made update log ASCII 0 safe sql/sql_load.cc: Made update log ASCII 0 safe sql/sql_select.h: Made update log ASCII 0 safe sql/sql_update.cc: Made update log ASCII 0 safe sql/table.h: Made update log ASCII 0 safe strings/ctype-czech.c: Made update log ASCII 0 safe support-files/maxsql.spec.sh: Made update log ASCII 0 safe client/mysqlimport.c: Update to 3.23.21 client/mysqlshow.c: Update to 3.23.21 include/mysql.h: Added mysql_character_set_name() mit-pthreads/net/gethostname.c: Added mysql_character_set_name() scripts/Makefile.am: Added mysql_character_set_name() client/Makefile.am: portability fixes scripts/mysql_install_db.sh: portability fixes support-files/mysql.spec.sh: Added mysql_config config.h.in: ***MISSING WEAVE*** client/mysqldump.c: Small fixes heap/hp_rkey.c: Small fixes sql-bench/compare-results.sh: Small fixes tests/mail_to_db.pl: Small fixes acinclude.m4: Configure updates for 3.23.22 BUILD/compile-pentium-debug: Configure updates for 3.23.22 Docs/Makefile.am: Configure updates for 3.23.22 client/get_password.c: Configure updates for 3.23.22 client/mysqladmin.c: Configure updates for 3.23.22 include/Makefile.am: Configure updates for 3.23.22 include/my_global.h: ***MISSING WEAVE*** isam/info.c: Configure updates for 3.23.22 isam/isamdef.h: Configure updates for 3.23.22 isam/write.c: Configure updates for 3.23.22 sql/records.cc: Configure updates for 3.23.22 sql-bench/print-limit-table: Configure updates for 3.23.22 sql-bench/limits/mysql-3.23.cfg: Configure updates for 3.23.22 support-files/my-huge.cnf.sh: Configure updates for 3.23.22 support-files/my-large.cnf.sh: Configure updates for 3.23.22 support-files/my-medium.cnf.sh: Configure updates for 3.23.22 myisam/ft_update.c: This is to make ft-code to ignore keyseg.length at all and to index the whole VARCHAR/BLOB instead... Makefile.am: Fixed gen_lex_hash recursion myisam/myisampack.c: Fixes for 3.23.22 sql/ChangeLog: Fixes for 3.23.22 sql/nt_servc.cc: Fixes for 3.23.22 sql/sql_class.cc: Fixes for 3.23.22 include/my_base.h: Fix for BDB and MERGE tables sql/ha_myisammrg.cc: Fix for BDB and MERGE tables Docs/LICENSE: Update for 3.23.22 config.sub: Update for ia64 Build-tools/Do-compile-all: ***MISSING WEAVE*** scripts/safe_mysqld.sh: Small bug fixes for 3.23.22 support-files/.cvsignore: Small bug fixes for 3.23.22 scripts/mysql_find_rows.sh: Critical bug fixes sql/sql_class.h: SHOW SLAVE STATUS, change in SHOW MASTER STATUS repl-tests/include/master-slave.inc: Replication test cases repl-tests/test-dump/run.test: Replication test cases repl-tests/test-dump/table-dump-check.master: Replication test cases repl-tests/test-dump/table-dump-select.master: Replication test cases repl-tests/test-repl-ts/repl-timestamp.master: Replication test cases repl-tests/test-repl-ts/run.test: Replication test cases repl-tests/test-repl/foo-dump-master.master: Replication test cases repl-tests/test-repl/foo-dump-slave.master: Replication test cases repl-tests/test-repl/run.test: Replication test cases repl-tests/test-repl/sum-wlen-master.master: Replication test cases repl-tests/test-repl/sum-wlen-slave.master: Replication test cases Images/.cvsignore: Update of div reported bugs include/config-win.h: Update of div reported bugs mysys/mf_pack.c: Update of div reported bugs sql/field.cc: Update of div reported bugs sql/field.h: Update of div reported bugs sql/ha_myisam.h: Update of div reported bugs sql/handler.h: Update of div reported bugs sql/item.cc: Update of div reported bugs sql/item_func.h: Update of div reported bugs sql/item_timefunc.cc: Update of div reported bugs sql/item_timefunc.h: Update of div reported bugs sql/sql_string.cc: Update of div reported bugs sql/sql_table.cc: Update of div reported bugs sql/structs.h: Update of div reported bugs sql/time.cc: Update of div reported bugs strings/ctype-gbk.c: Update of div reported bugs strings/ctype-tis620.c: Update of div reported bugs strings/r_strinstr.c: Update of div reported bugs strings/strnlen.c: Update of div reported bugs support-files/mysql.server.sh: Update of div reported bugs myisam/mi_locking.c: Small bug fixes myisam/myisamdef.h: Small bug fixes mysys/my_thr_init.c: Small bug fixes myisam/mi_close.c: Changed mutex THR_lock_isam -> THR_lock_myisam myisam/mi_create.c: Changed mutex THR_lock_isam -> THR_lock_myisam myisam/mi_extra.c: Changed mutex THR_lock_isam -> THR_lock_myisam myisam/mi_log.c: Changed mutex THR_lock_isam -> THR_lock_myisam myisam/mi_open.c: Changed mutex THR_lock_isam -> THR_lock_myisam myisam/mi_panic.c: Changed mutex THR_lock_isam -> THR_lock_myisam myisam/myisamchk.c: Changed mutex THR_lock_isam -> THR_lock_myisam sql/item_func.cc: Don't let MySQL use ft-keys in non-ft way sql/opt_range.cc: Don't let MySQL use ft-keys in non-ft way sql-bench/Results-linux/ATIS-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/RUN-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/alter-table-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/big-tables-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/connect-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/create-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/insert-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/select-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.13_SMP_alpha: ***MISSING WEAVE*** sql/share/italian/errmsg.sys: new translated error messages sql/share/italian/errmsg.txt: new translated error messages libmysql/errmsg.c: Fix to get 'Too big packet' error + fixes for Ia64 libmysql/libmysql.c: Fix to get 'Too big packet' error + fixes for Ia64 libmysql/net.c: Fix to get 'Too big packet' error + fixes for Ia64 include/errmsg.h: Fix to get 'Too big packet' mysql.proj: Update for 3.23.22 client/mysql.cc: Fix for rehash on reconnect (By Jeremey) readline/rlstdc.h: portability fixes sql/Makefile.am: Hack to force lex_hash.h to be generated sql/ha_berkeley.cc: Fixes for Berekely DB sql/handler.cc: Fixes for Berekely DB sql/item.h: Small fixes for 3.23.22 sql/net_serv.cc: Small fixes for 3.23.22 client/completion_hash.cc: Fixes for Ia64 sql/mini_client.cc: Fixes for Ia64 sql/sql_select.cc: Fixes for Ia64 .cvsignore: Update at work for release myisam/mi_check.c: Fix bug in ANALYZE TABLE sql/ha_myisam.cc: Fix bug in ANALYZE TABLE include/myisam.h: Fix bug in ANALYZE TABLE configure.in: Fix for AIX 4.3 Build-tools/Do-compile: Fix for local perl libraries sql/sql_show.cc: Fix for show processlist on SCO include/global.h: Fix for AIX 4.3 BUILD/compile-ia64-O0-sgicc: Last minute updates for 3.23.22 BUILD/compile-ia64-O0: Last minute updates for 3.23.22 BUILD/compile-ia64-O2-sgicc: Last minute updates for 3.23.22 BUILD/compile-ia64-O2: Last minute updates for 3.23.22 BUILD/compile-ia64-O6: Last minute updates for 3.23.22 Docs/manual.texi: Added paragraph in introduction pointing to SQL and MySQL books, for newbies. sql/gen_lex_hash.cc: CHANGE MASTER TO and other fixes sql/lex.h: CHANGE MASTER TO and other fixes sql/log.cc: CHANGE MASTER TO and other fixes sql/mysql_priv.h: CHANGE MASTER TO and other fixes sql/mysqld.cc: CHANGE MASTER TO and other fixes sql/net_pkg.cc: CHANGE MASTER TO and other fixes sql/slave.cc: CHANGE MASTER TO and other fixes sql/sql_base.cc: CHANGE MASTER TO and other fixes sql/sql_lex.h: CHANGE MASTER TO and other fixes sql/sql_parse.cc: CHANGE MASTER TO and other fixes sql/sql_yacc.yy: CHANGE MASTER TO and other fixes
Diffstat (limited to 'mit-pthreads/pthreads/fd_kern.c')
-rw-r--r--mit-pthreads/pthreads/fd_kern.c1950
1 files changed, 1950 insertions, 0 deletions
diff --git a/mit-pthreads/pthreads/fd_kern.c b/mit-pthreads/pthreads/fd_kern.c
new file mode 100644
index 00000000000..f4ada4e4fd4
--- /dev/null
+++ b/mit-pthreads/pthreads/fd_kern.c
@@ -0,0 +1,1950 @@
+/* ==== fd_kern.c ============================================================
+ * Copyright (c) 1993, 1994 by Chris Provenzano, proven@mit.edu
+ * 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 Chris Provenzano.
+ * 4. The name of Chris Provenzano may not be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO ``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 CHRIS PROVENZANO 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.
+ *
+ * Description : Deals with the valid kernel fds.
+ *
+ * 1.00 93/09/27 proven
+ * -Started coding this file.
+ *
+ * 1.01 93/11/13 proven
+ * -The functions readv() and writev() added.
+ */
+
+#ifndef lint
+static const char rcsid[] = "$Id$";
+#endif
+
+#include "config.h"
+#include <pthread.h>
+#include <unistd.h>
+#include <sys/compat.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/uio.h>
+#include <stdarg.h>
+#include <signal.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <pthread/posix.h>
+#include <string.h>
+
+#if defined (HAVE_SYSCALL_SENDTO) && !defined (HAVE_SYSCALL_SEND)
+
+pthread_ssize_t machdep_sys_send (int fd, const void *msg, size_t len,
+ int flags)
+{
+ return machdep_sys_sendto (fd, msg, len, flags,
+ (const struct sockaddr *) 0, 0);
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_RECVFROM) && !defined (HAVE_SYSCALL_RECV)
+
+pthread_ssize_t machdep_sys_recv (int fd, void *buf, size_t len, int flags)
+{
+ return machdep_sys_recvfrom (fd, buf, len, flags,
+ (struct sockaddr *) 0, (int *) 0);
+}
+
+#endif
+
+/* ==========================================================================
+ * Check if there is any signal with must be handled. Added by Monty
+ * This could be somewhat system dependent but it should work.
+ */
+
+static int fd_check_if_pending_signal(struct pthread *pthread)
+{
+ int i;
+ unsigned long *pending,*mask;
+ if (!pthread->sigcount)
+ return 0;
+ pending= (unsigned long*) &pthread->sigpending;
+ mask= (unsigned long*) &pthread->sigmask;
+
+ for (i=0 ; i < sizeof(pthread->sigpending)/sizeof(unsigned long); i++)
+ {
+ if (*pending && (*mask ^ (unsigned) ~0L))
+ return 1;
+ pending++;
+ mask++;
+ }
+ return 0;
+}
+
+/* ==========================================================================
+ * Variables used by both fd_kern_poll and fd_kern_wait
+ */
+struct pthread_queue fd_wait_read = PTHREAD_QUEUE_INITIALIZER;
+struct pthread_queue fd_wait_write = PTHREAD_QUEUE_INITIALIZER;
+struct pthread_queue fd_wait_select = PTHREAD_QUEUE_INITIALIZER;
+
+static struct timeval __fd_kern_poll_timeout = { 0, 0 }; /* Moved by monty */
+extern struct timeval __fd_kern_wait_timeout;
+extern volatile sig_atomic_t sig_to_process;
+
+/*
+ * ==========================================================================
+ * Do a select if there is someting to wait for.
+ * This is to a combination of the old fd_kern_poll() and fd_kern_wait()
+ * Return 1 if nothing to do.
+ */
+
+static int fd_kern_select(struct timeval *timeout)
+{
+ fd_set fd_set_read, fd_set_write, fd_set_except;
+ struct pthread *pthread, *deq;
+ int count, i;
+
+ if (!fd_wait_read.q_next && !fd_wait_write.q_next && !fd_wait_select.q_next)
+ return 1; /* Nothing to do */
+
+ FD_ZERO(&fd_set_read);
+ FD_ZERO(&fd_set_write);
+ FD_ZERO(&fd_set_except);
+ for (pthread = fd_wait_read.q_next; pthread; pthread = pthread->next)
+ FD_SET(pthread->data.fd.fd, &fd_set_read);
+ for (pthread = fd_wait_write.q_next; pthread; pthread = pthread->next)
+ FD_SET(pthread->data.fd.fd, &fd_set_write);
+ for (pthread = fd_wait_select.q_next; pthread; pthread = pthread->next)
+ {
+ for (i = 0; i < pthread->data.select_data->nfds; i++) {
+ if (FD_ISSET(i, &pthread->data.select_data->exceptfds))
+ FD_SET(i, &fd_set_except);
+ if (FD_ISSET(i, &pthread->data.select_data->writefds))
+ FD_SET(i, &fd_set_write);
+ if (FD_ISSET(i, &pthread->data.select_data->readfds))
+ FD_SET(i, &fd_set_read);
+ }
+ }
+
+ /* Turn off interrupts for real while we set the timer. */
+
+ if (timeout == &__fd_kern_wait_timeout)
+ { /* from fd_kern_wait() */
+ sigset_t sig_to_block, oset;
+ sigfillset(&sig_to_block);
+ machdep_sys_sigprocmask(SIG_BLOCK, &sig_to_block, &oset);
+
+ machdep_unset_thread_timer(NULL);
+ __fd_kern_wait_timeout.tv_usec = 0;
+ __fd_kern_wait_timeout.tv_sec = (sig_to_process) ? 0 : 3600;
+
+ machdep_sys_sigprocmask(SIG_UNBLOCK, &sig_to_block, &oset);
+ }
+ /*
+ * There is a small but finite chance that an interrupt will
+ * occure between the unblock and the select. Because of this
+ * sig_handler_real() sets the value of __fd_kern_wait_timeout
+ * to zero causing the select to do a poll instead of a wait.
+ */
+
+ while ((count = machdep_sys_select(dtablesize, &fd_set_read,
+ &fd_set_write, &fd_set_except,
+ timeout)) < OK)
+ {
+ if (count == -EINTR)
+ return 0;
+ PANIC();
+ }
+
+ for (pthread = fd_wait_read.q_next; pthread; ) {
+ if (count && FD_ISSET(pthread->data.fd.fd, &fd_set_read) ||
+ fd_check_if_pending_signal(pthread))
+ {
+ if (FD_ISSET(pthread->data.fd.fd, &fd_set_read))
+ count--;
+ deq = pthread;
+ pthread = pthread->next;
+ pthread_queue_remove(&fd_wait_read, deq);
+ if (SET_PF_DONE_EVENT(deq) == OK) {
+ pthread_prio_queue_enq(pthread_current_prio_queue, deq);
+ deq->state = PS_RUNNING;
+ }
+ continue;
+ }
+ pthread = pthread->next;
+ }
+
+ for (pthread = fd_wait_write.q_next; pthread; ) {
+ if (count && FD_ISSET(pthread->data.fd.fd, &fd_set_write) ||
+ fd_check_if_pending_signal(pthread))
+ {
+ if (FD_ISSET(pthread->data.fd.fd, &fd_set_read))
+ count--;
+ deq = pthread;
+ pthread = pthread->next;
+ pthread_queue_remove(&fd_wait_write, deq);
+ if (SET_PF_DONE_EVENT(deq) == OK) {
+ pthread_prio_queue_enq(pthread_current_prio_queue, deq);
+ deq->state = PS_RUNNING;
+ }
+ continue;
+ }
+ pthread = pthread->next;
+ }
+
+ for (pthread = fd_wait_select.q_next; pthread; )
+ {
+ int found_one=0; /* Loop fixed by monty */
+ if (count)
+ {
+ fd_set tmp_readfds, tmp_writefds, tmp_exceptfds;
+ memcpy(&tmp_readfds, &pthread->data.select_data->readfds,
+ sizeof(fd_set));
+ memcpy(&tmp_writefds, &pthread->data.select_data->writefds,
+ sizeof(fd_set));
+ memcpy(&tmp_exceptfds, &pthread->data.select_data->exceptfds,
+ sizeof(fd_set));
+
+ for (i = 0; i < pthread->data.select_data->nfds; i++) {
+ if (FD_ISSET(i, &tmp_exceptfds))
+ {
+ if (! FD_ISSET(i, &fd_set_except))
+ FD_CLR(i, &tmp_exceptfds);
+ else
+ found_one=1;
+ }
+ if (FD_ISSET(i, &tmp_writefds))
+ {
+ if (! FD_ISSET(i, &fd_set_write))
+ FD_CLR(i, &tmp_writefds);
+ else
+ found_one=1;
+ }
+ if (FD_ISSET(i, &tmp_readfds))
+ {
+ if (! FD_ISSET(i, &fd_set_read))
+ FD_CLR(i, &tmp_readfds);
+ else
+ found_one=1;
+ }
+ }
+ if (found_one)
+ {
+ memcpy(&pthread->data.select_data->readfds, &tmp_readfds,
+ sizeof(fd_set));
+ memcpy(&pthread->data.select_data->writefds, &tmp_writefds,
+ sizeof(fd_set));
+ memcpy(&pthread->data.select_data->exceptfds, &tmp_exceptfds,
+ sizeof(fd_set));
+ }
+ }
+ if (found_one || fd_check_if_pending_signal(pthread))
+ {
+ deq = pthread;
+ pthread = pthread->next;
+ pthread_queue_remove(&fd_wait_select, deq);
+ if (SET_PF_DONE_EVENT(deq) == OK) {
+ pthread_prio_queue_enq(pthread_current_prio_queue, deq);
+ deq->state = PS_RUNNING;
+ }
+ } else {
+ pthread = pthread->next;
+ }
+ }
+ return 0;
+}
+
+
+/* ==========================================================================
+ * fd_kern_poll()
+ *
+ * Called only from context_switch(). The kernel must be locked.
+ *
+ * This function uses a linked list of waiting pthreads, NOT a queue.
+ */
+
+void fd_kern_poll()
+{
+ fd_kern_select(&__fd_kern_poll_timeout);
+}
+
+
+/* ==========================================================================
+ * fd_kern_wait()
+ *
+ * Called when there is no active thread to run.
+ */
+
+void fd_kern_wait()
+{
+ if (fd_kern_select(&__fd_kern_wait_timeout))
+ /* No threads, waiting on I/O, do a sigsuspend */
+ sig_handler_pause();
+}
+
+
+/* ==========================================================================
+ * Special Note: All operations return the errno as a negative of the errno
+ * listed in errno.h
+ * ======================================================================= */
+
+/* ==========================================================================
+ * read()
+ */
+pthread_ssize_t __fd_kern_read(union fd_data fd_data, int flags, void *buf,
+ size_t nbytes, struct timespec * timeout)
+{
+ int fd = fd_data.i;
+ int ret;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ while ((ret = machdep_sys_read(fd, buf, nbytes)) < OK) {
+ if (!(flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDR_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd;
+ pthread_queue_enq(&fd_wait_read, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ SET_PF_AT_CANCEL_POINT(pthread_run);
+ pthread_resched_resume(PS_FDR_WAIT);
+ CLEAR_PF_AT_CANCEL_POINT(pthread_run);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ SET_ERRNO(ETIMEDOUT);
+ ret= NOTOK;
+ break;
+ }
+ pthread_sched_resume();
+ } else {
+ SET_PF_AT_CANCEL_POINT(pthread_run);
+ pthread_resched_resume(PS_FDR_WAIT);
+ CLEAR_PF_AT_CANCEL_POINT(pthread_run);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ SET_ERRNO(EINTR);
+ ret= NOTOK;
+ break;
+ }
+ } else {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ break;
+ }
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * readv()
+ */
+int __fd_kern_readv(union fd_data fd_data, int flags, const struct iovec *iov,
+ int iovcnt, struct timespec * timeout)
+{
+ int fd = fd_data.i;
+ int ret;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ while ((ret = machdep_sys_readv(fd, iov, iovcnt)) < OK) {
+ if (!(flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDR_WAIT */
+ pthread_run->data.fd.fd = fd;
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_queue_enq(&fd_wait_read, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ SET_PF_AT_CANCEL_POINT(pthread_run);
+ pthread_resched_resume(PS_FDW_WAIT);
+ CLEAR_PF_AT_CANCEL_POINT(pthread_run);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ SET_ERRNO(ETIMEDOUT);
+ ret = NOTOK;
+ break;
+ }
+ pthread_sched_resume();
+ } else {
+ SET_PF_AT_CANCEL_POINT(pthread_run);
+ pthread_resched_resume(PS_FDW_WAIT);
+ CLEAR_PF_AT_CANCEL_POINT(pthread_run);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ SET_ERRNO(EINTR);
+ ret= NOTOK;
+ break;
+ }
+ } else {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ break;
+ }
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * write()
+ */
+pthread_ssize_t __fd_kern_write(union fd_data fd_data, int flags,
+ const void *buf, size_t nbytes, struct timespec * timeout)
+{
+ int fd = fd_data.i;
+ int ret;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ while ((ret = machdep_sys_write(fd, buf, nbytes)) < OK) {
+ if (!(flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDW_WAIT */
+ pthread_run->data.fd.fd = fd;
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_queue_enq(&fd_wait_write, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ pthread_resched_resume(PS_FDW_WAIT);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ SET_ERRNO(ETIMEDOUT);
+ ret = NOTOK;
+ break;
+ }
+ pthread_sched_resume();
+ } else {
+ pthread_resched_resume(PS_FDW_WAIT);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ SET_ERRNO(EINTR);
+ ret= NOTOK;
+ break;
+ }
+ } else {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ break;
+ }
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * writev()
+ */
+int __fd_kern_writev(union fd_data fd_data, int flags, const struct iovec *iov,
+ int iovcnt, struct timespec * timeout)
+{
+ int fd = fd_data.i;
+ int ret;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ while ((ret = machdep_sys_writev(fd, iov, iovcnt)) < OK) {
+ if (!(flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDW_WAIT */
+ pthread_run->data.fd.fd = fd;
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_queue_enq(&fd_wait_write, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ pthread_resched_resume(PS_FDW_WAIT);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ SET_ERRNO(ETIMEDOUT);
+ ret = NOTOK;
+ break;
+ }
+ pthread_sched_resume();
+ } else {
+ pthread_resched_resume(PS_FDW_WAIT);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ SET_ERRNO(EINTR);
+ ret= NOTOK;
+ break;
+ }
+ } else {
+ break;
+ }
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * For blocking version we really should set an interrupt
+ * fcntl()
+ */
+int __fd_kern_fcntl(union fd_data fd_data, int flags, int cmd, int arg)
+{
+ int fd = fd_data.i;
+
+ return(machdep_sys_fcntl(fd, cmd, arg));
+}
+
+/* ==========================================================================
+ * close()
+ */
+int __fd_kern_close(union fd_data fd_data, int flags)
+{
+ int fd = fd_data.i;
+
+ return(machdep_sys_close(fd));
+}
+
+/* ==========================================================================
+ * lseek()
+ * Assume that error number is in the range 0- 255 to get bigger
+ * range of seek. ; Monty
+ */
+off_t __fd_kern_lseek(union fd_data fd_data, int f, off_t offset, int whence)
+{
+ int fd = fd_data.i;
+ extern off_t machdep_sys_lseek(int, off_t, int);
+ off_t ret=machdep_sys_lseek(fd, offset, whence);
+ if ((long) ret < 0L && (long) ret >= -255L)
+ {
+ SET_ERRNO(ret);
+ ret= NOTOK;
+ }
+ return ret;
+}
+
+/*
+ * File descriptor operations
+ */
+extern machdep_sys_close();
+
+/* Normal file operations */
+static struct fd_ops __fd_kern_ops = {
+ __fd_kern_write, __fd_kern_read, __fd_kern_close, __fd_kern_fcntl,
+ __fd_kern_writev, __fd_kern_readv, __fd_kern_lseek, 1
+};
+
+/* NFS file opperations */
+
+/* FIFO file opperations */
+
+/* Device operations */
+
+/* ==========================================================================
+ * open()
+ *
+ * Because open could potentially block opening a file from a remote
+ * system, we want to make sure the call will timeout. We then try and open
+ * the file, and stat the file to determine what operations we should
+ * associate with the fd.
+ *
+ * This is not done yet
+ *
+ * A regular file on the local system needs no special treatment.
+ */
+int open(const char *path, int flags, ...)
+{
+ int fd, mode, fd_kern;
+ struct stat stat_buf;
+ va_list ap;
+
+ /* If pthread scheduling == FIFO set a virtual timer */
+ if (flags & O_CREAT) {
+ va_start(ap, flags);
+ mode = va_arg(ap, int);
+ va_end(ap);
+ } else {
+ mode = 0;
+ }
+
+ if (!((fd = fd_allocate()) < OK)) {
+ fd_table[fd]->flags = flags;
+ flags |= __FD_NONBLOCK;
+
+ if (!((fd_kern = machdep_sys_open(path, flags, mode)) < OK)) {
+
+ /* fstat the file to determine what type it is */
+ if (machdep_sys_fstat(fd_kern, &stat_buf)) {
+ PANIC();
+ }
+ if (S_ISREG(stat_buf.st_mode)) {
+ fd_table[fd]->ops = &(__fd_kern_ops);
+ fd_table[fd]->type = FD_HALF_DUPLEX;
+ } else {
+ fd_table[fd]->ops = &(__fd_kern_ops);
+ fd_table[fd]->type = FD_FULL_DUPLEX;
+ }
+ fd_table[fd]->fd.i = fd_kern;
+ return(fd);
+ }
+
+ fd_table[fd]->count = 0;
+ SET_ERRNO(-fd_kern);
+ }
+ return(NOTOK);
+}
+
+/* ==========================================================================
+ * create()
+ */
+int create(const char *path, mode_t mode)
+{
+ return creat (path, mode);
+}
+
+/* ==========================================================================
+ * creat()
+ */
+#undef creat
+
+int creat(const char *path, mode_t mode)
+{
+ return open (path, O_CREAT | O_TRUNC | O_WRONLY, mode);
+}
+
+/* ==========================================================================
+ * fchown()
+ */
+int fchown(int fd, uid_t owner, gid_t group)
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_WRITE, NULL)) == OK) {
+ if ((ret = machdep_sys_fchown(fd_table[fd]->fd.i, owner, group)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_WRITE);
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * fchmod()
+ */
+int fchmod(int fd, mode_t mode)
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_WRITE, NULL)) == OK) {
+ if ((ret = machdep_sys_fchmod(fd_table[fd]->fd.i, mode)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_WRITE);
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * ftruncate()
+ */
+int ftruncate(int fd, off_t length)
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_WRITE, NULL)) == OK) {
+ if ((ret = machdep_sys_ftruncate(fd_table[fd]->fd.i, length)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_WRITE);
+ }
+ return(ret);
+}
+
+#if defined (HAVE_SYSCALL_FLOCK)
+/* ==========================================================================
+ * flock()
+ *
+ * Added (mevans)
+ */
+int flock(int fd, int operation)
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_RDWR, NULL)) == OK) {
+ if ((ret = machdep_sys_flock(fd_table[fd]->fd.i,
+ operation)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+ return(ret);
+}
+#endif
+
+/* ==========================================================================
+ * pipe()
+ */
+int pipe(int fds[2])
+{
+ int kfds[2];
+ int ret;
+
+ if ((fds[0] = fd_allocate()) >= OK) {
+ if ((fds[1] = fd_allocate()) >= OK) {
+ if ((ret = machdep_sys_pipe(kfds)) >= OK) {
+ fd_table[fds[0]]->flags = machdep_sys_fcntl(kfds[0], F_GETFL, NULL);
+ machdep_sys_fcntl(kfds[0], F_SETFL, fd_table[fds[0]]->flags | __FD_NONBLOCK);
+ fd_table[fds[1]]->flags = machdep_sys_fcntl(kfds[1], F_GETFL, NULL);
+ machdep_sys_fcntl(kfds[1], F_SETFL, fd_table[fds[1]]->flags | __FD_NONBLOCK);
+
+ fd_table[fds[0]]->ops = &(__fd_kern_ops);
+ fd_table[fds[1]]->ops = &(__fd_kern_ops);
+
+ /* Not really full duplex but ... */
+ fd_table[fds[0]]->type = FD_FULL_DUPLEX;
+ fd_table[fds[1]]->type = FD_FULL_DUPLEX;
+
+ fd_table[fds[0]]->fd.i = kfds[0];
+ fd_table[fds[1]]->fd.i = kfds[1];
+
+ return(OK);
+ } else {
+ SET_ERRNO(-ret);
+ }
+ fd_table[fds[1]]->count = 0;
+ }
+ fd_table[fds[0]]->count = 0;
+ }
+ return(NOTOK);
+}
+
+/* ==========================================================================
+ * fd_kern_reset()
+ * Change the fcntl blocking flag back to NONBLOCKING. This should only
+ * be called after a fork.
+ */
+void fd_kern_reset(int fd)
+{
+ switch (fd_table[fd]->type) {
+ case FD_TEST_HALF_DUPLEX:
+ machdep_sys_fcntl(fd_table[fd]->fd.i, F_SETFL,
+ fd_table[fd]->flags | __FD_NONBLOCK);
+ fd_table[fd]->type = FD_HALF_DUPLEX;
+ break;
+ case FD_TEST_FULL_DUPLEX:
+ machdep_sys_fcntl(fd_table[fd]->fd.i, F_SETFL,
+ fd_table[fd]->flags | __FD_NONBLOCK);
+ fd_table[fd]->type = FD_FULL_DUPLEX;
+ break;
+ default:
+ break;
+ }
+}
+
+/* ==========================================================================
+ * fd_kern_init()
+ *
+ * Assume the entry is locked before routine is invoked
+ *
+ * This may change. The problem is setting the fd to nonblocking changes
+ * the parents fd too, which may not be the desired result.
+ *
+ * New added feature: If the fd in question is a tty then we open it again
+ * and close the original, this way we don't have to worry about the
+ * fd being NONBLOCKING to the outside world.
+ */
+void fd_kern_init(int fd)
+{
+ if ((fd_table[fd]->flags = machdep_sys_fcntl(fd, F_GETFL, NULL)) >= OK) {
+ if (isatty_basic(fd)) {
+ int new_fd;
+
+ if ((new_fd = machdep_sys_open(__ttyname_basic(fd), O_RDWR)) >= OK){
+ if (machdep_sys_dup2(new_fd, fd) == OK) {
+ /* Should print a warning */
+
+ /* Should also set the flags to that of opened outside of
+ process */
+ }
+ machdep_sys_close(new_fd);
+ }
+ }
+ /* We do these things regaurdless of the above results */
+ machdep_sys_fcntl(fd, F_SETFL, fd_table[fd]->flags | __FD_NONBLOCK);
+ fd_table[fd]->ops = &(__fd_kern_ops);
+ fd_table[fd]->type = FD_HALF_DUPLEX;
+ fd_table[fd]->fd.i = fd;
+ fd_table[fd]->count = 1;
+
+ }
+}
+
+/* ==========================================================================
+ * fd_kern_gettableentry()
+ *
+ * Remember only return a a file descriptor that I will modify later.
+ * Don't return file descriptors that aren't owned by the child, or don't
+ * have kernel operations.
+ */
+static int fd_kern_gettableentry(const int child, int fd)
+{
+ int i;
+
+ for (i = 0; i < dtablesize; i++) {
+ if (fd_table[i]) {
+ if (fd_table[i]->fd.i == fd) {
+ if (child) {
+ if ((fd_table[i]->type != FD_TEST_HALF_DUPLEX) &&
+ (fd_table[i]->type != FD_TEST_FULL_DUPLEX)) {
+ continue;
+ }
+ } else {
+ if ((fd_table[i]->type == FD_NT) ||
+ (fd_table[i]->type == FD_NIU)) {
+ continue;
+ }
+ }
+ /* Is it a kernel fd ? */
+ if ((!fd_table[i]->ops) ||
+ (fd_table[i]->ops->use_kfds != 1)) {
+ continue;
+ }
+ return(i);
+ }
+ }
+ }
+ return(NOTOK);
+}
+
+/* ==========================================================================
+ * fd_kern_exec()
+ *
+ * Fixup the fd_table such that (fd == fd_table[fd]->fd.i) this way
+ * the new immage will be OK.
+ *
+ * Only touch those that won't be used by the parent if we're in a child
+ * otherwise fixup all.
+ *
+ * Returns:
+ * 0 no fixup necessary
+ * 1 fixup without problems
+ * 2 failed fixup on some descriptors, and clobbered them.
+ */
+int fd_kern_exec(const int child)
+{
+ int ret = 0;
+ int fd, i;
+
+ for (fd = 0; fd < dtablesize; fd++) {
+ if (fd_table[fd] == NULL) {
+ continue;
+ }
+ /* Is the fd already in use ? */
+ if (child) {
+ if ((fd_table[fd]->type != FD_TEST_HALF_DUPLEX) &&
+ (fd_table[fd]->type != FD_TEST_FULL_DUPLEX)) {
+ continue;
+ }
+ } else {
+ if ((fd_table[fd]->type == FD_NT) ||
+ (fd_table[fd]->type == FD_NIU)) {
+ continue;
+ }
+ }
+ /* Is it a kernel fd ? */
+ if ((!fd_table[fd]->ops) ||
+ (fd_table[fd]->ops->use_kfds != 1)) {
+ continue;
+ }
+ /* Does it match ? */
+ if (fd_table[fd]->fd.i == fd) {
+ continue;
+ }
+ /* OK, fixup entry: Read comments before changing. This isn't obvious */
+
+ /* i is the real file descriptor fd currently represents */
+ if (((i = fd_table[fd]->fd.i) >= dtablesize) || (i < 0)) {
+ /* This should never happen */
+ PANIC();
+ }
+
+ /*
+ * if the real file descriptor with the same number as the fake file
+ * descriptor number fd is actually in use by the program, we have
+ * to move it out of the way
+ */
+ if ((machdep_sys_fcntl(fd, F_GETFL, NULL)) >= OK) {
+ /* fd is busy */
+ int j;
+
+ /*
+ * j is the fake file descriptor that represents the real file
+ * descriptor that we want to move. This way the fake file
+ * descriptor fd can move its real file descriptor i such that
+ * fd == i.
+ */
+ if ((j = fd_kern_gettableentry(child, fd)) >= OK) {
+
+ /*
+ * Since j represents a fake file descriptor and fd represents
+ * a fake file descriptor. If j < fd then a previous pass
+ * should have set fd_table[j]->fd.i == j.
+ */
+ if (fd < j) {
+ if ((fd_table[j]->fd.i = machdep_sys_dup(fd)) < OK) {
+ /* Close j, there is nothing else we can do */
+ fd_table[j]->type = FD_NIU;
+ ret = 2;
+ }
+ } else {
+ /* This implies fd_table[j]->fd.i != j */
+ PANIC();
+ }
+ }
+ }
+
+ /*
+ * Here the real file descriptor i is set to equel the fake file
+ * descriptor fd
+ */
+ machdep_sys_dup2(i, fd);
+
+ /*
+ * Now comes the really complicated part: UNDERSTAND before changing
+ *
+ * Here are the things this routine wants to do ...
+ *
+ * Case 1. The real file descriptor has only one fake file descriptor
+ * representing it.
+ * fd -> i, fd != i ===> fd -> fd, close(i)
+ * Example fd = 4, i = 2: then close(2), set fd -> i = 4
+ *
+ * Case 2. The real file descriptor has more than one fake file
+ * descriptor representing it, and this is the first fake file
+ * descriptor representing the real file descriptor
+ * fd -> i, fd' -> i, fd != i ===> fd -> fd, fd' -> fd, close(i)
+ *
+ * The problem is achiving the above is very messy and difficult,
+ * but I should be able to take a short cut. If fd > i then there
+ * will be no need to ever move i, this is because the fake file
+ * descriptor foo that we would have wanted to represent the real
+ * file descriptor i has already been processed. If fd < i then by
+ * moving i to fd all subsequent fake file descriptors fd' should fall
+ * into the previous case and won't need aditional adjusting.
+ *
+ * Does this break the above fd < j check .... It shouldn't because j
+ * is a fake file descriptor and if j < fd then j has already moved
+ * its real file descriptor foo such that foo <= j therefore foo < fd
+ * and not foo == fd therefor j cannot represent the real
+ * filedescriptor that fd want to move to and be less than fd
+ */
+ if (fd < i) {
+ fd_table[fd]->fd.i = fd;
+ machdep_sys_close(i);
+ }
+ if (ret < 1) {
+ ret = 1;
+ }
+ }
+}
+
+/* ==========================================================================
+ * fd_kern_fork()
+ */
+void fd_kern_fork()
+{
+ pthread_mutex_t *mutex;
+ int fd;
+
+ for (fd = 0; fd < dtablesize; fd++) {
+ if (fd_table[fd] == NULL) {
+ continue;
+ }
+ mutex = & (fd_table[fd]->mutex);
+ if (pthread_mutex_trylock(mutex)) {
+ continue;
+ }
+ if ((fd_table[fd]->r_owner) || (fd_table[fd]->w_owner)) {
+ pthread_mutex_unlock(mutex);
+ continue;
+ }
+ /* Is it a kernel fd ? */
+ if ((!fd_table[fd]->ops) || (fd_table[fd]->ops->use_kfds != 1)) {
+ pthread_mutex_unlock(mutex);
+ continue;
+ }
+ switch (fd_table[fd]->type) {
+ case FD_HALF_DUPLEX:
+ machdep_sys_fcntl(fd_table[fd]->fd.i, F_SETFL, fd_table[fd]->flags);
+ fd_table[fd]->type = FD_TEST_HALF_DUPLEX;
+ break;
+ case FD_FULL_DUPLEX:
+ machdep_sys_fcntl(fd_table[fd]->fd.i, F_SETFL, fd_table[fd]->flags);
+ fd_table[fd]->type = FD_TEST_FULL_DUPLEX;
+ break;
+ default:
+ break;
+ }
+ pthread_mutex_unlock(mutex);
+ }
+}
+
+/* ==========================================================================
+ * Here are the berkeley socket functions. These are not POSIX.
+ * ======================================================================= */
+
+#if defined (HAVE_SYSCALL_SOCKET) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * socket()
+ */
+int socket(int af, int type, int protocol)
+{
+ int fd, fd_kern;
+
+ if (!((fd = fd_allocate()) < OK)) {
+
+ if (!((fd_kern = machdep_sys_socket(af, type, protocol)) < OK)) {
+ int tmp_flags;
+
+ tmp_flags = machdep_sys_fcntl(fd_kern, F_GETFL, 0);
+ machdep_sys_fcntl(fd_kern, F_SETFL, tmp_flags | __FD_NONBLOCK);
+
+ /* Should fstat the file to determine what type it is */
+ fd_table[fd]->ops = & __fd_kern_ops;
+ fd_table[fd]->type = FD_FULL_DUPLEX;
+ fd_table[fd]->fd.i = fd_kern;
+ fd_table[fd]->flags = tmp_flags;
+ return(fd);
+ }
+
+ fd_table[fd]->count = 0;
+ SET_ERRNO(-fd_kern);
+ }
+ return(NOTOK);
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_BIND) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * bind()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+int bind(int fd, const struct sockaddr *name, socklen_t namelen)
+#else
+int bind(int fd, const struct sockaddr *name, int namelen)
+#endif
+{
+ /* Not much to do in bind */
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_RDWR, NULL)) == OK) {
+ if ((ret = machdep_sys_bind(fd_table[fd]->fd.i, name, namelen)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+ return(ret);
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_CONNECT) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * connect()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+int connect(int fd, const struct sockaddr *name, socklen_t namelen)
+#else
+int connect(int fd, const struct sockaddr *name, int namelen)
+#endif
+{
+ struct sockaddr tmpname;
+ int ret, tmpnamelen;
+
+ if ((ret = fd_lock(fd, FD_RDWR, NULL)) == OK) {
+ if ((ret = machdep_sys_connect(fd_table[fd]->fd.i, name, namelen)) < OK) {
+ if (!(fd_table[fd]->flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EINPROGRESS) ||
+ (ret == -EALREADY) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDW_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd_table[fd]->fd.i;
+ pthread_queue_enq(&fd_wait_write, pthread_run);
+
+ pthread_resched_resume(PS_FDW_WAIT);
+ CLEAR_PF_DONE_EVENT(pthread_run);
+
+ tmpnamelen = sizeof(tmpname);
+ /* OK now lets see if it really worked */
+ if (((ret = machdep_sys_getpeername(fd_table[fd]->fd.i,
+ &tmpname, &tmpnamelen)) < OK) &&
+ (ret == -ENOTCONN))
+ {
+ /* Get the error, this function should not fail */
+ machdep_sys_getsockopt(fd_table[fd]->fd.i, SOL_SOCKET,
+ SO_ERROR, &ret, &tmpnamelen);
+ SET_ERRNO(ret); /* ret is already positive (mevans) */
+ ret = NOTOK;
+ }
+ } else {
+ if (ret < 0)
+ {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ }
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+ return(ret);
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_ACCEPT) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * accept()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+int accept(int fd, struct sockaddr *name, socklen_t *namelen)
+#else
+int accept(int fd, struct sockaddr *name, int *namelen)
+#endif
+{
+ int ret, fd_kern;
+
+ if ((ret = fd_lock(fd, FD_RDWR, NULL)) == OK) {
+ while ((fd_kern = machdep_sys_accept(fd_table[fd]->fd.i, name, namelen)) < OK) {
+ if (!(fd_table[fd]->flags & __FD_NONBLOCK) &&
+ ((fd_kern == -EWOULDBLOCK) || (fd_kern == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDR_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd_table[fd]->fd.i;
+ pthread_queue_enq(&fd_wait_read, pthread_run);
+
+ pthread_resched_resume(PS_FDR_WAIT);
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ } else {
+ fd_unlock(fd, FD_RDWR);
+ SET_ERRNO(-fd_kern);
+ return(NOTOK);
+ }
+ }
+ fd_unlock(fd, FD_RDWR);
+
+ if (!((ret = fd_allocate()) < OK)) {
+
+ /* This may be unnecessary */
+ machdep_sys_fcntl(fd_kern, F_SETFL, __FD_NONBLOCK);
+
+ /* Should fstat the file to determine what type it is */
+ fd_table[ret]->ops = & __fd_kern_ops;
+ fd_table[ret]->type = FD_FULL_DUPLEX;
+ fd_table[ret]->fd.i = fd_kern;
+
+ /* XXX Flags should be the same as those on the listening fd */
+ fd_table[ret]->flags = fd_table[fd]->flags;
+ }
+ }
+ return(ret);
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_LISTEN) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * listen()
+ */
+int listen(int fd, int backlog)
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_RDWR, NULL)) == OK) {
+ if ((ret = machdep_sys_listen(fd_table[fd]->fd.i, backlog)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+ return(ret);
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_SEND) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * send_timedwait()
+ */
+ssize_t send_timedwait(int fd, const void * msg, size_t len, int flags,
+ struct timespec * timeout)
+{
+ int ret;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ if ((ret = fd_lock(fd, FD_WRITE, timeout)) == OK) {
+ while ((ret = machdep_sys_send(fd_table[fd]->fd.i,
+ msg, len, flags)) < OK)
+ {
+ if (!(fd_table[fd]->flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN)))
+ {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDW_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd_table[fd]->fd.i;
+ pthread_queue_enq(&fd_wait_write, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ pthread_resched_resume(PS_FDW_WAIT);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ ret = -ETIMEDOUT;
+ break;
+ }
+ pthread_sched_resume();
+ } else {
+ pthread_resched_resume(PS_FDW_WAIT);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ ret= -EINTR;
+ break;
+ }
+ } else {
+ break;
+ }
+ }
+ fd_unlock(fd, FD_WRITE);
+ }
+ if (ret < 0)
+ {
+ SET_ERRNO(-ret);
+ return(NOTOK);
+ }
+ return ret;
+}
+
+/* ==========================================================================
+ * send()
+ */
+ssize_t send(int fd, const void * msg, size_t len, int flags)
+{
+ return(send_timedwait(fd, msg, len, flags, NULL));
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_SENDTO) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * sendto_timedwait()
+ */
+ssize_t sendto_timedwait(int fd, const void * msg, size_t len,
+ int flags, const struct sockaddr *to, int to_len,
+ struct timespec * timeout)
+{
+ int ret;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ if ((ret = fd_lock(fd, FD_WRITE, timeout)) == OK) {
+ while ((ret = machdep_sys_sendto(fd_table[fd]->fd.i,
+ msg, len, flags, to, to_len)) < OK) {
+ if (!(fd_table[fd]->flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDW_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd_table[fd]->fd.i;
+ pthread_queue_enq(&fd_wait_write, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ pthread_resched_resume(PS_FDW_WAIT);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ ret= -ETIMEDOUT;
+ break;
+ }
+ pthread_sched_resume();
+ } else {
+ pthread_resched_resume(PS_FDW_WAIT);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ ret= -EINTR;
+ break;
+ }
+ }
+ else
+ break; /* ret contains the errorcode */
+ }
+ fd_unlock(fd, FD_WRITE);
+ }
+ if (ret < 0)
+ {
+ SET_ERRNO(-ret);
+ return(NOTOK);
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * sendto()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+ssize_t sendto(int fd, const void * msg, size_t len, int flags,
+ const struct sockaddr *to, socklen_t to_len)
+#else
+ssize_t sendto(int fd, const void * msg, size_t len, int flags,
+ const struct sockaddr *to, int to_len)
+#endif
+{
+ return(sendto_timedwait(fd, msg, len, flags, to, to_len, NULL));
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_SENDMSG) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * sendmsg_timedwait()
+ */
+ssize_t sendmsg_timedwait(int fd, const struct msghdr *msg, int flags,
+ struct timespec * timeout)
+{
+ int passed_fd, ret, i;
+
+ /* Handle getting the real file descriptor */
+ for(i = 0; i < (((struct omsghdr *)msg)->msg_accrightslen/sizeof(i)); i++) {
+ passed_fd = *(((int *)((struct omsghdr *)msg)->msg_accrights) + i);
+ if ((ret = fd_lock(passed_fd, FD_RDWR, NULL)) == OK) {
+ *(((int *)((struct omsghdr *)msg)->msg_accrights) + i)
+ = fd_table[passed_fd]->fd.i;
+ machdep_sys_fcntl(fd_table[passed_fd]->fd.i, F_SETFL,
+ fd_table[passed_fd]->flags);
+ switch(fd_table[passed_fd]->type) {
+ case FD_TEST_FULL_DUPLEX:
+ case FD_TEST_HALF_DUPLEX:
+ break;
+ case FD_FULL_DUPLEX:
+ fd_table[passed_fd]->type = FD_TEST_FULL_DUPLEX;
+ break;
+ case FD_HALF_DUPLEX:
+ fd_table[passed_fd]->type = FD_TEST_HALF_DUPLEX;
+ break;
+ default:
+ PANIC();
+ }
+ } else {
+ fd_unlock(fd, FD_RDWR);
+ SET_ERRNO(EBADF);
+ return(NOTOK);
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+
+ pthread_run->sighandled=0; /* Added by monty */
+ if ((ret = fd_lock(fd, FD_WRITE, timeout)) == OK) {
+ while((ret = machdep_sys_sendmsg(fd_table[fd]->fd.i, msg, flags)) < OK){
+ if (!(fd_table[fd]->flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDW_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd_table[fd]->fd.i;
+ pthread_queue_enq(&fd_wait_write, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ pthread_resched_resume(PS_FDW_WAIT);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ SET_ERRNO(ETIMEDOUT);
+ ret = NOTOK;
+ break;
+ }
+ pthread_sched_resume();
+
+ } else {
+ pthread_resched_resume(PS_FDW_WAIT);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ SET_ERRNO(EINTR);
+ ret= NOTOK;
+ break;
+ }
+
+ } else {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ break;
+ }
+ }
+ fd_unlock(fd, FD_WRITE);
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * sendmsg()
+ */
+ssize_t sendmsg(int fd, const struct msghdr *msg, int flags)
+{
+ return(sendmsg_timedwait(fd, msg, flags, NULL));
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_RECV) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * recv_timedwait()
+ */
+ssize_t recv_timedwait(int fd, void * buf, size_t len, int flags,
+ struct timespec * timeout)
+{
+ int ret;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ if ((ret = fd_lock(fd, FD_READ, timeout)) == OK) {
+ while ((ret = machdep_sys_recv(fd_table[fd]->fd.i,
+ buf, len, flags)) < OK) {
+ if (!(fd_table[fd]->flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDR_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd_table[fd]->fd.i;
+ pthread_queue_enq(&fd_wait_read, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ pthread_resched_resume(PS_FDR_WAIT);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ ret = -ETIMEDOUT;
+ break;
+ }
+ pthread_sched_resume();
+ } else {
+ pthread_resched_resume(PS_FDR_WAIT);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ ret= -EINTR;
+ break;
+ }
+
+ } else {
+ break;
+ }
+ }
+ fd_unlock(fd, FD_READ);
+ }
+ if (ret < 0)
+ {
+ SET_ERRNO(-ret);
+ return(NOTOK);
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * recv()
+ */
+ssize_t recv(int fd, void * buf, size_t len, int flags)
+{
+ return(recv_timedwait(fd, buf, len, flags, NULL));
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_RECVFROM) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * recvfrom_timedwait()
+ */
+ssize_t recvfrom_timedwait(int fd, void * buf, size_t len, int flags,
+ struct sockaddr * from, int * from_len,
+ struct timespec * timeout)
+{
+ int ret;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ if ((ret = fd_lock(fd, FD_READ, timeout)) == OK) {
+ while ((ret = machdep_sys_recvfrom(fd_table[fd]->fd.i,
+ buf, len, flags, from, from_len)) < OK) {
+ if (!(fd_table[fd]->flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDR_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd_table[fd]->fd.i;
+ pthread_queue_enq(&fd_wait_read, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ pthread_resched_resume(PS_FDR_WAIT);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ ret= -ETIMEDOUT;
+ break;
+ }
+ pthread_sched_resume();
+
+ } else {
+ pthread_resched_resume(PS_FDR_WAIT);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ ret= -EINTR;
+ break;
+ }
+ } else {
+ break;
+ }
+ }
+ fd_unlock(fd, FD_READ);
+ }
+ if (ret < 0)
+ {
+ SET_ERRNO(-ret);
+ return(NOTOK);
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * recvfrom()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+ssize_t recvfrom(int fd, void * buf, size_t len, int flags,
+ struct sockaddr * from, socklen_t * from_len)
+#else
+ssize_t recvfrom(int fd, void * buf, size_t len, int flags,
+ struct sockaddr * from, int * from_len)
+#endif
+{
+ return(recvfrom_timedwait(fd, buf, len, flags, from, from_len, NULL));
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_RECVMSG) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * recvmsg_timedwait()
+ */
+ssize_t recvmsg_timedwait(int fd, struct msghdr *msg, int flags,
+ struct timespec * timeout)
+{
+ struct stat stat_buf;
+ int passed_fd, ret, i;
+
+ pthread_run->sighandled=0; /* Added by monty */
+ if ((ret = fd_lock(fd, FD_READ, timeout)) == OK) {
+ while ((ret = machdep_sys_recvmsg(fd_table[fd]->fd.i, msg, flags)) < OK) {
+ if (!(fd_table[fd]->flags & __FD_NONBLOCK) &&
+ ((ret == -EWOULDBLOCK) || (ret == -EAGAIN))) {
+ pthread_sched_prevent();
+
+ /* queue pthread for a FDR_WAIT */
+ SET_PF_WAIT_EVENT(pthread_run);
+ pthread_run->data.fd.fd = fd_table[fd]->fd.i;
+ pthread_queue_enq(&fd_wait_read, pthread_run);
+
+ if (timeout) {
+ /* get current time */
+ struct timespec current_time;
+ machdep_gettimeofday(&current_time);
+ sleep_schedule(&current_time, timeout);
+
+ pthread_resched_resume(PS_FDR_WAIT);
+
+ /* We're awake */
+ pthread_sched_prevent();
+ if (sleep_cancel(pthread_run) == NOTOK) {
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ pthread_sched_resume();
+ SET_ERRNO(ETIMEDOUT);
+ ret = NOTOK;
+ break;
+ }
+ pthread_sched_resume();
+
+ } else {
+ pthread_resched_resume(PS_FDR_WAIT);
+ }
+ CLEAR_PF_DONE_EVENT(pthread_run);
+ if (pthread_run->sighandled) /* Added by monty */
+ { /* We where aborted */
+ SET_ERRNO(EINTR);
+ ret= NOTOK;
+ break;
+ }
+ } else {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ break;
+ }
+ }
+ fd_unlock(fd, FD_READ);
+
+ /* Handle getting the real file descriptor */
+ for (i = 0; i < (((struct omsghdr *)msg)->msg_accrightslen / sizeof(i));
+ i++) {
+ passed_fd = *(((int *)((struct omsghdr *)msg)->msg_accrights) + i);
+ if (!((fd = fd_allocate()) < OK)) {
+ fd_table[fd]->flags = machdep_sys_fcntl(passed_fd, F_GETFL);
+
+ if (!( fd_table[fd]->flags & __FD_NONBLOCK)) {
+ machdep_sys_fcntl(passed_fd, F_SETFL,
+ fd_table[fd]->flags | __FD_NONBLOCK);
+ }
+
+ /* fstat the file to determine what type it is */
+ machdep_sys_fstat(passed_fd, &stat_buf);
+ if (S_ISREG(stat_buf.st_mode)) {
+ fd_table[fd]->type = FD_HALF_DUPLEX;
+ } else {
+ fd_table[fd]->type = FD_FULL_DUPLEX;
+ }
+ *(((int *)((struct omsghdr *)msg)->msg_accrights) + i) = fd;
+ fd_table[fd]->ops = &(__fd_kern_ops);
+ fd_table[fd]->fd.i = passed_fd;
+ } else {
+ SET_ERRNO(EBADF);
+ return(NOTOK);
+ break;
+ }
+ }
+ }
+ return(ret);
+}
+
+/* ==========================================================================
+ * recvmsg()
+ */
+ssize_t recvmsg(int fd, struct msghdr *msg, int flags)
+{
+ return(recvmsg_timedwait(fd, msg, flags, NULL));
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_SHUTDOWN) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * shutdown()
+ */
+int shutdown(int fd, int how)
+{
+ int ret;
+
+ switch(how) {
+ case 0: /* Read */
+ if ((ret = fd_lock(fd, FD_READ, NULL)) == OK) {
+ if ((ret = machdep_sys_shutdown(fd_table[fd]->fd.i, how)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_READ);
+ }
+ case 1: /* Write */
+ if ((ret = fd_lock(fd, FD_WRITE, NULL)) == OK) {
+ if ((ret = machdep_sys_shutdown(fd_table[fd]->fd.i, how)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_WRITE);
+ }
+ case 2: /* Read-Write */
+ if ((ret = fd_lock(fd, FD_RDWR, NULL)) == OK) {
+ if ((ret = machdep_sys_shutdown(fd_table[fd]->fd.i, how)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+ default:
+ SET_ERRNO(EBADF);
+ ret = NOTOK;
+ break;
+ }
+ return(ret);
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_SETSOCKOPT) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * setsockopt()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+int setsockopt(int fd, int level, int optname, const void * optval, socklen_t optlen)
+#else
+int setsockopt(int fd, int level, int optname, const void * optval, int optlen)
+#endif
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_RDWR, NULL)) == OK) {
+ if ((ret = machdep_sys_setsockopt(fd_table[fd]->fd.i, level,
+ optname, optval, optlen)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+ return ret;
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_GETSOCKOPT) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * getsockopt()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+int getsockopt(int fd, int level, int optname, void * optval, socklen_t * optlen)
+#else
+int getsockopt(int fd, int level, int optname, void * optval, int * optlen)
+#endif
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_READ, NULL)) == OK) {
+ if ((ret = machdep_sys_getsockopt(fd_table[fd]->fd.i, level,
+ optname, optval, optlen)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+ return ret;
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_GETSOCKOPT) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * getsockname()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+int getsockname(int fd, struct sockaddr * name, socklen_t * naddrlen)
+#else
+int getsockname(int fd, struct sockaddr * name, int * naddrlen)
+#endif
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_READ, NULL)) == OK) {
+ if ((ret = machdep_sys_getsockname(fd_table[fd]->fd.i,
+ name, naddrlen)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_RDWR);
+ }
+ return ret;
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_GETPEERNAME) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * getpeername()
+ */
+#ifdef _OS_HAS_SOCKLEN_T
+int getpeername(int fd, struct sockaddr * peer, socklen_t * paddrlen)
+#else
+int getpeername(int fd, struct sockaddr * peer, int * paddrlen)
+#endif
+{
+ int ret;
+
+ if ((ret = fd_lock(fd, FD_READ, NULL)) == OK) {
+ if ((ret = machdep_sys_getpeername(fd_table[fd]->fd.i,
+ peer, paddrlen)) < OK) {
+ SET_ERRNO(-ret);
+ ret = NOTOK;
+ }
+ fd_unlock(fd, FD_READ);
+ }
+ return ret;
+}
+
+#endif
+
+#if defined (HAVE_SYSCALL_SOCKETPAIR) || defined (HAVE_SYSCALL_SOCKETCALL)
+
+/* ==========================================================================
+ * socketpair()
+ */
+int socketpair(int af, int type, int protocol, int pair[2])
+{
+ int ret, fd[2];
+
+ if (!((pair[0] = fd_allocate()) < OK)) {
+ if (!((pair[1] = fd_allocate()) < OK)) {
+ if (!((ret = machdep_sys_socketpair(af, type, protocol, fd)) < OK)){
+ int tmp_flags;
+
+ tmp_flags = machdep_sys_fcntl(fd[0], F_GETFL, 0);
+ machdep_sys_fcntl(fd[0], F_SETFL, tmp_flags | __FD_NONBLOCK);
+ fd_table[pair[0]]->ops = & __fd_kern_ops;
+ fd_table[pair[0]]->type = FD_FULL_DUPLEX;
+ fd_table[pair[0]]->flags = tmp_flags;
+ fd_table[pair[0]]->fd.i = fd[0];
+
+ tmp_flags = machdep_sys_fcntl(fd[1], F_GETFL, 0);
+ machdep_sys_fcntl(fd[1], F_SETFL, tmp_flags | __FD_NONBLOCK);
+ fd_table[pair[1]]->ops = & __fd_kern_ops;
+ fd_table[pair[1]]->type = FD_FULL_DUPLEX;
+ fd_table[pair[1]]->flags = tmp_flags;
+ fd_table[pair[1]]->fd.i = fd[1];
+
+ return(ret);
+ }
+ fd_table[pair[1]]->count = 0;
+ }
+ fd_table[pair[0]]->count = 0;
+ SET_ERRNO(-ret);
+ }
+ return(NOTOK);
+}
+
+#endif